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

ตอบกระทู้

รูปแสดงอารมณ์
:icon_plusone: :like: :plusone: :gfb: :-D :) :( :-o 8O :? 8) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: :angry: :baa: :biggrin:
รูปแสดงอารมณ์อื่นๆ

BBCode เปิด
[img] เปิด
[url] เปิด
[Smile icon] เปิด

กระทู้แนะนำ
   

มุมมองที่ขยายได้ กระทู้แนะนำ: เลือกฟิว name_th-TH ออกมาใช้ยังไงครับ

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

โดย jamepiyawat » 19/07/2019 1:18 pm

แบบนี้ครับ

โค้ด: เลือกทั้งหมด

<?php echo $product['name_'.$lang_tag]; ?>

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

โดย tsukasaz » 19/07/2019 12:39 pm

เยี่ยมครับ แล้วเวลาเรียกใช้ทำยังไงครับ

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

โดย jamepiyawat » 19/07/2019 11:52 am

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

โค้ด: เลือกทั้งหมด

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

โค้ด: เลือกทั้งหมด

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

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

โดย tsukasaz » 15/07/2019 5:08 pm

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

โค้ด: เลือกทั้งหมด

$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 กำหนดชื่อให้มันเป็นชื่อเดียวก็ได้

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

โดย jamepiyawat » 15/07/2019 2:37 pm

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

โค้ด: เลือกทั้งหมด

->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 729 times
เปลี่ยนเว็บเป็นภาษาไทย
Selection_999(007).png
Selection_999(007).png (42.43 KiB) Viewed 729 times
ติดตั้งภาษาไทยเรียบร้อยแล้วครับ
Selection_999(008).png
Selection_999(008).png (22.04 KiB) Viewed 729 times

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

โดย tsukasaz » 15/07/2019 11:46 am

อันนั้นมันคือการ select ชื่อของทุกภาษาออกมาหรือเปล่า แบบนี้ถ้าไม่ได้ติดตั้งภาษาไทย แล้วไปเรียก name_th-TH มันจะ error นะครับ

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

โดย jamepiyawat » 15/07/2019 11:24 am

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

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

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

โค้ด: เลือกทั้งหมด

 ->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 740 times
หน้าภาษาไทย
Selection_999(005).png
Selection_999(005).png (8.78 KiB) Viewed 740 times

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

โดย tsukasaz » 15/07/2019 2:32 am

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

โค้ด: เลือกทั้งหมด

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

ถ้าเปิดหน้าภาษาไทย จะมีค่าเป็น th-TH แล้วก็เอามาต่อ String กับคำว่า name_ ก็จะได้ชื่อ name_en-GB หรือ name_th-TH แล้ว

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

โดย 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 ออกมาได้แล้ว ครับ

โค้ด: เลือกทั้งหมด

    $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();

ข้างบน