add drupal user with user_save()

จากครั้งก่อนที่ผมหาทาง เพิ่ม user ให้กับ drupal ผ่านทาง curl ซึ่งมันก็ทำงานได้ แต่พอเอาโค้ดไปใส่ไว้เป็น node ใน drupal มันกลับทำงานไม่ได้ ผมก็เลยต้องหาวิธีอื่น ตอนแรกก็ลอง insert ข้อมูลเข้าตาราง users ตรงๆ ก็ติดเรื่องที่ว่ามีตารางอื่นที่ user ต้องเกี่ยวพันด้วย เลยทำให้ยุ่งยาก และการมายุ่งกับตารางของระบบตรงๆเองแบบนี้อาจจะทำให้มันเจ๊งเอาได้ง่ายๆ ก็เลยไปหาebookเกี่ยวกับ drupal มาลองค้นดูมีคำอธิบายเกี่ยวกับโมดูลต่างๆอยู่ มีอยู่ module หนึ่งคือ user ผมก็เลยลองไปค้นในโค้ดของ user.module เพื่อหาฟังก์ชันที่ทำหน้าที่ในการadd user และแล้วก็มาเจอ คอมเม้นของฟังก์ชันหนึ่งแบบนี้


/**
* Save changes to a user account or add a new user.
*
* @param $account
*   The $user object for the user to modify or add. If $user->uid is
*   omitted, a new user will be added.
*
* @param $array
*   An array of fields and values to save. For example array('name' => 'My name');
*   Setting a field to NULL deletes it from the data column.
*
* @param $category
*   (optional) The category for storing profile information in.
*/

จากคอมเม้นบอกว่ามันสามารถแก้ไขข้อมูลของ user ที่มีอยู่แล้ว หรือถ้า user นั้นไม่มี ก็จะเป็นการ add user นั้นเข้าไป
ซึ่งวิธีการ add user เข้าไปก็คือเวลาส่งค่าให้ฟังก์ชัน ไม่ต้องส่ง uid ของ user เข้าไป ตัวอย่างการสร้าง add user ใหม่ เช่น


  user_save(array ('name' => 'username'),array ('name' => 'username','pass' => 'abcdefg','status' => 1));

เพียงเท่านี้เราก็จะได้ user ใหม่แล้ว password และ สถานะ Active เรียบร้อย

1 Response ห่างไกล »

  1. 1

    einstein2 กล่าว,

    อืมม แบบนี้นี่เอง

    get ล่ะ จะลองใช้มั่งดีกว่า


Comment RSS · TrackBack URI

Say your words