Submitted by mk on 11 June, 2009 - 19:57
วันนี้ไปสอน Drupal ให้กับทีมของ @rawitat ที่ศิลปากร (ทับแก้ว สาวเยอะมากครับ) เนื่องจากว่าผมเดาโจทย์ของ @rawitat พลาดไปเล็กน้อย คนฟังไม่ใช่คนธรรมดาแต่เป็นนักเทคนิคมือดี สไลด์ที่เตรียมไปพูด convince เลยไม่ได้ใช้ มาเป็นสอนการใช้งาน Drupal แบบเข้มข้นแทน
และเนื่องจากไม่ได้เตรียมตัวสอนการใช้งาน ก็เลยไปสอนสดที่หน้างาน (คิดตัวอย่างสด) อย่างไรก็ตามลำดับการสอนและโครงสร้างนั้นอิงจากหนังสือ Drupal ที่ผมเขียนกับ @sugree (ใกล้เสร็จแล้วครับ ใกล้จริงๆ) และผลกลับออกมาดี ทั้งที่ใช้เวลาไม่นาน เลยมาจดลำดับเก็บไว้หน่อย เผื่อจะพัฒนาเป็นคอร์ส Drupal Intensive ได้ในอนาคต
10.30-12.15
- ติดตั้ง Drupal
- ใช้เวลาเร็วมากเพราะผู้เรียนเป็นเรื่อง web application อยู่แล้ว (โหลดไฟล์มาแล้วแตก tar เองได้ สร้างฐานข้อมูลเองได้ รู้จัก DocumentRoot)
- จุดที่มีปัญหาเสมอคือ write permission ของ settings.php และต้องสร้างไดเรคทอรี files เองด้วยมือ
- รู้จักกับ Drupal
- จุดที่สำคัญมาก คือ ต้องบอกว่า Drupal ไม่มี backend จะช่วยให้ผู้เรียนที่คุ้นกับ CMS ตัวอื่นเข้าใจได้เร็วขึ้นเยอะ (เป็นการปรับ mindset ตั้งต้น)
- สร้างเนื้อหา (ทุกอย่างในเมนู create content) ลำดับการสอนคือ
- เริ่มสร้างเนื้อหาตรงไหน
- เนื้อหามาโผล่หน้าแรกได้อย่างไร
- แก้ไขเนื้อหาเก่า
- ระบบ path ของเนื้อหา (/node/n)
- ความแตกต่างระหว่าง Story กับ Page
- ตัวเลือกต่างๆ ในหน้า Create content
- Menu settings (ยังไม่สอน)
- Input format = การตีความโค้ด
- Authoring information = ตรงไปตรงมา แต่ต้องให้สังเกตวงกลม autocomplete ในช่อง user
- Comment settings = ตรงไปตรงมา
- Revision information = ต้องเทียบกับ diff หรือ wiki จะเห็นภาพ
- Publishing options = อันนี้ยาก ต้องแสดงให้ดูผลลัพธ์ทุกอัน ว่าติ๊กแล้วมันจะเป็นยังไง
- หน้าจอ Admin
- ย้ำเรื่องไม่มี backend
- วิธีแยกแยะหมวดหมู่ทั้ง 5 ให้เกิด conceptual ว่าอะไรมันควรจะอยู่ตรงไหน
- จากนั้นแนะนำทีละหมวดหมู่ จากง่ายไปยาก
- เริ่มจาก Settings เพราะมันคือ "ปรับแต่ง" ตรงกับภาพในใจว่า "Admin คือปรับแต่ง"
- สอน /settings/site-information ก่อน เพราะคนหัดใช้ Drupal ใหม่ๆ ต้องการแก้ชื่อเว็บเป็นอย่างแรก
- อย่างอื่นไม่ต้องสอน บอกให้ไปลองเอง
- ถัดมา Reports ง่ายสุด มันคือ log + รายงานสถานะปัจจุบัน แป๊บเดียวจบ
- ตามด้วย Content Management
- แยกเป็น listing ที่ใช้ลบ-แก้ไข คือ comments และ content
- กับหน้า settings หรือตั้งค่า คือ post settings และ RSS
- content type ต้องสอนละเอียดโคตรๆ ถึงขั้นสร้าง content type ใหม่ให้ดูจนเห็นภาพ (ไม่ว่า content type อะไร นับเป็น 1 node ต่างกันแค่ property)
- taxonomy (ข้ามเพราะลืม ในหลักสูตรจริงต้องปรับใหม่)
- User Management
- สอนแนวคิดของ Permissions / Roles / Users โดยวาดวงกลมเชื่อมกัน 3 วง
- Permissions ย้ำว่าหน้าจอนี้สำคัญมาก และอธิบายคำศัพท์พื้นฐานของ Permissions เช่น access, create, edit any, edit own, administer
- Roles ไม่มีอะไร ตรงไปตรงมา แต่สร้าง roles ใหม่แล้วต้องกลับไปดูหน้า Permissions อีกรอบด้วยว่ามันมี column ใหม่เพิ่มเข้ามา
- Users ก็ตรงไปตรงมา เพราะมันเป็นหน้า listing เหมือนกับ comments และ content
- แตะ User settings และ Access control ผิวๆ ไม่สำคัญ
- Site Building เรื่องยากเก็บไว้หลังสุด
- Themes ง่ายสุดในบรรดา building ทั้งหมด เพราะทุกคนรู้จัก Themes ก็สอนเปลี่ยนธีม และสอน Theme config เช่น เอาโลโก้ออก เพิ่ม slogan
- ติดตั้งธีมใหม่ อธิบายโครงสร้าง directory ของ Drupal ในช่วงนี้เลย
- โครงสร้างของโฟลเดอร์ธีม เปิด .tpl.php กับ .info ให้ดูเล็กน้อย
==พักกินข้าว==
13.15-15.45
- เก็บตก Taxonomy
- ความต่างของ Vocab และ Term
- สอนสร้าง vocab 2 อัน และใส่ term
- ทดลองใส่ term ให้กับเนื้อหา
- weight คืออะไร? วิธีการสลับตำแหน่ง term โดยการลาก
- สอนการตั้งค่า Vocab ทั้งสามแบบ โดยเรียงจากง่ายไปยาก คือ Required, Multiple และ Tags ทั้งหมดต้องทำตัวอย่างให้ดู
- กลับมาต่อเรื่องเดิมที่ค้างไว้ หน้าจอ Admin ส่วน Site Building
- Menu
- ความต่างของ menu กับ menu item
- อธิบายว่า Navigation menu คือเมนูที่ใช้มาตั้งแต่เช้า
- สามารถสร้าง menu เพิ่มเองได้ไม่จำกัด
- ทดลองสร้าง menu item ใน Primary links 2 อัน
- ทดลองสร้าง menu item ใน Secondary links 1 อัน
- สอนเทคนิคการสร้าง menu item โดยที่ไม่ต้องมี path จริง (เช่น ใช้ <front> หรือ path เดิมไปก่อน)
- Blocks ผมว่ามันเป็นเรื่องที่ยากที่สุดใน Drupal แล้ว
- สอนเรื่อง Blocks คือ square of minor information box โดยยกตัวอย่างจากเว็บจริงอื่นๆ (ผมใช้หน้าข่าวของ CNET ที่เปิดทิ้งไว้ในโน้ตบุ๊กตั้งแต่เช้าก่อนออกจากบ้าน)
- อธิบายเรื่อง Block และ Region
- ทดลองย้าย Block ที่มีอยู่เดิม ไปยัง Region อื่นๆ (สำคัญมากคือต้องลองเอา block ที่สร้างขึ้นมาสำหรับ sidebar ไปอยู่ในที่พิสดารอย่าง Header หรือ Footer ให้ดูด้วย)
- เอา Block ที่อยู่ในหมวด Disabled มาไว้ยัง Region อื่นๆ ให้เห็น
- สร้าง Block เอง จุดที่ต้องเน้นคือ block description กับ block title มันต่างกันอย่างไร และควรลองสร้าง Block ใหม่แบบใส่ภาพด้วย จะได้ไม่จำกัดว่า block ต้องมีแต่ข้อความ เอาไปสร้าง ad block ได้
- visibility ของ Block ทั้งสามแบบ ต้องทำตัวอย่างให้ดูทุกแบบ ไม่งั้นงงตาย
- Modules
- ความแตกต่างของ Core Required/Core Optional และ Contributed
- dependency ของ module (ลองเปิด Content translation โดยติด Locale และลองปิดกลับ)
- การ uninstall module ว่าต่างจาก disable และการลบไฟล์อย่างไร
- แนะนำ Module ในกลุ่ม Core Optional ทั้งหมดว่า มันทำอะไรได้บ้าง (ไม่ต้องทำให้ดู) เพื่อจะได้รู้ว่า capacity ของ default Drupal installation มีจำกัดอยู่ตรงไหน
- ทดลองเปิดใช้ module path
- อธิบายเรื่อง Clean URLs แบบคร่าวๆ (ไม่ได้ให้เปิด Clean URLs เพราะ environment ของผู้เรียนต่างกันมากไป) และสอนการกำหนด path ของ node
- เนื่องจาก @rawitat ขอมาเป็นกรณีพิเศษ เลยอัด CCK/Views ให้เต็มที่
- CCK
- ดาวน์โหลดและติดตั้ง CCK ตามโครงสร้าง directory ที่สอนไว้ เป็นการสอนการติดตั้ง module ไปในตัว
- อธิบายแนวคิดของ CCK ว่ามันเอาไว้สร้างฟิลด์
- เปิดใช้ CCK บางตัว คือ Content, Text, Widget
- เพิ่มฟิลด์ชนิด Text / Text field ให้กับ Story พร้อมทั้งทดลองเขียนเนื้อหาแบบที่เพิ่มฟิลด์แล้ว
- เปิดใช้ Number เพิ่มเติม
- เพิ่มฟิลด์ชนิด Number / Select List ให้กับ Story พร้อมทั้งทดลองใช้
- Views
- ติดตั้งและเปิดใช้ Views / Views UI
- อธิบายแนวคิดของ Views ว่ามันคือ filtering output ในแบบต่างๆ
- เนื่องจาก Views ยากมาก ต้องสอนให้ทำตามตัวอย่างก่อน โดยไม่ต้องสนใจตัวเลือกมากมายใน Views
- สร้าง Views ใหม่ เป็น selection content by type มีเฉพาะเงื่อนไข filter กำหนด display เป็น Page และเลือกสไตล์เป็น node
- แสดงการทำงานของ Views ที่สร้างขึ้น โดยเข้าไปยัง path ของ Page ที่สร้าง
- เพิ่มเงื่อนไขการ sorting ของ Node: postdate จากใหม่ไปเก่า (descending)
- แสดงการทำงานของ Views ที่อัพเดตใหม่
- อธิบายเพิ่มว่า display ยังสามารถเป็น block/RSS และเลือกสไตล์เป็น field แทน node ได้ (ไม่ต้องทำให้ดู)
- ปิดท้ายด้วยการสอนแนวคิด MVC
- Model = CCK
- View = Views
- Control = Drupal + You + some PHP Knowledge
- โฆษณา Drupal.in.th
จบแล้ว กลับบ้าน
ไม่น่าเชื่อว่าสอนทั้งหมดนี่จบได้ ภายใน 4 ชม. นิดๆ ต้องยกเครดิตให้คนเรียนด้วยว่าเก่งมาก ตามทัน
Comments
iMenn
11 June, 2009 - 20:42
Permalink
โห เจ๋ง
โห เจ๋ง เจ๋งงงงง
ขอไปเรียนด้วยคนดิ :P
mk
11 June, 2009 - 20:57
Permalink
@iMenn ต้องเข้ารีตนะครับ
@iMenn ต้องเข้ารีตนะครับ
onequad
11 June, 2009 - 22:12
Permalink
สาวๆเยอะ
สาวๆเยอะ ไม่มีรูปสาวๆมาฝากบ้างเหรอครับ 555
wiennat
11 June, 2009 - 23:42
Permalink
ตั้งแต่ลองทำมา views ยากสุด
ตั้งแต่ลองทำมา views ยากสุด อันอื่นยังพอมั่วได้ เจอ views นี่ใบ้กินเลย
iPattt
12 June, 2009 - 00:08
Permalink
ที่ว่าสาวเยอะเนี่ย
ที่ว่าสาวเยอะเนี่ย คอร์สนี้มีกี่คนครับ :P
mk
12 June, 2009 - 00:27
Permalink
@iPattt มี @nonggade
@iPattt
มี @nonggade แต่แตะไม่ได้เดี๋ยวโดนลูกถีบ ผอ. สำนักคอม อิอิ
Ripmilla
14 June, 2009 - 03:57
Permalink
อยากเรียนมากเลย ไอ้ Intensive
อยากเรียนมากเลย ไอ้ Intensive Course เรื่อง View กับ CCK เนี่ย
mk
14 June, 2009 - 08:04
Permalink
@ripmilla เดี๋ยวจัดให้ครับ
@ripmilla
เดี๋ยวจัดให้ครับ ว่างๆ มาได้เลย
ajarnjan
29 June, 2009 - 17:28
Permalink
สวัสดีค่ะ กำลังมองหา open
สวัสดีค่ะ กำลังมองหา open source เพื่อใช้สอนนักศึกษาค่ะ จะลองเอาไปใช้ดูนะคะ ไม่รู้จะทำได้หรือเปล่า
Add new comment