feild ในไฟล์ XML สามรถ ดึงข้อมูลจาก ฐานข้อมูลมาได้ไหมครับ

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

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

Patipat
PHP Super Hero Member
PHP Super Hero Member
Posts: 996
Joined: 10/06/2019 10:12 am

feild ในไฟล์ XML สามรถ ดึงข้อมูลจาก ฐานข้อมูลมาได้ไหมครับ

Post by Patipat » 23/07/2019 1:07 pm

ตอนนี้กำลังสร้าง Combobox ครับแต่ว่า ค่าใน value กับ text ต้องเอามาจากฐานข้อมูลครับ สามารถดึงมาได้ไหมครับ
**แล้วถ้าได้ มีวิธีการดึง อย่างไรครับ

โค้ดที่ใช้ครับ

Code: Select all

<field name="mylistvalue" type="list" default="" required="true" multiple="true" label="เลือก ID สินค้า" description="">
                  <option value="1">Option 1</option>
                  <option value="2">Option 2</option>
  </field> 
Kor ma di kub. :)

User avatar
tsukasaz
PHP VIP Members
PHP VIP Members
Posts: 10933
Joined: 18/04/2012 9:39 am

Re: feild ในไฟล์ XML สามรถ ดึงข้อมูลจาก ฐานข้อมูลมาได้ไหมครับ

Post by tsukasaz » 23/07/2019 1:12 pm

ศึกษาจากกระทู้นี้ได้ครับ
- viewtopic.php?f=86&t=45374
- viewtopic.php?f=86&t=46935
The last bug isn't fixed until the last user is dead. (Sidney Markowitz, 1995)

Patipat
PHP Super Hero Member
PHP Super Hero Member
Posts: 996
Joined: 10/06/2019 10:12 am

Re: feild ในไฟล์ XML สามรถ ดึงข้อมูลจาก ฐานข้อมูลมาได้ไหมครับ

Post by Patipat » 23/07/2019 2:03 pm

ผมได้ลองทำแล้วครับ

- สร้างโฟลเดอร์ใหม่ ชื่อ feild
- สร้างไฟล์ selectid.php ให้อยู่ในโฟลเดอร์ feild


โค้ด คลาส ที่อยุ่ในไฟล์ select.php

Code: Select all

<?php
defined('_JEXEC') or die;

JFormHelper::loadFieldClass('list');

class JFormFieldProvinces extends JFormFieldList
{
 
    protected $type = 'selectid';

    public function getOptions()
    {
        $lang_tag = \Joomla\CMS\Factory::getLanguage()->getTag(); 
        $db = Joomla\CMS\Factory::getDbo();
        $query = $db->getQuery(true)
            ->select('product_id AS value,'.$db->qn('name_'.$lang_tag).' AS text')
            ->from('#__mzc_products')
        $db->setQuery($query);
        $arr_options = $db->loadObjectList();

        return array_merge(parent::getOptions(), $arr_options);
    }
} 

โค้ดที่อยุ่ในไฟล์ XML ตอนเรียกใช้ครับ
** เราจะดึงค่าจาก ฐานข้อมูล value กับ text ใช้แบบไหนครับ

Code: Select all

<field name="selectid" type="list" label="เลือก ID สินค้า" multiple="true" description="">
<option value="value">text</option>
</field> 
Kor ma di kub. :)

User avatar
tsukasaz
PHP VIP Members
PHP VIP Members
Posts: 10933
Joined: 18/04/2012 9:39 am

Re: feild ในไฟล์ XML สามรถ ดึงข้อมูลจาก ฐานข้อมูลมาได้ไหมครับ

Post by tsukasaz » 23/07/2019 2:10 pm

- ในโฟลเดอร์ feild แก้เป็น fields

- class ที่สร้าง ชื่อไฟล์ ชื่อของ class และ protected $type มันต้องไปทางเดียวกันครับ viewtopic.php?p=114045&hilit=%E0%B8%8A% ... AD#p114045

- หลังจากได้ fields มาแล้ว ต้องเรียกใช้ ด้วยครับ viewtopic.php?p=119750&hilit=addfieldpath#p119750
The last bug isn't fixed until the last user is dead. (Sidney Markowitz, 1995)

Patipat
PHP Super Hero Member
PHP Super Hero Member
Posts: 996
Joined: 10/06/2019 10:12 am

Re: feild ในไฟล์ XML สามรถ ดึงข้อมูลจาก ฐานข้อมูลมาได้ไหมครับ

Post by Patipat » 23/07/2019 2:20 pm

- ปรับชื่อไฟล์ ชื่อคลาส protected $type แล้วครับ
- พอผมเรียกใช้ ก็ยังไม่ขึ้นเลยครับ ไม่ทราบว่าเรียกใช้ addfeildpath ถูกหรือเปล่าครับ

Code: Select all

<field name="selectid" type="list" label="เลือก ID สินค้า" multiple="true" description="" addfieldpath="/administrator/components/mod_mzc_products_slideshow/models/fields"> 
Kor ma di kub. :)

User avatar
tsukasaz
PHP VIP Members
PHP VIP Members
Posts: 10933
Joined: 18/04/2012 9:39 am

Re: feild ในไฟล์ XML สามรถ ดึงข้อมูลจาก ฐานข้อมูลมาได้ไหมครับ

Post by tsukasaz » 23/07/2019 2:24 pm

- ใส่ผิดที่ครับ viewtopic.php?p=119782#p119782

- ที่อยู่ไม่ถูกด้วย ตัว module ที่สร้างไม่อยู่ในโฟลเดอร์ administrator
The last bug isn't fixed until the last user is dead. (Sidney Markowitz, 1995)

Patipat
PHP Super Hero Member
PHP Super Hero Member
Posts: 996
Joined: 10/06/2019 10:12 am

Re: feild ในไฟล์ XML สามรถ ดึงข้อมูลจาก ฐานข้อมูลมาได้ไหมครับ

Post by Patipat » 23/07/2019 2:33 pm

ผมใส่ไว้ในนี้แล้วครับ ค่าก็ยังไม่ขึ้นครับ

Code: Select all

<fieldset name="basic" addfieldpath="/modules/mod_mzc_products_slideshow/fields">
อันนี้โค้ดแสดง value กับ text ต้องใส่อย่างไรครับ หรือว่าปล่อยค่าว่างไปเลยครับ

Code: Select all

<field name="selectid" type="list" label="เลือก ID สินค้า" multiple="true" <option value="value"></option>
</field>
Kor ma di kub. :)

User avatar
tsukasaz
PHP VIP Members
PHP VIP Members
Posts: 10933
Joined: 18/04/2012 9:39 am

Re: feild ในไฟล์ XML สามรถ ดึงข้อมูลจาก ฐานข้อมูลมาได้ไหมครับ

Post by tsukasaz » 23/07/2019 3:15 pm

เปลี่ยน type เป็น ชื่อไฟล์ของ fields ที่สร้างมาครับ
The last bug isn't fixed until the last user is dead. (Sidney Markowitz, 1995)

Post Reply
  • Similar Topics
    Replies
    Views
    Last post

Return to “Joomla Development”

Who is online

Users browsing this forum: Bing [Bot] and 5 guests