เลือกฟิว name_th-TH ออกมาใช้ยังไงครับ

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

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

User avatar
jamepiyawat
PHP VIP Members
PHP VIP Members
Posts: 1914
Joined: 21/05/2019 10:45 am

เลือกฟิว name_th-TH ออกมาใช้ยังไงครับ

Post by jamepiyawat » 13/07/2019 5:21 pm

ผมได้ทำการเชื่อม 2 ตารางแล้วแต่ทั้ง 2 ตารางมีฟิว name_en-GB และ name_th-TH เหมือนกันทั้ง 2 ตารางผมจึงกำหนัดให้ใช้ฟิวของตารางแรกซึงผมสามารถดึงค่าฟิว name_en-GB ออกมาใช้ได้แล้วแต่ยังไม่สามารถดึงฟิว name_th-TH ในตารางแรกออกมาใช้ได้เพราะไม่ทราบว่าจะต้องใส่ยังไง

อยากทราบวิธีที่สามารถเรียกใช้ฟิวทั้ง name_en-GB และ ฟิว name_th-TH ในตารางแรกออกมายังไงครับ

โค้ดที่เชื่อม 2 ตารางและสามารถดึงฟิว name_en-GB ออกมาได้แล้ว ครับ

Code: Select all

    $db = joomla\CMS\Factory::getDbo();
          $query = $db->getQuery(true)
            ->select($db->qn('a.name_en-GB').',a.product_id,a.image,b.category_id')
            ->from('#__mzc_products AS a')
            ->leftJoin('#__mzc_products_to_categories As b ON a.product_id=b.product_id')
            ->order('RAND()','product_id');

    $db->setQuery($query,0,4);
    $items = $db->loadAssocList();

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

Re: เลือกฟิว name_th-TH ออกมาใช้ยังไงครับ

Post by tsukasaz » 15/07/2019 2:32 am

ประกาศตัวแปรมา แล้วเรียกใช้คำสั่งเช็คภาษาที่เปิดอยู่

Code: Select all

$lang_tag = \Joomla\CMS\Factory::getLanguage()->getTag();
ค่าในตัวแปร $lang_tag จะเป็นตัวย่อของภาษาที่ใช้งานตอนนั้น เช่น เปิดหน้าเว็บ joomla ภาษาอังกฤษอยู่ มันจะมีค่าเป็น en-GB

ถ้าเปิดหน้าภาษาไทย จะมีค่าเป็น th-TH แล้วก็เอามาต่อ String กับคำว่า name_ ก็จะได้ชื่อ name_en-GB หรือ name_th-TH แล้ว
The last bug isn't fixed until the last user is dead. (Sidney Markowitz, 1995)

User avatar
jamepiyawat
PHP VIP Members
PHP VIP Members
Posts: 1914
Joined: 21/05/2019 10:45 am

Re: เลือกฟิว name_th-TH ออกมาใช้ยังไงครับ

Post by jamepiyawat » 15/07/2019 11:24 am

ทำได้แล้วครับ แต่ว่าผมเลือกฟิว name_th-TH ออกมาใช้งานไม่ได้ครับ

ทำยังไงถึงจะselect ฟิว name_th-TH ออกมาใช้ได้ถูกต้องครับ

ถ้า select ฟิว name_th-TH ออกมาแบบนี้

Code: Select all

 ->select($db->qn('a.name_en-GB'),('a.name_th-TH').',a.product_id,a.image,b.category_id')
มันก็ออกมาเป็นแบบนี้เลยครับ

หน้าภาษาอังกฤษ
Selection_999(004).png
Selection_999(004).png (5.22 KiB) Viewed 252 times
หน้าภาษาไทย
Selection_999(005).png
Selection_999(005).png (8.78 KiB) Viewed 252 times

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

Re: เลือกฟิว name_th-TH ออกมาใช้ยังไงครับ

Post by tsukasaz » 15/07/2019 11:46 am

อันนั้นมันคือการ select ชื่อของทุกภาษาออกมาหรือเปล่า แบบนี้ถ้าไม่ได้ติดตั้งภาษาไทย แล้วไปเรียก name_th-TH มันจะ error นะครับ
The last bug isn't fixed until the last user is dead. (Sidney Markowitz, 1995)

User avatar
jamepiyawat
PHP VIP Members
PHP VIP Members
Posts: 1914
Joined: 21/05/2019 10:45 am

Re: เลือกฟิว name_th-TH ออกมาใช้ยังไงครับ

Post by jamepiyawat » 15/07/2019 2:37 pm

แบบว่าผม select แบบนี้

Code: Select all

->select($db->qn('a.name_en-GB').',a.product_id,a.image,b.category_id')
แล้วมันสามารถขึ้นชื่อสินค้าที่อยู่ในฟิล a.name_en-GB ได้แต่ว่าพอเปลี่ยนเว็บเป็นภาษาไทยแล้วไม่มีการแสดงชื่อสินค้าออกมาให้เห็นเลยอะครับ

ผมควรจะทำอย่างไรให้มีชื่อสินค้าภาษาไทยตอนเปลี่ยนเว็บเป็นภาษาไทย ครับ

ปลี่ยนเว็บเป็นภาษาอังกฤษ
Selection_999(006).png
Selection_999(006).png (48.67 KiB) Viewed 241 times
เปลี่ยนเว็บเป็นภาษาไทย
Selection_999(007).png
Selection_999(007).png (42.43 KiB) Viewed 241 times
ติดตั้งภาษาไทยเรียบร้อยแล้วครับ
Selection_999(008).png
Selection_999(008).png (22.04 KiB) Viewed 241 times

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

Re: เลือกฟิว name_th-TH ออกมาใช้ยังไงครับ

Post by tsukasaz » 15/07/2019 5:08 pm

tsukasaz wrote:ประกาศตัวแปรมา แล้วเรียกใช้คำสั่งเช็คภาษาที่เปิดอยู่

Code: Select all

$lang_tag = \Joomla\CMS\Factory::getLanguage()->getTag();
ค่าในตัวแปร $lang_tag จะเป็นตัวย่อของภาษาที่ใช้งานตอนนั้น เช่น เปิดหน้าเว็บ joomla ภาษาอังกฤษอยู่ มันจะมีค่าเป็น en-GB

ถ้าเปิดหน้าภาษาไทย จะมีค่าเป็น th-TH แล้วก็เอามาต่อ String กับคำว่า name_ ก็จะได้ชื่อ name_en-GB หรือ name_th-TH แล้ว
ค่าที่อยู่ใน $db->qn('a.name_en-GB') มันต้องเปลี่ยนไปตามภาษาของหน้าเว็บครับ

ตรง 'a.name_en-GB' มันคือ String เราต้องทำให้มันเปลี่ยนตามภาษา โดยใช้ตัวแปรที่อ่านจากภาษา ในตัวอย่างใช้ $lang_tag

เวลาเขียนเชื่อมก็ให้มันได้ 'a.name_'. $lang_tag มันก็จะ select ตามภาษาแล้ว

ตอนแสดงผลในไฟล์ default.php ก็ใช้หลักการเดียวกันก็ได้ หรือ ตอน select จะใช้ AS กำหนดชื่อให้มันเป็นชื่อเดียวก็ได้
The last bug isn't fixed until the last user is dead. (Sidney Markowitz, 1995)

User avatar
jamepiyawat
PHP VIP Members
PHP VIP Members
Posts: 1914
Joined: 21/05/2019 10:45 am

Re: เลือกฟิว name_th-TH ออกมาใช้ยังไงครับ

Post by jamepiyawat » 19/07/2019 11:52 am

ทำได้แล้วครับให้ใส้โค้ดนี้ในหน้า select ด้วย

Code: Select all

$lang_tag = \Joomla\CMS\Factory::getLanguage()->getTag();
เพื่อเป็นการทำให้ตัวแปล $lang_tag เก็บ en-GB หรือ th-TH ตามที่เราเปลี่ยนภาษา
ต่อจากนั้นก็จะเป็นการ select ฟิว name_th-TH หรือ ฟิว name_en-GB ตามที่หน้าเว็บของเราจะเป็นภาษาอะไร แบบนี้

Code: Select all

->select($db->qn('a.name_'.$lang_tag).',a.product_id,a.image,b.category_id')

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

Re: เลือกฟิว name_th-TH ออกมาใช้ยังไงครับ

Post by tsukasaz » 19/07/2019 12:39 pm

เยี่ยมครับ แล้วเวลาเรียกใช้ทำยังไงครับ
The last bug isn't fixed until the last user is dead. (Sidney Markowitz, 1995)

Post Reply

Return to “Joomla Development”

Who is online

Users browsing this forum: No registered users and 2 guests