ยินดีต้อนรับคุณ, บุคคลทั่วไป กรุณา เข้าสู่ระบบ หรือ ลงทะเบียน

เข้าสู่ระบบด้วยชื่อผู้ใช้ รหัสผ่าน และระยะเวลาในเซสชั่น

ThaiSEOBoard.comพัฒนาเว็บไซต์CMS & Free Scriptวิธีเพิ่มตำแหน่งโมดูลของ Joomla เห็นคนถามมาหลายคน
หน้า: [1]   ลงล่าง
พิมพ์
ผู้เขียน หัวข้อ: วิธีเพิ่มตำแหน่งโมดูลของ Joomla เห็นคนถามมาหลายคน  (อ่าน 986 ครั้ง)
0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้
jojoe2000
คนรักเสียว
*

พลังน้ำใจ: 108
ออฟไลน์ ออฟไลน์

กระทู้: 133



ดูรายละเอียด
« เมื่อ: 31 สิงหาคม 2012, 10:08:42 »

ใน 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
ก๊วนเสียว
*

พลังน้ำใจ: 45
ออฟไลน์ ออฟไลน์

กระทู้: 480



ดูรายละเอียด เว็บไซต์
« ตอบ #1 เมื่อ: 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

อธิบาย งงหน่อยนะครับ ร่างไม่เก่ง
« แก้ไขครั้งสุดท้าย: 31 สิงหาคม 2012, 10:51:57 โดย ohmruning » บันทึกการเข้า
jojoe2000
คนรักเสียว
*

พลังน้ำใจ: 108
ออฟไลน์ ออฟไลน์

กระทู้: 133



ดูรายละเอียด
« ตอบ #2 เมื่อ: 01 กันยายน 2012, 11:10:45 »

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

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

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

ถ้าเราใช้ 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
บันทึกการเข้า

หน้า: [1]   ขึ้นบน
พิมพ์