ถามตอบ ปัญหาการพัฒนา Extension ไม่ว่าจะเป็น Module plugin Component หรือ แม้แต่ template การปรับแต่งโค้ด Joomla ต่างๆ ทุกเวอร์ชั่น 1.5 2.5 หรือ 3.x
Moderator: mindphp, ผู้ดูแลกระดาน
-
Thanapoom1514
- PHP VIP Members

- โพสต์: 3395
- ลงทะเบียนเมื่อ: 04/07/2022 9:46 am
โพสต์ที่ยังไม่ได้อ่าน
โดย Thanapoom1514 »
ผมทำ custom field type ในปลั๊กอินต้องการทำเก็บค่าชื่อปุ่มแสดงสารบัญและปุ่มซ่อนสารบัญครับแสดงตามที่เราติดตั้งภาษาในตัวของ joomla แต่พอเขียนชื่อปุ่มในฟิลด์ที่ custom เอาไว้แล้วไม่มีข้อมูลแสดงครับแต่ใน database มีข้อมูลที่บันทึกเอาไว้เก็บอยู่ในฟิลด์อยู่ครับ อยากแสดงที่บันทึกทำยังไงครับ
ใส่ข้อความในฟอร์มและกดบันทึกครับ

- Joomla Development-1.png (19.33 KiB) Viewed 132 times
หลังจากบันทึกไม่ข้อมูลจากที่บันทึกขึ้นแสดงครับ

- Joomla Development-5.png (15.73 KiB) Viewed 132 times
โค้ด Field
โค้ด: เลือกทั้งหมด
class JFormFieldGetLanguage extends FormField
{
protected $type = 'getlanguage';
public function getInput()
{
$html = '';
$no_toc = 0;
$language = JFactory::getLanguage();
$installedLanguages = $language->getKnownLanguages();
if (!empty($installedLanguages)) {
foreach ($installedLanguages as $language) {
// สร้าง input สำหรับแต่ละภาษา
$html .= '<div class="language-input">';
$html .= '<label for="show_toc_'.$no_toc.'">' . JText::_('PLG_CONTENT_MSEO_TOC_BUTTONSHOW') . ' ' . $language['nativeName'] . '</label>';
$html .= '<input type="text" id="show_toc_'.$no_toc.'"" name="jform[params][item_language][toc_show][' . $language['tag'] . ']" />';
$html .= '</div>';
$html .= '<div class="language-input">';
$html .= '<label for="hide_toc_'.$no_toc.'">' . JText::_('PLG_CONTENT_MSEO_TOC_BUTTONHIDE') . ' ' . $language['nativeName'] . '</label>';
$html .= '<input type="text" id="hide_toc_'.$no_toc.'" name="jform[params][item_language][toc_hide][' . $language['tag'] . ']" />';
$html .= '</div>';
$no_toc++;
}
}
return $html;
โค้ด xml
โค้ด: เลือกทั้งหมด
<config>
<fields name="params" addfieldpath="plugins/content/mseo_toc/fields" >
<fieldset name="basic">
<field
type="getlanguage"
label="PLG_CONTENT_MSEO_TOC_INDEX"
name="item_language"
multiple="true"
/>
เบื้องต้นเช็คใน Database มีข้อมูลเก็บตามที่บันทึกเอาไว้ครับ

- Joomla Development-2.png (90.28 KiB) Viewed 132 times

-
tsukasaz
- PHP VIP Members

- โพสต์: 20576
- ลงทะเบียนเมื่อ: 18/04/2012 9:39 am
โพสต์ที่ยังไม่ได้อ่าน
โดย tsukasaz »
กรณีแบบนี้ ใน "โค้ด Field" ที่แปะโค้ดมา ต้องดึงค่ามาใส่ใน value ของ input เองครับ
ใน function getInput() สามารถดึงค่าที่บันทึกได้จาก $this->value
The last bug isn't fixed until the last user is dead. (Sidney Markowitz, 1995)
-
Thanapoom1514
- PHP VIP Members

- โพสต์: 3395
- ลงทะเบียนเมื่อ: 04/07/2022 9:46 am
โพสต์ที่ยังไม่ได้อ่าน
โดย Thanapoom1514 »
tsukasaz เขียน: ↑18/09/2023 11:31 am
กรณีแบบนี้ ใน "โค้ด Field" ที่แปะโค้ดมา ต้องดึงค่ามาใส่ใน value ของ input เองครับ
ใน function getInput() สามารถดึงค่าที่บันทึกได้จาก $this->value
ขอบคุณครับ เพิ่ม $this->value['toc_show'] ใน value ของ input ครับ ก็ขึ้นมาแสดงแล้วครับ
โค้ด: เลือกทั้งหมด
foreach ($installedLanguages as $language)
{
$html .= '<div class="language-input">';
$html .= '<label for="show_toc_'.$no_toc.'">' . JText::_('PLG_CONTENT_MSEO_TOC_BUTTONSHOW') . ' ' . $language['nativeName'] . '</label>';
$html .= '<input type="text" id="show_toc_'.$no_toc.'"" name="jform[params][item_language][toc_show][' . $language['tag'] . ']" value="'.$this->value['toc_show'][$language['tag'] ].'" />';
$html .= '</div>';
$html .= '<div class="language-input">';
$html .= '<label for="hide_toc_'.$no_toc.'">' . JText::_('PLG_CONTENT_MSEO_TOC_BUTTONHIDE') . ' ' . $language['nativeName'] . '</label>';
$html .= '<input type="text" id="hide_toc_'.$no_toc.'" name="jform[params][item_language][toc_hide][' . $language['tag'] . ']" value="'.$this->value['toc_hide'][$language['tag'] ].'" />';
$html .= '</div>';
$no_toc++;
}

- Joomla Development-1.png (7.62 KiB) Viewed 124 times

-
-
- 1 ตอบกลับ
- 1535 แสดง
-
โพสต์ล่าสุด โดย Parichat
14/07/2018 11:49 am
-
-
- 1 ตอบกลับ
- 472 แสดง
-
โพสต์ล่าสุด โดย tsukasaz
22/05/2019 3:11 pm
-
-
- 1 ตอบกลับ
- 609 แสดง
-
โพสต์ล่าสุด โดย tsukasaz
22/12/2022 2:13 pm
-
-
- 3 ตอบกลับ
- 6390 แสดง
-
โพสต์ล่าสุด โดย Bailey99
04/10/2019 2:38 pm
สมาชิกกำลังดูบอร์ดนี้: ไม่มีสมาชิกใหม่ และบุคลทั่วไป 3