ข่าวที่ดึงมา
Drupal theming approach
อ่าน drupal.in.th/node/2309 แล้วเกิดอยากเขียนบล็อกขึ้นมา เพราะเท่าที่ติดตามดู หลายๆอย่างใน Drupal กำลังเปลี่ยนไปในทางที่ดีขึ้น รวมถึงแนวทางการทำธีมที่สะดวกมากขึ้นด้วย ยกตัวอย่างเท่าที่นึกออกตอนนี้ และเกี่ยวกับกระทู้ที่อ้างถึงด้านบน ก็เช่น
ถ้าต้องการปลดปล่อยตัวเองจาก block regions ใน drupal ก็ต้องลองเล่น panels + skinr + views เหมาะสำหรับเว็บไซต์ที่ต้องการเลย์เอาต์ซับซ้อน(มากๆ) เราไม่ต้องเซ็ต block regions ไว้ในธีมเลยก็ได้ แต่ override ใน panels-*-.tpl.php , views-*-.tpl.php แล้วก็กำหนด css style ผ่านทาง skinr
How to Limit Privatemsg Recipients to Specific Users
คราวที่แล้วเขียนถึงการส่งข้อความจาก Webform โดยใช้โมดูล Privatemsg ไป คราวนี้ก็ยังคงวนเวียนอยู่กับโมดูล Privatemsg เหมือนเดิม
พอดีเว็บที่กำลังทำอยู่ มี requirement ว่าให้ผู้ใช้สามารถส่งข้อความส่วนตัวถึงผู้ดูแลระบบได้เท่านั้น โดยระบบส่งข้อความจะใช้โมดูล Privatemsg เป็นหลัก
<
p>วิธีทำที่คิดไว้คร่าวๆ ก็คือต้องแก้ไขฟอร์มสำหรับส่ง private message โดยกำหนดชื่อผู้รับไว้ตายตัวคือ admin จากนั้นก็ disable หรือซ่อนฟิลด์ Recipients ซะ ให้ผู้ใช้กรอกเฉพาะ Subject กับ Body พอ แน่นอนว่าพระเอกของงานนี้คือ Form API
Webzer's Studio Revival
Finally, I can launch my new demo sites for Drupal contrib. themes after a long period of idleness.
Let's visit my studio or go to Beach, Colourise and Strange Little Town.
All these demo sites are on the same code base (with symlinks) and same database (find it out there: a more secure drupal [multisite] install). But each site still need their own caches and variable settings ($db_prefix array) because they're using different themes. That's one of Drupal's magic which helpful for launching multi-sites with less resource and time consuming (but my laziness is a big burden!).
Webzer.net and my Drupal demo was currently hosted by WebFaction which reliable and full of new tools (and toys) for curious web learners (like me) such as Rails, Django, SVN and other open source software installers (of course, you can find Drupal and other popular CMS too).
Yeah... you can tell them Sungsit loves their service.
Wu Wei
Wu wei เป็นแนวคิดที่สำคัญของลัทธิเต๋า ความหมายตามวิกิพีเดียคือ "knowing when to act, and when not to act" และเป็นชื่อธีมของ WordPress โดย Jeff Ngan นานๆ จะเจอธีมที่ถูกใจซักที เลยเอามา port เป็นธีม Drupal ซะ (ลอกชาวบ้านอีกแล้ว 555+)
การพอร์ตคราวนี้พยายามลอกจุดเด่นของ WordPress มาใช้ ไม่ว่าจะเป็น navigation แบบ "อ่านเนื้อหาย้อนหลัง" (ลิงก์ Older entries ด้านล่าง) เพราะปกติเวลาอ่านบล็อก ก็น่าจะอ่านเรียงกันไปอยู่แล้ว คงไม่มีใครคลิกข้ามไปข้ามมาหลายๆ หน้า (หรือเปล่า?)
อีกอย่างก็คือเวลาดู node แบบ full view จะมีลิงก์ไปยัง node ก่อนหน้า และ node ถัดไป ทำให้รู้สึกว่าอ่านแล้วต่อเนื่องดี ไม่ต้องกลับมาหน้าแรกแล้วคลิกเลือก node ใหม่
สำหรับธีมนี้ตั้งใจจะทำให้ support ระบบ category แบบ WordPress ด้วย เพราะดูตัวอย่างบล็อก @bombik แล้วรู้สึกว่าเวิร์กดี
สถานะปัจจุบัน alpha อย่างแรง เอาขึ้นบล็อกเพราะอยากดูว่าใช้กับเนื้อหาของจริงแล้วมันจะเป็นยังไง หวังว่าจะทำเสร็จในปีนี้
The Drupal Book : Best Sellers
ดูด feed และรูปที่เป็น enclosure ใน Drupal
โมดูล feedapi และ feedapi_mapper ใช้สำหรับดูด feed มาสร้างเป็น node ใน Drupal แต่ถ้าอยากดูดรูปมาด้วย (เฉพาะ feed ที่มีรูปใน enclosure หรือส่วนอื่นที่แยกจากเนื้อหาอย่างชัดเจน) ก็สามารถใช้ mapper ด้านล่าง (อันนี้เป็นตัวแก้บั๊กของ ImageField mapper) โดยจะดึงรูปมาบันทึกไว้ และแสดงโดยใช้ filefield และ imagefield ครับ (mapper ด้านล่างเอาไว้ใช้ชั่วคราวครับ จนกว่า FileField mapper จะสามารถทำได้)
- เปิดโมดูลทั้ง 4 ที่กล่าวไว้
- บันทึกไฟล์ด้านล่างชื่อ feedapi_mapper_imagefield.inc ไว้ใน sites/all/modules/feedapi_mapper
- เพิ่ม imagefield เข้าไปใน "ชนิดเนื้อหา" (content-type) ที่จะเอาไว้สร้าง node สำหรับ feed นี้
- ตั้งค่า "[user]" ใน Path ของ imagefield ของชนิดเนื้อหา
- สร้างผู้ใช้ใหม่ เช่น "host.com"
- สร้าง feed node โดยผู้ใช้ใหม่นี้
- ไปที่ Map ของ feed node แล้วเลือก map รูปไปยัง field ที่ต้องการ เช่น options->enclosures->image->jpeg: Map to field_image (imagefield): Original file name
- รูปที่ดูดมาจะถูกบันทึกไว้ใน sites/default/files/host.com/ ครับ ^ ^
- ดูตัวอย่าง node ที่สร้างเสร็จแล้วได้ที่ ข่าวฟุตบอลไทย
Drupal training plan
หลายๆครั้งที่สอน Drupal แล้วรู้สึกว่ายังไม่ดีพอ แม้โดยมากที่ไปสอนคนเรียนจะบอกว่าดี แต่ที่ยังขัดๆอยู่ คือ รู้สึกว่าในส่วนของการลำดับการสอนนั้น ผมยังลำดับได้ไม่ดี
แต่เดิมคือลำดับประมาณนี้
- Web Server & CMS
- Install Drupal
- Write content
- ออกแบบโครงสร้างเนื้อหา (Category)
- Create Content ตาม category
- Create page
- Create menu เพื่อเข้าถึง content อิง category
- ติดตั้ง และ enable theme
- ติดตั้ง และ enable module
- Install WYSIWYG
- user and permission
- Backup Restore
คือลำดับมันยังไม่ดีพอ ง่ายๆว่า ลองสังเกตุดู ว่าเอาเรื่องติดตั้ง Module ไว้ก่อน User นี่เลวร้ายมาก เพราะพอติดตั้งและเปิด Module แล้ว มันต้องไปกำหนด Permission ด้วย แต่ยังไม่ได้สอนเรื่อง User เลย ดังนั้นเวลาสอน มันเลยมีชะแว๊บชะว๊าบกลับไปกลับมาบ้าง ก็เลยจะลองวางลำดับการสอนซะใหม่ดู
อันนี้คิดในขณะที่ Blog นี่แหล่ะ ยังไงน่าจะมีปรับแก้อีก
- Web Server & CMS
- Install Drupal
- การกำหนดค่าทั่วไป | site info เผื่อจะปรับอะไร, date time, site maintenance
- ทดลองเขียนเนื้อหา story
- ตั้งค่า Comment และทดลอง Comment
- ตั้งค่าอื่นๆ เกี่ยวกับ Content | post setting, rss publishing
- เขียนเนื้อหา page
- อธิบายความต่างของ page และ story เปิดให้ดู node property พร้อมอธิบาย Content type
- การแก้ไขเนื้อหาที่เคยเขียนไปแล้ว | admin > content
- สร้าง category
- เขียนเนื้อหา story อิง category
- สร้างเมนู เพื่อเข้าถึง page และ story ตามแต่ละ category โดยใช้ primary menu ก่อน (เพราะถ้าสร้างเมนูขึ้นใหม่จะต้องไปเปิดที่ Block)
- ติดตั้งและเปิดใช้ theme
- user setting สำหรับการสมัครสมาชิก
- ดูรายชื่อ user และ ทดลองเพิ่มสมาชิก ด้วยการให้ admin create
- ทดลองเพิ่ม user โดยลองสมัครสมาชิกใหม่ ด้วยตนเอง แล้วให้ admin activate
- อธิบายเรื่อง roles และกำหนด permission
- ให้กำหนด permission และลองใช้งานโดย login เป็น user ใหม่
- เปิด ใช้งาน และการตั้งค่า Module | forum, contact, upload, path, profile, poll
- ติดตั้ง module เพิ่มเติม การตั้งค่าและเปิดใช้งาน | five star, advanced forum, vertical tab, admin menu
- input format ประโยชน์และการตั้งค่า
- ติดตั้ง กำหนดค่า และใช้งาน FCK + imce
- block แนะนำเรื่อง block position เปิดใช้งานและกำหนดตำแหน่งๆ block ต่างๆ | poll, forum, etc.
- กำหนดค่า error reporting
- backup & restore
- upgrade drupal, module & theme
รู้สึกยังไม่สมบูรณืดี ยังไงคงต้องลองเอาไปสอนดูก่อน สักรอบสองรอบ
Enable drupal module by installer
กะลังปรับๆ Drupal ที่จะเอาไปสอนอยู่ ซึ่งตามโจทย์แล้ว มีเวลาสอนประมาณ 5 ชั่วโมง ก็ครั้งก่อนคัดๆโมดูลแล้วก็แพคเป็นชุดไว้ละ แต่ยังรู้สึกไม่พอใจ อยากให้มัน Enable ตั้งกะติดตั้ง Drupal ไปเลย ก็หาๆข้อมูลดู พบว่ามันต้องไปกำหนดที่ profile
ก็ไฟล์อยู่ที่ /profiles/default/default.profile จะมี function default_profile_modules อยู่ ลองมองหาดู อยู่ต้นๆไฟล์เลย
วิธีจะเพิ่ม Module ที่จะ Enable ก็แค่ใส่ชื่อ Module ที่ต้องการลงไป เข้าใจว่า วิธีใช้งาน profile ที่ถูกต้องเราควรเขียน profile ขึ้นมาใหม่ แต่ตอนนี้ขี้เกียจดูว่ามันเขียนยังไง ก็เอาวิธีลูกทุ่งๆไปก่อน
ปล.มาคิดดูอีกที รู้สึกมันโหดเกินไปหน่อย เอาว่าคงจะยัด Module ไว้แล้วไปสอนเขาเปิดใช้งานเอาเองละกัน หวังว่าจะไม่เสียเวลามากนัก
แก้ปัญหา "page not found" สำหรับ drupal
เมื่อหลายวันก่อน web ผมเข้าไม่ได้มันขึ้น 404 page not found ที่หน้าแรกเลยไม่รู้หน้าอื่นเป็นหรือเปล่า (ไม่แน่ใจว่าเพราะ cache หรือเปล่าผมเลยเห็นอยู่) กว่าจะรู้ตัวก็ 2-3 วัน = = เลยมาหาวิธีแก้ ก็เลยมาเขียนบอกไว้เผื่อใครเจอนะครับ
A Simple Webform and PrivateMsg Integration in Drupal
ตอนนี้กำลังปรับแต่งระบบเว็บให้เพื่อนอยู่ครับ หลักๆ คือมีหน้า register ที่สร้างจาก Webform โดยมี requirement ว่า เมื่อผู้ใช้ submit Webform แล้วให้ส่งข้อความไปเตือน admin ว่ามีคนสมัครใช้บริการใหม่ด้วย
ตอบไปว่าเซ็ตนิดเดียวก็ได้แล้ว เพราะนึกว่า Webform มันคงสนับสนุน Privatemsg ด้วย แต่ลอง google ดูก็พบกับคำตอบที่น่าเศร้า เลยต้องหาวิธีทำเอาเอง
<
p>ไปๆ มาๆ พบว่าไม่ยากอย่างที่คิด เนื่องจากตอนสร้าง Webform ใหม่ เราสามารถใส่โค้ด additional processing ลงในส่วนของ Webform advanced settings ได้ โดยโค้ดในส่วนนี้จะรันเมื่อข้อมูลที่ส่งเข้ามาผ่านการ validate และพร้อมจะเก็บลงในฐานข้อมูลแล้ว

: Support :