Đồ chơi hoàng hà
Quan tâm nhiều
Loading...

Thêm position vào theme OpenCart 1.5.1.1


Nhiều bạn thắc mắc tại sao opencart không có nhiều vị trí để đặt các module trong theme 
như joomla hay đơn giản chỉ cần nhiều vị trí (position) hơn so với  mặc định  chỉ có "content top", "content bottom", "column right", "column left". Bài viết này sẽ hướng dẫn và giải thích làm như thế nào để có nhiều position hơn.

Những gì bạn cần biết là:

- Tôi nên bắt đầu bằng cách nói rằng tôi không phải là một chuyên gia OpenCart. Như vậy,
 tôi không chắc chắn điều này làm việc với các phiên bản opencart cũ hơn 1.5.1.1.
- Những thay đổi trong hướng dẫn này được thực hiện để thay đổi nội dung các tập
 tin mà có thể bị ghi đè khi các bạn nâng cấp hoặc cập nhật lên phiên bản opencart
 mới trong tương lai.

Bắt đầu thực hiện:

Đầu tiên các bạn tải về và cài đặt module miễn phí Hildebrando Youtube OpenCart v1.5.1.1.
 Tôi đã chọn mod này chủ yếu là bởi vì nó đã được đánh giá cao và không liên quan quá nhiều
 đến các chức năng trong back-end. Tôi giả sử các bạn có thể thay đổi bất kỳ thành phần nào
 tương tự.
1. Thêm position trong admin (administration)
  • Trước tiên, các bạn cần phải sửa tập tin ngôn ngữ của module trong 
  • /admin/language/english/module/s_youtube.phpvà thêm vào position mới
  •  của bạn. Đối với hướng dẫn này chúng ta sẽ có thêm một position mới được 
  • gọi là: Content Middle.
$_['text_content_middle'] = 'Content Middle';

  • Thứ hai, các bạn cần phải sửa tệp tin admin template của module trong 
  • /admin/view/template/module/s_youtube.tpl và thêm một "position".
- Thêm đoạn code sau:
<?php if ($module['position'] == 'content_middle') { ?>
<option value="content_middle" selected="selected"><?php echo $text_content_middle; ?></option>
<?php } else { ?>
<option value="content_middle"><?php echo $text_content_middle; ?></option>
<?php } ?>

vào dưới dòng:
<td class="left"><select name="s_youtube_module[<?php echo $module_row; ?>][position]">

- Thêm dòng:
html += '      <option value="content_middle"><?php echo $text_content_middle; ?></option>';

vào sau dòng:
html += '      <option value="content_bottom"><?php echo $text_content_bottom; ?></option>';

  • Thứ ba, bạn cần phải sửa tập tin controller của module trong /admin/controller/module/ s_youtube.php và thêm một dòng mới bất cứ nơi nào xung quanh như 35.
Thêm dòng:
$this->data['text_content_middle'] = $this->language->get('text_content_middle');

vào sau dòng:
$this->data['text_content_bottom'] = $this->language->get('text_content_bottom');

Bây giờ các bạn sẽ nhìn thấy vị trí mới trong phần cài đặt module của bạn. Ngoài ra các
 bạn cần chắc chắn rằng layout của module được thiết lập là "Home".

2. Thêm position vào theme của bạn
  • Trước tiên, các bạn phải thêm vị trí các mảng nằm trong
  •  /catalog/controller/common/home.php
Thêm dòng:
'common/content_middle',

vào sau dòng:
'common/content_bottom',

  • Thứ hai, các bạn cần phải tạo ra các tập tin PHP tương ứng trong 
  • /catalog/controller/common/ (ví dụ: "content_middle.php"). Thêm đoạn
  •  code sau, chú ý đến các dòng 2, 50, 79, 80, và 82) sẽ cần để phản ánh position của bạn:
  • <?php
    class ControllerCommonHomeOne extends Controller {
        public function index() {
            $this->load->model('design/layout');
            $this->load->model('catalog/category');
            $this->load->model('catalog/product');
            $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'] == 'home_one' && $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;
                }
            }
     
            if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/common/home_one.tpl')) {
                $this->template = $this->config->get('config_template') . '/template/common/home_one.tpl';
            } else {
                $this->template = 'default/template/common/home_one.tpl';
            }
     
            $this->render();
        }
    }
    ?>

  • Thứ ba, tạo ra các tập tin tương ứng trong 
  • /view/theme/your-theme/template/common/ (ví dụ: "content_middle.tpl" TPL) .
  •  Thêm đoạn code sau:
<?php foreach ($modules as $module) { ?>
<?php echo $module; ?>
<?php } ?>

  • Bây giờ, các bạn có thể gọi chèn position của bạn vào bất cứ nơi nào trong tập tin home.tpl theme của bạn bằng cách gọi
<?php echo $content_middle; ?>

Share on Google Plus

Công ty in Hà Vũ

in card visit, cung cấp card visit, nơi in card visit, công ty in card visit, card visit giá cạnh tranh, sản xuất card visit, in card visit nhanh giá cạnh tranh, card visit giá cạnh tranh giá rẻ
Công ty in ấn hà vũ
Dịch vụ in ấn HÀ VŨ hỗ trợ giao hàng tận nơi ở tại các khu vực:
Quận 1,2,3,4,5,6,7,8,9,10,11,12, Tân Phú - Tân Bình - Bình Chánh - Hóc Môn - Nhà Bè - Cần Giuộc - Vĩnh Lộc - Cần Giờ - Gò Vấp - Bình Thạnh - Bình Dương - Dĩ An - Thủ Đức - TP Hồ Chí Minh - An Giang - Bà Rịa - Vũng Tàu - Bắc Cạn - Bắc Giang - Bạc Liêu - Bắc Ninh - Bến Tre - Bình Định - Bình Dương - Bình Phước - Bình Thuận - Cà Mau - Cần Thơ - Cao Bằng - Đà Nẵng - Đắc Lắc - Đắk Nông - Điện Biên - Đồng Nai - Đồng Tháp - Gia Lai - Hà Giang - Hà Nam - Hà Nội - Hà Tĩnh - Hải Dương - Hải Phòng - Hậu Giang - Hòa Bình - Hưng Yên - Khánh Hòa - Kiên Giang - Kon Tum - Lai Châu - Lâm Đồng - Lạng Sơn - Lào Cai - Long An - Nam Định - Nghệ An - Ninh Bình - Ninh Thuận - Phú Thọ - Phú Yên - Quảng Bình - Quảng Nam - Quảng Ngãi - Quảng Ninh - Quảng Trị - Sóc Trăng - Sơn La - Tây Ninh - Thái Bình - Thái Nguyên - Thanh Hoá - Thừa Thiên - Huế - Tiền Giang - Trà Vinh - Tuyên Quang - Vĩnh Long - Vĩnh Phúc - Yên Bái - Bà Rịa - Bảo Lộc - Biên Hòa - Buôn Ma Thuột - Cam Ranh - Cao Lãnh - Cẩm Phả - Châu Đốc - Đà Lạt - Điện Biên Phủ - Đông Hà - Đồng Hới - Hạ Long - Hội An - Huế - Long Xuyên - Móng Cái - Mỹ Tho - Nha Trang - Phan Rang - Tháp Chàm - Phan Thiết - Phủ Lý - Pleiku - Quy Nhơn - Rạch Giá - Sa Đéc - Tam Kỳ - Tân An - Thanh Hóa - Thủ Dầu Một - Tuy Hòa - Uông Bí - Vị Thanh - Việt Trì - Vinh - Vĩnh Yên - Vũng Tàu.
Với chất lượng dịch vụ in ấn nhanh, an toàn nhất thông qua các đối tác,cơ quan và tổ chức có uy tín nhất trong.