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
Blogger Comment
Facebook Comment