มีเวปไหน สอนเขียน theme สำหรับ drupal หรือป่าว

By araregodji

theme ที่ให้มา มันไม่ ถูกใจ เลยสัก คงต้องหาทางเขียนเอง

มีเวปไหนสอนบ้างครับ

13 comments

รูปภาพของ sugree
By sugree
3 years 26 weeks ago

http://drupal.org/theme-guide

http://drupal.org/theme-guide

รูปภาพของ araregodji
By araregodji
3 years 23 weeks ago

มีเวปอื่น

มีเวปอื่นที่สอนง่ายกว่านี้อีกป่าวครับ ยอมรับเลยว่า ไปอ่าน 2อาทิตย์มาแล้ว ไม่รู้เรื่องเลยครับ

รูปภาพของ sugree
By sugree
3 years 23 weeks ago

ไม่เข้าใจ

ไม่เข้าใจตรงไหนลองถามได้ครับ

รูปภาพของ araregodji
By araregodji
3 years 23 weeks ago

อ่านไม่เข

อ่านไม่เข้าใจ เลยไม่รู้จะถามอะไร

ผมไม่รู้เรื่อง engineของ phptemplate เลยไม่ค่อยเข้าใจในการสร้าง theme

ผมมีโจทย์ว่าอยากจะเปลี่ยน ตำแหน่งบางอันของmodule เลยคิดว่า theme มันน่าจะมาตอบโจทย์ได้ อ่านไปอ่านมาเหมือนไม่น่าจะใช่

รูปภาพของ sugree
By sugree
3 years 23 weeks ago

เปลี่ยนตำ

เปลี่ยนตำแหน่งของบล็อค?

รูปภาพของ manop
By manop
3 years 23 weeks ago

ผมเองก็หั

ผมเองก็หัดอยู่ครับ พอดีอ่านจากเว็บของภาษาอังกฤษและทำตามเอา พองมได้บ้าง(ไม่ได้บ้าง) ตอนนี้เริ่มมีธีมของตัวเองครับ แต่ยังทำนู่นทำนี่ได้ไม่มากเท่าไร

อยากจะช่วย แต่คงต้องรอถามคนเก่งๆ ในเว็บนี้นะครับ


มือใหม่หัด Drupal 6.x + ลองแต่งธีมเอง

By SevenSeconds
3 years 23 weeks ago

ผมขออธิบา

ผมขออธิบายง่ายๆ แล้วกันครับ เพราะว่าก็ไม่ได้เก่งมาก แต่ขอแชร์ประสบการณ์หน่อย คือตัว engine phptemplate นี่จะมีไฟล์ ที่จำเป็นจริงๆ คือ .theme อันนี้จะค่อนข้างเก่าแล้วรู้สึกว่าตอน drupal v 4.x น่ะครับ แต่ version ใหม่จะเปลี่ยนเป็น file template.php แทน ซึ่งไฟล์นี้จะเป็นที่รวมรวบ function ที่เราจะ hook ต่างๆ ไว้ครับ และที่จำเป็นอีกตัวคือ page.tpl.php ตัวนนี้ต้องมีครับถ้าจะให้รูปร่างหน้าตามันสวยงามตามแบบที่เราออกไว้ ซึ่งทั้งนี้เราต้อง hook function )_regoins ด้วยครับ (ถ้าเราไม่ hook มันก็จะใช้ค่ามาตรฐานตามต้นแบบ ซึ่งการ hook นี่เราเรียกว่า overide ครับ คือการแสดงทับตัวแม่มันนั่นเอง ถ้าเราไม่ overide มาก็จะเห็น theme ของแม่แบบครับ คือ phptemplate นั่นเอง) ซึ่งเป็นตัวบอกว่าเราจะนำ region นี้ไปไว้ในไหนในไฟล์ page.tpl.php อาจจะงง ขอยกตัวอย่างสักหน่อย ผมน้ำมาจาก zen template นะครับ

function (theme_name, phptemplate, theme)_regions() { << อันนี้หมายความว่าจะใช้อันไหนก็ได้นะครับ เช่น zen_regions, phptemplate_regions, theme_regions
  return array(
    'left' => t('left sidebar'),
    'right' => t('right sidebar'),
    'navbar' => t('navigation bar'),
    'content_top' => t('content top'),
    'content_bottom' => t('content bottom'),
    'header' => t('header'),
    'footer' => t('footer'),
    'closure_region' => t('closure'),
  );
}

ซึ่งจะเห็นว่าเรามี regions ตามนี้ เวลานำไปใช้งานก็นำไปใส่ไว้ใน ไฟล์ page.tpl.php ซึ่งเราแทรกเป็นโค้ดได้ว่า

<?php print $region_name; ?>

เช่น

<?php print $content_top; ?>

ซึ่งเราจะเห็น region พวกนี้ได้โดยเราเข้าไปที่ admin/build/block เราจะเห็น region ต่างๆ ที่เราสร้างขึ้นมาครับ คราวนี้เราอยากให้ block อะไรอยู่ตรงไหนก็ใส่ได้ตามที่เราวางใน page.tpl.php ได้เลยครับ

ผมอาจอธิบายแล้วงงๆ รบกวนลองทำแล้วถ้าไม่เข้าใจก็ถามมาก็ได้ครับ อยากให้ศึกษาจาก theme ที่เค้าทำมาแล้วดูก่อนนำครับ เพื่อความเข้าใจเพิ่มขึ้น

รูปภาพของ manop
By manop
3 years 23 weeks ago

ขอโทษครับ

ขอโทษครับ อันนี้คือ 5.x หรือ 6.x ครับ

ของผมเอง แทบไม่ได้แตะ template.php กับ page.tpl.php เลย ส่วนใหญ่ทำแต่ในไฟล์ style.css ของผมใช้ 6.x


มือใหม่หัด Drupal 6.x + ลองแต่งธีมเอง

By SevenSeconds
3 years 23 weeks ago

ของ 5.x ครับ

ของ 5.x ครับ ของ 6.x จะแตกต่างหน่อยต้องมีไฟล์ themename.info ด้วยครับ ตัว drupal ถึงจะมองเห็น theme เราครับ แล้วหลังจาก version 4.x เป็นต้นมาเค้าแนะนำว่าควรนำ theme folder ไปไว้ใน /sites/all/themes ครับ ไม่ควรนำไว้ใน theme เลย เพราะจะจัดการลำบากทีหลังครับ

รูปภาพของ manop
By manop
3 years 23 weeks ago

ขอบคุณครั

ขอบคุณครับ (ว่าไปเว็บนี้ น่าจะมีช่องให้กรอก ว่า 5.x, 6.x, 7.x นะครับ ไม่งั้นคุยกันซักพัก งงกันตาย)

เอาประสบการณ์ของผมในการแต่งธีมมั้ง (มือใหม่มากๆ ใช้มายังไม่ถึงอาทิตย์เลย) สำหรับ 6.x นะครับ

  1. เริ่มแรกผมก๊อป theme จาก Garland ไปใส่ใน /sites/all/themes เสร็จแล้วก็ตั้งชื่อเลย
  2. แล้วก็แก้ไฟล์ garland.info ในโฟลเดอร์ใหม่ เป็นชื่อไฟล์ธีมของผม เสร็จแล้วก็เข้าไปแก้ในไฟล์นิดหน่อย
  3. หลักๆ ผมแก้ที่ style.css เรื่องสีกับหน้าตา
  4. แก้ page.tpl.php สำหรับส่วนประกอบบางอย่างที่อยาก (และไม่อยาก) ให้แสดงผล ซึ่งตรงนี้ผมว่าแก้คล้ายๆ HTML/PHP ทั่วไป บางตัวผมก็ลบออกทั้งบรรทัดเลย แต่ก็ทำแบ๊กอัปไว้ กันเสีย 4.1 ถ้าต้องการให้เว็บนึงมีมากกว่าหนึ่งเทมเพลต ก็สร้างไฟล์ใหม่ขึ้นมา เช่น ถ้า content-type แบบอื่น โดยต้องตั้งชื่อให้สอดคล้องกับชื่อ content-type อย่างถ้าเป็นชื่อ knol ก็สร้างหน้าชื่อ page-knol.tpl.php โปรแกรมก็จะอ่านอัตโนมัติ
  5. พอแก้เสร็จก็โหลดขึ้นไป คราวนี้ พอเข้าตรง admin -> theme ก็จะมีโผล่มาให้เลือก แค่นี้หน้าตาก็เปลี่ยนไปหมดครับ ผมมีตัวอย่างเว็บผม แต่ยังใหม่มาก ไม่ค่อยมีเนื้อหาอะไร (อาย) แต่ถ้าสนใจลองเข้าไปในบล็อกตรงลิงก์ด้านล่างได้ครับ

มือใหม่หัด Drupal 6.x + ลองแต่งธีมเอง

By fromdezun
3 years 11 weeks ago

ขอบคุณ mnop

ขอบคุณ mnop ที่แชร์ประสบการ์ ^__^

By nemo
3 years 8 weeks ago

อยากทราบว

อยากทราบว่า ถ้าจะทำธีมเอง โดยเลียนแบบธีมที่มีอยู่แล้วจากเว็บ สามารถทำได้มั้ยคะ
แล้วต้องทำอย่างไร

รูปภาพของ sugree
By sugree
3 years 8 weeks ago

ทำได้ครับ

ทำได้ครับ ใส่โครงสร้างใน page.tpl.php node.tpl.php block.tpl.php ก็ครบ