วิธีเพิ่มตำแหน่งโมดูลของ Joomla เห็นคนถามมาหลายคน

เริ่มโดย jojoe2000, 31 สิงหาคม 2012, 10:08:42

หัวข้อก่อนหน้า - หัวข้อถัดไป

0 สมาชิก และ 1 ผู้มาเยือน กำลังดูหัวข้อนี้

jojoe2000

ใน Joomla เราสามารถเลือกตำแหน่งการแสดงผล Module ซึ่งค่าตำแหน่งต่างๆนั้นถูกกำหนดมาจาก Template หากเราต้องการที่จะสร้างตำแหน่งใหม่ขึ้นมาใช้งานเองก็สามารถทำได้ดังนี้

ขั้นแรก เพิ่มชื่อตำแหน่ง ของเรา

เราสามารถเพิ่มชื่อตำแหน่งได้ที่ไฟล์ templateDetails.xml ที่อยู่ใน Template นั้นๆ โดยการเพิ่ม code ไปใน tag positions ดังตัวอย่างด้านล่างนี้


01  <positions>
02  <position>breadcrumb</position>
03  <position>left</position>
04  <position>right</position>
05  <position>top</position>
06  <position>user1</position>
07  <position>user2</position>
08  <position>user3</position>
09  <position>user4</position>
10  <position>footer</position>
11  <position>debug</position>
12  <position>syndicate</position>
13  <position>newposition></position ผมตั้งชื่อว่า newposition
14  </positions>

เสร็จขึ้นตอนนี้แล้วก็มาดูที่ index.php ของ template นั้นๆ

เข้าไปแก้ไขไฟล์ index.php ของ Template โดยการเพิ่ม code ด้านล่างลงไปยังตำแหน่งที่ต้องการ

<jdoc:include type="modules" name="newPosition" />

เป็นอันเสร็จสิ้น ลองดูละกันครับ แล้วก็ลองตรวจสอบดูว่ามันมี ตำแหน่งเพิ่มมาหรือเปล่า

:wanwan020: :wanwan020:

ohmruning

เพิ่มเติมให้ครับ

ไม่เรียกได้เรียกใช้ แต่ตำแหน่งขึ้นมา?

ให้เรานำสคริปนี้ไปใส่เพื่อปิดคำสั่งโมดูลนั้นครับ กรณีที่ไม่ได้เรียกโมดูลนี้โชว์ เช่น

ถ้าเราใช้ table ในเทมเพลต ซึ่งกำหนดขนาดมาแล้ว ทำให้หน้า เทมเพลตนั้น มี การแสดง table ขึ้นมา ซึ่งถ้าเราไม่ได้ใช้ในตำแหน่งนี้ มันก็จะกลายเป็น ขยะ หรือ โชว์ตำแหน่งเปล่าที่มีขนาดของ table อยู่

ให้เราทำการแทรกนี้
<?php if( $this->countModules('newPosition') ) : ?>

<?php endif; ?>
แล้วตามด้วย คำสั่งต่างๆเช่น


จะได้

<?php if( $this->countModules('newPosition') ) : ?>
<table width="400" >
<jdoc:include type="modules" name="newPosition" />
</table>
<?php endif; ?>

เท่านี้ คำสั่ง table ก็จะถูกนำมาใช้ แค่กรณีที่เรียกใช้โมดูล newPosition

อธิบาย งงหน่อยนะครับ ร่างไม่เก่ง

jojoe2000

อ้างถึงจาก: ohmruning ใน 31 สิงหาคม 2012, 10:47:20
เพิ่มเติมให้ครับ

ไม่เรียกได้เรียกใช้ แต่ตำแหน่งขึ้นมา?

ให้เรานำสคริปนี้ไปใส่เพื่อปิดคำสั่งโมดูลนั้นครับ กรณีที่ไม่ได้เรียกโมดูลนี้โชว์ เช่น

ถ้าเราใช้ table ในเทมเพลต ซึ่งกำหนดขนาดมาแล้ว ทำให้หน้า เทมเพลตนั้น มี การแสดง table ขึ้นมา ซึ่งถ้าเราไม่ได้ใช้ในตำแหน่งนี้ มันก็จะกลายเป็น ขยะ หรือ โชว์ตำแหน่งเปล่าที่มีขนาดของ table อยู่

ให้เราทำการแทรกนี้
<?php if( $this->countModules('newPosition') ) : ?>

<?php endif; ?>
แล้วตามด้วย คำสั่งต่างๆเช่น


จะได้

<?php if( $this->countModules('newPosition') ) : ?>
<table width="400" >
<jdoc:include type="modules" name="newPosition" />
</table>
<?php endif; ?>

เท่านี้ คำสั่ง table ก็จะถูกนำมาใช้ แค่กรณีที่เรียกใช้โมดูล newPosition

อธิบาย งงหน่อยนะครับ ร่างไม่เก่ง

:wanwan016: :wanwan016: