มาดัดแปลงโมดูล blocknewproducts ให้แสดงผลในตำแหน่ง home กัน

ปกติโมดูล blocknewproducts จะมีการแสดงผลทางด้านซ้ายและขวาเท่านั้น ถ้าเราอยากจะให้แสดงผลตรงกลางเหมือนกับโมดูล homefeatured จะต้องแก้ไขยังไงบ้างมาลองทำกันดูครับ

เตรียมดังนี้
– Text editor อะไรก็ได้แล้วแต่ถนัด
– ไฟล์ modules/blocknewproducts/blocknewproducts.php เป็นส่วนที่เราจะแก้ไข
– ไฟล์ .tpl ของโมดูล homefeatured (modules/homefeatured/homefeatured.tpl) เอาไว้เป็นแม่แบบ

เริ่มกันเลย

– ให้ทำการคัดลอกไฟล์ modules/homefeatured/homefeatured.tpl ไปเก็บไว้ยัง
modules/blocknewproducts แล้วเปลี่ยนชื่อเป็น blockhomenewproducts.tpl จะใช้ชื่ออื่นต่างจากนี้ก็ได้นะครับ
– เปิด blocknewproducts.php ด้วย Text editor ที่เตรียมไว้จากนั้นเราจะค่อยเพิ่ม php code ลงไปทีละจุดเริ่มจาก

public function install()

ให้แทรกชุดคำสั่ง

!$this->registerHook('displayHome')

ดูภาพด้านล่างประกอบ

ต่อมาที่ให้เพิ่ม code ตามด้านล่างนี้ ดูภาพด้านล่างประกอบ

public function hookDisplayHome($params)
{
     $newProducts = Product::getNewProducts((int)($params['cookie']->id_lang), 0,
          (int)(Configuration::get('NEW_PRODUCTS_NBR')));
 
     if (!$newProducts && !Configuration::get('PS_BLOCK_NEWPRODUCTS_DISPLAY'))
          return;
 
     $this->smarty->assign(array(
          'products' => $newProducts,
          'add_prod_display' => Configuration::get('PS_ATTRIBUTE_CATEGORY_DISPLAY'),
          'homeSize' => Image::getSize('home_default'),
     ));
 
     return $this->display(__FILE__, 'blockhomenewproducts.tpl');
}



ต่อมาเรามาแก้ไขในส่วนของ blockhomenewproducts.tpl เพื่อให้รองรับการแปลภาษาสำหรับ module blocknewproducts นะครับ อย่าได้ช้าลงมือกันต่อ เปิดไฟล์ แล้วค้นหาคำว่า

mod='homefeatured'

จากนั้นให้แก้ไขเป็น

mod='blocknewproducts'

เป็นอันเสร็จสำหรับส่วนนี้ แต่ถ้าใครอยากจะเปลี่ยนคำไหนเป็นอะไรก็ตามสะดวกเลยครับ ยกตัวอย่างสักตัว เช่น

{l s='Featured products' mod='homefeatured'}
 
ก็เปลี่ยนเป็น
 
{l s='New products' mod='blocknewproducts'}
 
s='New products' คือส่วนของคำที่เราจะเอาไปแสดงและแปลเป็นภาษาอื่น ๆ นะครับ

จบในส่วนที่จำเป็นต้องแก้ไขแล้ว เราก็มาต่อในส่วนของ Backoffice กันเลย สิ่งที่เราจะต้องทำหลังจากนี้คือ
– reset module หรือ uninstall และ install
– แปลภาษาเพิ่มเติมสำหรับ tpl ที่เพิ่มเข้าไป

ผลสำเร็จจะเป็นตามภาพด้านล่างนี้ครับ

การแก้ไขทั้งหมดมีแค่นี้ครับ

*** เนื้อหาการดัดแปลงจะอ้างอิงกับโมดูลใน PrestaShop 1.5 นะครับ สามารถนำไปประยุกต์กับ 1.4 ได้เหมือนกัน

จาก nokaek.com เรียบเรียงใหม่โดย Devstore.in.th


หากมีข้อสงสัยหรืออยากแบ่งปันความเห็นของท่านหรือร่วมแชร์ความเห็นและความรู้ได้กันได้ในกลุ่ม PrestaShop Thailand ที่ facebook หรือที่ Google+

You can leave a response, or trackback from your own site.

Leave a Reply

You must be logged in to post a comment.