Drupal 6.x

1ชอบ

กิตติกรรมประกาศ

ขอบคุณ จาก http://www.bloggang.com/viewdiary.php?id=lkw2005&month=05-2006&date=25&group=10&gblog=10ball.in.th สร้างด้วยซอฟต์แวร์รหัสเปิดคุณภาพยอดเยี่ยม เราขอขอบคุณผู้ที่มีส่วนร่วมทุกๆท่านครับ ...

3ชอบ

ทำไมถึงใช้ Drupal

เปรียบเทียบข้อดีข้อเสียของ Joomla และ Drupal พร้อมทั้งอธิบายเหตุผลทำไม ball.in.th เลือก Drupal

ที่ ball.in.th เราใช้และสนับสนุนซอฟต์แวร์รหัสเปิด (Open Source Software หรือ OSS) หวังว่าเราจะเป็นตัวอย่างที่ดีและมีส่วนสร้างภาพให้ซอฟต์แวร์รหัสเปิดดีขึ้น (ไม่ใช่แย่ลง 55) ถ้าอีกหน่อยเว็บมีรายได้ ก็จะสามารถสนับสนุนได้มากกว่านี้

Joomlaตอนเริ่มทำเว็บนี้ ก็คิดว่าจะใช้ content management system (CMS) ซึ่งก็มีอยู่หลายตัว ที่ดังๆก็ีน่าจะเป็น Joomla, Drupal (น่าจะอ่านว่า "ดรุ๊ป-เปิล" ทำนองเดียวกับแอปเปิล), Wordpress พอลองเล่นดู หน้าตาของ Joomla สวยที่สุด ส่วน Drupal หน้าตาจืดๆ ใช้แล้วงงๆ ประกอบกับ Joomla คนไทยใช้กันมากกว่า มีบอร์ดตั้งสองที่ forum.joomla.org และ mambo.or.th แล้วยังมี joomlacorner.com สนับสนุนภาษาไทยได้อย่างยอดเยี่ยม ก็เลยคิดว่าใช้ Joomla ดีกว่า ...

ส่งต่อ (redirect) URL ตอนเปลี่ยน DNS

วิธี redirect traffic ตอนย้ายเว็บโฮสติ้ง และ DNS ยังไม่เปลี่ยนใหม่

ball.in.th เพิ่งย้ายเว็บโฮสติ้ง เลยเอาวิธีแก้ปัญหาที่เจอมาฝากกันครับ ปกติก่อนย้ายโฮส ถ้าสามารถแก้ Time-To-Live (TTL) ของโดเมนใน DNS ได้ก็จะเป็นการดี ลดเวลาลงให้เหลือน้อยๆ เช่น 1800 (ครึ่งชั่วโมง) แต่ใน cPanel หาที่แก้ TTL ไม่เจอ เลยไม่ได้แก้ 555 ดังนั้นพอเปลี่ยน nameserver แล้ว ก็ต้องรอจนกว่า TTL จะหมดเวลา ถ้าไม่อยากรอ ก็สามารถใช้ mod_rewrite redirect traffic ไปที่ IP ของโฮสใหม่ได้เลย (เฉพาะกรณีที่มี IP ส่วนตัวในโฮสใหม่เท่านั้น) ...

Drupal Views cache bug

Views รุ่นล่าสุด (6.x-2.6) สามารถตั้งให้มี cache ได้ด้วย แจ่มมากแต่ว่ายังมีบั๊กอยู่ ต้องลง patch นี้เพื่อแก้บั๊ก ไม่งั้น cache ไม่หมดอายุซักที 

ดูด feed และรูปที่เป็น enclosure ใน Drupal

โมดูล feedapi และ feedapi_mapper ใช้สำหรับดูด feed มาสร้างเป็น node ใน Drupal แต่ถ้าอยากดูดรูปมาด้วย (เฉพาะ feed ที่มีรูปใน enclosure หรือส่วนอื่นที่แยกจากเนื้อหาอย่างชัดเจน) ก็สามารถใช้ mapper ด้านล่าง (อันนี้เป็นตัวแก้บั๊กของ ImageField mapper) โดยจะดึงรูปมาบันทึกไว้ และแสดงโดยใช้ filefield และ imagefield ครับ (mapper ด้านล่างเอาไว้ใช้ชั่วคราวครับ จนกว่า FileField mapper จะสามารถทำได้)

  1. เปิดโมดูลทั้ง 4 ที่กล่าวไว้
  2. บันทึกไฟล์ด้านล่างชื่อ feedapi_mapper_imagefield.inc ไว้ใน sites/all/modules/feedapi_mapper
  3. เพิ่ม imagefield เข้าไปใน "ชนิดเนื้อหา" (content-type) ที่จะเอาไว้สร้าง node สำหรับ feed นี้
  4. ตั้งค่า "[user]" ใน Path ของ imagefield ของชนิดเนื้อหา
  5. สร้างผู้ใช้ใหม่ เช่น "host.com"
  6. สร้าง feed node โดยผู้ใช้ใหม่นี้
  7. ไปที่ Map ของ feed node แล้วเลือก map รูปไปยัง field ที่ต้องการ เช่น options->enclosures->image->jpeg: Map to field_image (imagefield): Original file name
  8. รูปที่ดูดมาจะถูกบันทึกไว้ใน sites/default/files/host.com/ ครับ ^ ^
  9. ดูตัวอย่าง node ที่สร้างเสร็จแล้วได้ที่ ข่าวฟุตบอลไทย

เริ่มนับสถิติรายวันของ Drupal ตอนเช้า

โมดูล Statistics (มากับ Drupal อยู่แล้ว) ซึ่งเก็บสถิติจำนวนครั้งที่แต่ละ node ถูกอ่าน (node_counter) โดยมีทั้งสถิติรายวัน (daycount) และสถิติทั้งหมด (totalcount) ซึ่งสถิติรายวันจะถูกล้างทิ้ง (reset) ทุกๆ 24 ชั่วโมง โดย statistics_cron() แต่ว่าเรากำหนดไม่ได้ว่าจะครบ 24 ชั่วโมงเมื่อใด เท่าที่อ่าน source code ดู ถ้าเราเรียก cron ทำงานครั้งแรกตอนกี่โมง Drupal ก็จะเริ่มนับสถิติรายวันใหม่ ณ เวลานั้นทุกๆวัน ซึ่งไม่น่าจะถูก เพราะสถิติรายวันน่าจะเริ่มนับใหม่ตอนเช้าของแต่ละวัน ซึ่งเราสามารถแก้ไขได้โดยแก้ statistics_cron() (แก้ Drupal core อีกแล้วครับท่าน 555)

ดูคำที่ใช้ค้นหาเพื่อมาที่เว็บเราใน Drupal

คนทั่วไปใช้คำอะไรหาถึงเจอเว็บเรา บางทีเจอคำประหลาดด้วย 555

คราวก่อนได้แก้ไขหน้า Recent hits เพื่อให้แสดง Referer ซึ่งต้องแก้ไฟล์ที่มากับ Drupal ซึ่งไม่ค่อยถูกหลักเท่าไหร่ เพิ่งไปเจอโมดูล Search Engine Referers ซึ่งทำได้เกือบจะเหมือนกันและใช้ง่ายกว่าเยอะ แต่รุ่นปัจจุบัน (6.x-1.0) ยังไม่แสดงว่าคำที่ใช้ค้น (keyword) นั้นลิงก์มาที่หน้าไหน ต้องแก้ไฟล์อีกนิดหน่อย (แก้ไฟล์จนได้ 555) โดยรวมเอา patch นี้เข้าไปด้วย ก็จะได้ฟังชั่น search_engine_referers_overview() ออกมาเป็น (ส่วนที่แก้เป็นตัวเข้มครับ)

ทำโมดูลกรองคำต้องห้ามใน Drupal

ทีจริงมีโมดูล Wordfilter ซึ่งสามารถกรองคำต้องห้ามได้อยู่แล้ว แต่ว่า Wordfilter จะแก้คำต้องห้ามในเนื้อหาเลย ไม่ได้กรองเฉพาะตอนที่จะแสดงผลเหมือนตัวกรอง (filter) ปกติใน Drupal และไม่กรองเนื้อหาใน CCK text field ที่ทำเพิ่มขึ้นมา พอดูตัวอย่างตาม Wordfilter แล้วทำไม่ยาก ก็ทำใหม่ซะเลย 55 (สำหรับมือใหม่ ดูวิธีสร้างโมดูล helloworld แบบง่ายๆ)

Add page title icons in Drupal

Jazzzz up your Drupal page title with an icon. Also helps drawing attention to the title. ^ ^

a sample page with icon 1Well, I came across an article about how to add page icons in Joomla. Having written a similar howto for drupal (in Thai), I figured this's a good way to illustrate that Drupal, in this particular task, is better than Joomla. So, here it goes.

When I saw that Acquia Marina had block icons, I was like "Cool, I want it too!!". But instead of block icons, it would be even better to have page icons. So, I adapted the technique. Each content type should have its own page title icon, which can be overridden on a page by page basis. For pages that are not "nodes", icons need to be set individually. Beautiful icons from Crystal Project Icons and Oxygen Icons are used. Thanks to eveyone involved in these projects. ^ ^

เพิ่มหน้ายิ้ม (smilies) ให้กับ FCKeditor ใน Drupal

ใน FCKeditor จะมีปุ่มสำหรับใส่หน้ายิ้ม (smilies) แต่ที่ให้มาไม่ค่อยสวยเท่าไหร่ ซึ่งเราสามารถเปลี่ยนได้ โดยเอาหน้ายิ้มมาจากที่อื่นที่สวยงามกว่าครับ เช่น

  • โมดูล Smileys มีหน้ายิ้มชุด Roving โดย Hubert Florin ซึ่งสวยดี
  • Mazes MiniMazes Mini 2 โดย MazeNL77 แจ่ม
  • มีหน้ายิ้มที่ไหนสวยๆอีกช่วยแนะนำด้วยครับ ^ ^

วิธีเพิ่มหน้ายิ้มก็ทำได้โดย

เพิ่มไอคอนให้กับแต่ละหน้าของ Drupal

เพิ่มไอคอนเติมสีสันให้หน้าใน Drupal ดูสดใสขึ้นมาอีกนิสสสส และดึงสายตามาที่หัวข้อด้วย ^ ^

ตัวอย่างไอคอนในหน้า 1วันก่อนเห็นธีม Acquia Marina มีไอคอนของแต่ละบล็อค เลยเกิดกิเลสอยากมีบ้าง (อีกล่ะ 555) แต่อยากมีไอคอนของหน้า ไม่ใช่บล็อค เลยดัดแปลงไอเดียมาเป็นไอคอนสำหรับหน้าซะเลย โดยให้แต่ละชนิดเนื้อหา (content-type) มีไอคอนคนละแบบ (หรือจะตั้งแยกแต่ละหน้าก็ได้) ส่วนหน้าที่ไม่ใช่ node ก็ต้องตั้งเอาเป็นหน้าๆไป ตัวไอคอนก็ไม่มีปัญญาทำเอง ใช้ของสวยๆจาก Crystal Project Icons และ Oxygen Icons ขอขอบคุณมา ณ ที่นี้ด้วยครับ ^ ^

ball.in.th มีส่วนร่วมใน Drupal core patch

เรื่องนี้ไม่มีสาระ 555 แค่อยากจะบอกว่า เราได้มีส่วนร่วมในการแก้บั๊กในระบบแคช (#227228) ของ Drupal core 6.11 นับเป็น core บั๊กอันที่สองในซอฟแวร์รหัสเปิดขนาดใหญ่ที่เรามีส่วนร่วมในการแก้ไข (อันแรกเป็นบั๊กใน JURI() ของ Joomla core 1.5)

สำหรับมือใหม่อย่างเรา นับเป็นความภูมิใจที่ได้มีส่วนร่วมพัฒนาซอฟแวร์รหัสเปิดให้ดียิ่งๆขึ้นไป ^ ^

ย้าย "อ่านต่อ" มาเป็นลิงก์แรก และทำให้เด่นขึ้น

ลิงก์อ่านต่อ กลมกลืนกับลิงก์อื่นเกินไป ไม่โดนเลย

ปกติลิงก์ "อ่านต่อ" จะปนอยู่รวมกับลิงก์อื่นๆตอนดูเฉพาะคำโปรย (node teaser) เช่น "onequad's blog  1 ความเห็น  1 ใหม่  อ่านต่อ  13 reads  แก้ไข  Bookmark this" ช่างไม่เด่นและทำให้สับสนว่าตกลงยังมีต่ออีกหรือเปล่า ต้องย้ายมาเป็นลิงก์อันแรกและทำให้เด่นๆ (ที่จริงอยากทำให้ "อ่านต่อ" ต่อท้ายจากคำโปรยเลย แต่หาวิธีไม่ได้ 55) ...

ทำหัวข้อรองเหมือนนิตยสาร ด้วย CCK

หัวข้อรองอยู่ตรงนี้ ^ ^ เหมือนนิตยสารขึ้นมาอีกนึด

เห็นตามนิตยสารมักมีประโยคดึงดูดความสนใจคนอ่าน ไม่รู้เรียกว่าอะไร ขอเรียกว่า "หัวข้อรอง" (Subhead or Deck) แล้วกัน และเห็นที่ Vancouver Magazine Redesign ก็ทำใน Drupal เลยอยากมีบ้าง 555 ซึ่งก็สามารถเพิ่มเข้ามาใน node ได้ด้วย CCK และแก้ไขธีมนิดหน่อย ...

เพิ่ม Referrer ในหน้า Recent hits ใน Drupal

ถ้าเปิด Enable access log ไว้ใน admin/reports/settings จะมีหน้า Recent hits (admin/reports/hits) ซึ่งแสดงการใช้งานเว็บไซต์ล่าสุด แต่หน้านี้ยังขาดข้อมูลสำคัญคือ Referrer ซึ่งแสดงว่าผู้ใช้เข้ามาที่แต่ละหน้าจากที่ใด (ที่ไหนลิงก์มาหาเว็บเราบ้าง) ถ้าผู้ใช้เข้ามาจาก search engine ก็มักจะเห็นคำที่ใช้ค้นหาด้วย เช่น q=คำที่ค้น สำหรับ google ...

ธีม comment-form สำหรับบุคคลทั่วไป (ไม่ได้ล๊อกอิน) ใน Drupal

วิธีบอกบุคคลทั่วไปตรง comment-form ว่าต้องรอตรวจสอบ ก่อนที่จะส่งความคิดเห็น

บุคคลทั่วไป (ไม่ได้ล๊อกอิน หรือ anonymous user) สามารถแสดงความคิดเห็นได้ ถ้าเปิดไว้ใน admin/user/permissions#module-comment ซึ่งโดยทั่วไปคงจะต้องรอการตรวจสอบก่อน ('post comments' เฉยๆ ไม่ใช่ 'post comments without approval') เลยอยากจะหาวิธีบอกบุคคลทั่วไปว่าต้องรอตรวจสอบ ถ้าไม่อยากรอก็ล๊อกอินก่อน (สมาชิกที่ล๊อกอินมีสิทธิ์ 'post comments without approval') ...

ตั้งสิทธิ์หรือซ่อน personal contact ใน Drupal

ซ่อน tab personal contact ใน Drupal พร้อมโมดูลตัวอย่าง เพื่อป้องกันอีเมล์ขยะ

ปกติถ้าเปิดโมดูล contact และเปิด personal contact ไว้ใน admin/build/contact/settings สมาชิกที่สามารถ 'access user profiles' จะสามารถติดต่อโดยส่งอีเมล์ไปหาสมาชิกคนอื่นผ่าน personal contact ได้ทาง user/xxx/contact พูดอีกอย่างก็คือ personal contact ไม่สามารถตั้งสิทธิ์แยกจาก 'access user profiles' นั่นเอง ...

ธีม Zen 6.x-1.0 กับ breadcrumb ที่เปลี่ยนไป

ธีม Zen 6.x-1.0 ทำให้ breadcrumb สำหรับหมวดหมู่ (taxonomy term) กลายเป็น "Taxonomy term" หมดเลย (เฉพาะผู้ที่ใช้ธีม Zen หรือ ธีมลูกของ Zen)

ต้องไปแก้ zen_preprocess_page() ใน template.php ให้เหมือนกับ beta3 คือประมาณนี้ ...

ปรับแต่ง Drupal forum ให้น่าใช้ขึ้น

แปล "Forums" breadcrumb ให้เป็นไทย

เก่า: หน้าแรก › Forums › => ใหม่: หน้าแรก › กระดานสนทนา ›

อันนี้ง่าย แต่มัวไปหาผิดที่เลยหานานเหมือนกันกว่าจะเจอ 55 แปลที่ admin/content/taxonomy

เปลี่ยน icons

เก่า: forum-closed.png forum-default.png forum-hot-new.png forum-hot.png forum-new.png forum-sticky.png => ใหม่: forum-closed.png forum-default.png forum-hot-new.png forum-hot.png forum-new.png forum-sticky.png

โหลด Drupal Forum Icons แล้วเอาไปทับของเดิมที่ /misc/ ...

Drupal Minimum cache lifetime อาจไม่ใช่อย่างที่คิด

อะไรคืออายุสั้นสุดของแคช (Minimum cache lifetime) ใน Drupal? และวิธีล้างข้อมูลแคชทุกๆ 10 นาที (Maximum cache lifetime)

หลายวันก่อนสังเกตว่าราคาบอลมันไม่ปรับเป็นราคาใหม่ตามที่ควรสำหรับคนที่ไม่ได้ login ปรากฎว่า page cache มันไม่ลบของเก่าทิ้ง ตอนแรกคิดว่า "Minimum cache lifetime" ใน admin/settings/performance หมายถึงให้เก็บ cache ไว้นานแค่ไหนหลังจากสร้าง แต่มันไม่ใช่  (ตอนนี้ควรมีเสียงรัวกลอง 55)

ดู cache_clear_all() กับ cache_get() แล้วมันแปลกๆ นึกว่าเป็นบั๊กแต่ก็ไม่ใช่ คือมันทำงานตามที่ออกแบบไว้ แค่ไม่เหมือนกับที่คนทั่วไปคิด* ...

 

sponsor 3a sponsor 3a sponsor 3a

Syndicate content
ball.in.th พบกับเว็บรูปโฉมใหม่ สุดแจ่ม พร้อมเนื้อหาแน่นปึก เร็วๆนี้!! และยินดีต้อนรับทีมงานใหม่ทุกๆท่าน ^^ 2 ชั่วโมงก่อน
หนาว...นะ » ๙๙๙กุมารทอง๙๙๙ ไม่น่าเล้ยย..ลิเวอร์พลู จะได้อันดับ 4 ไหมเนี๊ย... 1 วันก่อน
๙๙๙กุมารทอง๙๙๙ » หนาว...นะ ก็ดีอะวันนี้บราชิลดีป่ะ 1 สัปดาห์ก่อน
หนาว...นะ » ๙๙๙กุมารทอง๙๙๙ เป็นไงบ้างครับเพื่อน 1 สัปดาห์ก่อน
ทีมงาน เฉลี่ยเดือนก.พ. มีผู้เยี่ยมชมประมาณ 8,333 คน/วัน (visits) เปิดอ่าน 58,382 หน้า/วัน (pageviews) ^^ 1 สัปดาห์ก่อน