ปรับแต่ง Opencart ตอน ผมอยากมีโมดูลที่เฮดเดอร์และฟุตเตอร์ ตอนที่2

หลังจากที่ดู Layout ตัวใหม่ที่ผมต้องการแล้ว ต่อไปเรามาดูในส่วนของโค้ดกันว่าจะแก้ไขตรงไหนบ้าง การแก้ไข ต้องทำการแก้ไข 2 ฝั่งน่ะครับ คือฝั่ง catalog และฝั่งแอดมิน เรามาแก้ฝั่ง catalog ก่อน

1.เปิดไฟล์ catalog/controller/common/header.php

หา
if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/common/header.tpl')) {
$this->template = $this->config->get('config_template') . '/template/common/header.tpl';
} else {
$this->template = 'default/template/common/header.tpl';
}

แล้ววางโค้ดนี้ก่อนบรรทัดดังกล่าว

//mods
$this->load->model('design/layout');
$this->load->model('catalog/information');

if (isset($this->request->get['route'])) {
$route = $this->request->get['route'];
} else {
$route = 'common/home';
}

$layout_id = 0;

if (substr($route, 0, 16) == 'product/category' && isset($this->request->get['path'])) {
$path = explode('_', (string)$this->request->get['path']);

$layout_id = $this->model_catalog_category->getCategoryLayoutId(end($path));
}

if (substr($route, 0, 15) == 'product/product' && isset($this->request->get['product_id'])) {
$layout_id = $this->model_catalog_product->getProductLayoutId($this->request->get['product_id']);
}

if (substr($route, 0, 23) == 'information/information' && isset($this->request->get['information_id'])) {
$layout_id = $this->model_catalog_information->getInformationLayoutId($this->request->get['information_id']);
}

if (!$layout_id) {
$layout_id = $this->model_design_layout->getLayout($route);
}

if (!$layout_id) {
$layout_id = $this->config->get('config_layout_id');
}

$module_data = array();

$this->load->model('setting/extension');

$extensions = $this->model_setting_extension->getExtensions('module');

foreach ($extensions as $extension) {
$modules = $this->config->get($extension['code'] . '_module');

if ($modules) {
foreach ($modules as $module) {
if ($module['layout_id'] == $layout_id && $module['position'] == 'content_header' && $module['status']) {
$module_data[] = array(
'code'       => $extension['code'],
'setting'    => $module,
'sort_order' => $module['sort_order']
);
}
}
}
}

$sort_order = array();

foreach ($module_data as $key => $value) {
$sort_order[$key] = $value['sort_order'];
}

array_multisort($sort_order, SORT_ASC, $module_data);

$this->data['modules'] = array();

foreach ($module_data as $module) {
$module = $this->getChild('module/' . $module['code'], $module['setting']);

if ($module) {
$this->data['modules'][] = $module;
}
}
//

จากนั้นบันทึก และเปิดไฟล์นี้

catalog/view/theme/default/template/common/header.tpl

หา(บรรทัดล่างสุดเลย)

แล้ววางโค้ดนี้ไว้ด้านบน





บันทึก เสร็จในส่วนของ catalog แล้วครับ แล้วเราจะต่อใน admin กับตอนที่ 3 ตอนจบครับ

Don't be shellfish...Share on FacebookTweet about this on TwitterShare on Google+Digg thisPin on PinterestShare on Reddit

4 Responses so far.

  1. opencartman พูดว่า:

    เมื่อไหร่ตอน 3 จะมาครับผม รออยู่นะครับ ทำตามของฝรั่งแล้วไม่ได้อ่ะครับ
    hxxp://redbonzai.com/create-modules-in-the-header-for-opencart/

  2. miiwiez พูดว่า:

    มารอตอนที่ 3 ค่ะ

  3. mellowmay พูดว่า:

    รอตอนที่ 3 นานมากค่ะ รบกวนด้วยนะคะ

  4. amdev พูดว่า:

    ดองไว้นานเลย อัปเดทแล้วครับ

ใส่ความเห็น

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องที่ต้องการถูกทำเครื่องหมาย *

คุณอาจจะใช้ป้ายกำกับและคุณสมบัติHTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>