Tag Archive user

เชื่อมต่อ wordpress กับ moodle

ลูกค้าต้องการใช้ wordpress ทำหน้าสวยๆ บทความนิดหน่อยแล้ว link เข้า moodle โดยใช้ user เดียวกับของ wordpres โดย login ครั้งเดียว ไม่ต้องเข้าระบบหลายครั้ง

  1. ก่อนอื่นไปโหลด plugin แฝดสยามของคุณ TIm St.Clair มาก่อน คือ
  2. เริ่มจากฝั้ง เวิร์ดเพรส แตกไฟล์ wp2moodle–wordpress–master.zip เปลี่ยนชื่อ folder เป็น wp2moodle แล้ว zip ใหม่ Login เข้าส่วนจัดการของ wordpress ไปที่ ปลั๊กอิน > เพิ่มปลั๊กอินใหม่ กด อัปโหลดปลั๊กอิน เลือกไฟล์ zip ของเรา ติดตั้ง แล้วเปิดใช้งานเลยด้านล่างจะเห็น wp2Moodle เพิ่มมา ตรง
    • Moodle Root URL ใส่ url ที่เก็บ moodle เอาไว้
    • Encryption secret กดลิ๊ง GUID ด้านล่าง แล้ว copy มาได้เลย ปลอดภัยกว่าคิดเอง เดาเอาเองแน่ๆ
    • Update existing users เลือก yes ไว้ดีกว่า

    บันทึก

  3. Copy ตัวอย่าง ด้านบน เช่น
    [wp2moodle class='css-classname' group='group1' cohort='class1' target='_blank' authtext='Please log on']launch the course[/wp2moodle]
  4. ไปสร้างเรื่องที่จะใส่ link ไป Update moodle โดยใส่ ตามตัวอย่างในหน้า setting ของ wp2moodle ที่เราคัดลอกไว้ ตามตัวอย่าง
    [wp2moodle class="css-classname" group="group1" cohort="class1" target="_blank" authtext="Please 1=on" language="[wp2moodle"]คลิกเข้าสู่บทเรียน[/wp2moodle]
  5. แตกไฟล์ wp2moodle-moodle-master.zip แล้ว เปลี่ยนชื่อเป็น wp2moodle อัพโหลดหรือคัดลอกเอาไปไว้ใน โพลเดอร์ auth ของมูเดิ้ล
  6. ไปที่หน้า admin ของ Moodle คลิก Administration > Site administration > Plugins > Authentication > Manage authentication กดลูกตาปิดปล็กอินอื่นๆให้หมดเหลือแต่ Manual accounts กับ WordPress 2 Moodle (SSO) ไว้แค่นั้น
  7. ไปที่เมนูใหม่ Administration > Site administration > Plugins > Authentication > Manage authentication > WordPress 2 Moodle (SSO)
    • Encryption key ใส่ code เดียวกับ wordpress
    • Logoff Url ใส่ link ออกจากระบบของเวิร์ดเพรส

    Save Changes

  8. Logout ออกจาก moodle
  9. ทดสอบโดยกด link ให้หน้าบทความที่เราทำไว้ในขั้นตอนที่ 6

จัดการผู้ใช้และสิทธิใน yii

หากจำเป็นที่จะต้องมีจัดการผู้ใช้และสิทธิการใช้งานใน yii ในรูปแบบที่ซับซ้อน ผู้ใช้มีหลายระดับชั้น แต่ละกลุ่มมีสิทธิในการสร้าง แก้ไข ลบ ดู หรือห้ามใช้งาน ไม่เหมือนกัน yii ได้เตรียม Authentication and Authorization ที่นิยมใช้กันคือ Role-Based Access Control หรือ rbac

แต่เพราะความซับซ้อนในการใช้งาน และต้องเขียน code ควบคุม จึงมักนิยมใช้ extension Yii Users และ Rights มาช่วย การลงไม่ยาก แต่มีหลายขั้นตอน ถ้าทำผิดขั้นตอนอาจจะทำให้ลงไม่สำเร็จ เคยทำตามวิธีทั้งในคู่มือและเว็บบอร์ดแต่ไม่สำเร็จ พยามอยู่นานกว่าจะทำได้ T_T อันนี้เป็นขั้นตอนที่ผมทำจนสำเร็จ

  1. download yii-rights จาก rights แตกใส่ /your-app/protected/modules/rights เช่น D:\xampp\htdocs\yii1\JumpFlower\protected\modules\rights
  2. เปิดไฟล์ ใน \your-app\protected\modules\user\data เช่น D:\xampp\htdocs\yii1\JumpFlower\protected\modules\user\data เลือกไฟล์ schema.mysql.sql ถ้าใช้ tablePrefix อื่นอาจจะมีปัญหาได้ ทางที่ดีไม่ควรใช้ สร้างตารางขึ้นมาใหม่ และแก้ field tbl_users.Lastvisit เป็น lastvisit_at
  3. เปิดไฟล์ /your-app/protected/config/main.php เพิ่มใน array 'components'
    	'components'=>array(
    ...
    		'authManager'=>array(
    				'class'=>'RDbAuthManager',
    				'connectionID'=>'db',
    				'defaultRoles'=>array('Authenticated', 'Guest'),
    		),
    		'user'=>array(
    				'class'=>'RWebUser',
    				// enable cookie-based authentication
    				'allowAutoLogin'=>true,
    				'loginUrl'=>array('/user/login'),
    		),
    ...
    	),

    เพิ่มใน array 'import'

    	'import'=>array(
    ...
    		'application.modules.rights.*',
    		'application.modules.rights.components.*',
    		'application.modules.user.components.*',
    		'application.modules.user.models.*',
    ...
    	),
    

    เพิ่มใน array 'modules'

    	'modules'=>array(
    ...
    		'rights'=>array(
    			'authenticatedName'=>'Authenticated',
    			'debug'=>false,
    			'install'=>true,
    			'superuserName'=>'Admin',
    			'userIdColumn'=>'id',
    			'userNameColumn'=>'username',
    		),
    		'user'=>array(
    			'tableProfileFields' => 'profiles_fields',
    			'tableProfiles' => 'profiles',
    			'tableUsers' => 'users'
    		),
    ...
    	),
    • เปิด browser ไปที่ url http://localhost/yii1/JumpFlower/index.php?r=rights
    • ตอบ yes พยามเปิดทุกอย่างให้กลุ่ม Authenticated อย่าลืม Assign ตัวเองเข้ากลุ่ม Authenticated

กว่าจะได้ แต่ถ้าได้คุ้มแน่นอน

ทดสอบเว็บพร้อมกันหลายยูเซอร์

การเขียนเว็บที่มีการจัดการยูเซอร์หลายระดับ หรือแค่มีสถานะว่าล็อกอินเข้าระบบ หรือยังไม่ล็อกอิน ให้แสดงผลต่างกัน ส่วนที่เป็นโลจิกจะไม่มีปัญหาในการทดสอบเท่าไหร่นัก เห็นได้ง่าย แต่ถ้าหากต้องแก้ส่วนที่เป็น css ที่ต้องดูการแสดงผลแต่ละแบบ จะสะดวกมากถ้าสามารถดูพร้อมๆ กันได้โดยไม่ต้องล็อกอิน หรือล็อกเอ้าตลอดเวลา
เราสามารใช้ ไฟร์ฟอกซ์
แสดงผลพร้อมๆ กันได้โดยใช้การสร้างโปรไฟล์ขึ้นมาอีกตัว

  1. สร้างโปรไฟล์ขึ้นมาใหม่ โดย กดปุ่ม windows (ปุ่มรูปหน้าต่าง ตัวที่สอง แถวล่างสุด) พร้อมๆ ตัว r จะเห็นหน้าต่างเล็กๆ ถูกเปิดขึ้นมาใหม่
  2. พิมพ์ firefox.exe -p -no-remote -CreateProfile ชื่อโปรไฟล์ เช่น firefox.exe -p -no-remote -CreateProfile test เอ็นเทอร์ก็จะได้ไฟล์ใหม่ชื่อ test เพิ่มขึ้นมา (windows เก่าๆ ใช้ Firefox แทน firefox.exe )
  3. เปิดโปรไฟล์ขึ้นมาใช้งาน (ถ้าเป็นตัวเดิมไม่ต้องสร้างในขึ้นตอนที่ 1 ใหม่ครับ) พิมพ์ firefox.exe -p -no-remote “test” test คือชื่อโปรไฟล์ที่สร้างในขั้นตอนที่ 1 ถ้าใช้ชื่ออื่นให้เปลี่ยนเป็นชื่อที่คุณตั้งไว้
  4. การที่ต้องพิมพ์อาจจะไม่สะดวกสำหรับหลายๆ คนที่ใช้งานบ่อยๆ ให้สร้าง bat file ไว้เรียกใช้เปิด notepad (พิมพ์ notepad เอ็นเทอร์ก็ได้) พิมพ์
    @echo off
    start firefox.exe -p -no-remote “test” –url http://plusmagic.wordpress.com localhost localhost/phpmyadmin
    เข้าไปด้านใน หลัง –url คือหน้าที่ต้องการให้เปิดทุกครั้งที่เรียกใช้ชุดคำสั่งนี้ บันทึกเป็น test.bat โดยจะต้องเลือก save as type เป็น all file *.* เท่านั้น
  5. ครั้งต่อไปที่ต้องการทดสอบ แค่คลิก test.bat ไฟล์ฟอกซ์ก็จะเปิดโปรไฟล์สำหรับทดสอบออกมาให้ใช้

ดูเพิ่มเติม