สอบถามทำ custom field type กดบันทึกแล้วข้อมูลไม่แสดงครับ

ถามตอบ ปัญหาการพัฒนา Extension ไม่ว่าจะเป็น Module plugin Component หรือ แม้แต่ template การปรับแต่งโค้ด Joomla ต่างๆ ทุกเวอร์ชั่น 1.5 2.5 หรือ 3.x

Moderator: mindphp, ผู้ดูแลกระดาน

ภาพประจำตัวสมาชิก
Thanapoom1514
PHP VIP Members
PHP VIP Members
โพสต์: 3395
ลงทะเบียนเมื่อ: 04/07/2022 9:46 am

สอบถามทำ custom field type กดบันทึกแล้วข้อมูลไม่แสดงครับ

โพสต์ที่ยังไม่ได้อ่าน โดย Thanapoom1514 »

ผมทำ custom field type ในปลั๊กอินต้องการทำเก็บค่าชื่อปุ่มแสดงสารบัญและปุ่มซ่อนสารบัญครับแสดงตามที่เราติดตั้งภาษาในตัวของ joomla แต่พอเขียนชื่อปุ่มในฟิลด์ที่ custom เอาไว้แล้วไม่มีข้อมูลแสดงครับแต่ใน database มีข้อมูลที่บันทึกเอาไว้เก็บอยู่ในฟิลด์อยู่ครับ อยากแสดงที่บันทึกทำยังไงครับ

ใส่ข้อความในฟอร์มและกดบันทึกครับ
Joomla Development-1.png
Joomla Development-1.png (19.33 KiB) Viewed 132 times
หลังจากบันทึกไม่ข้อมูลจากที่บันทึกขึ้นแสดงครับ
Joomla Development-5.png
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
Joomla Development-2.png (90.28 KiB) Viewed 132 times
:gfb:
ภาพประจำตัวสมาชิก
tsukasaz
PHP VIP Members
PHP VIP Members
โพสต์: 20576
ลงทะเบียนเมื่อ: 18/04/2012 9:39 am

Re: สอบถามทำ custom field type กดบันทึกแล้วข้อมูลไม่แสดงครับ

โพสต์ที่ยังไม่ได้อ่าน โดย 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
PHP VIP Members
โพสต์: 3395
ลงทะเบียนเมื่อ: 04/07/2022 9:46 am

Re: สอบถามทำ custom field type กดบันทึกแล้วข้อมูลไม่แสดงครับ

โพสต์ที่ยังไม่ได้อ่าน โดย 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
Joomla Development-1.png (7.62 KiB) Viewed 124 times
:gfb:
ตอบกลับโพส
  • Similar Topics
    ตอบกลับ
    แสดง
    โพสต์ล่าสุด

ผู้ใช้งานขณะนี้

สมาชิกกำลังดูบอร์ดนี้: ไม่มีสมาชิกใหม่ และบุคลทั่วไป 3