opencart 1.5 как добавить модуль в заголовок
пожалуйста, кто-нибудь скажет мне, как я могу разместить модули, такие как слайдер или баннер в заголовке или как мы можем определить дополнительные области для модулей.
8 ответов
Ну, я работаю над этим.
во-первых, вы должны добавить новую позицию в админке. Что означает, что вы должны изменить три файла и добавить несколько строк в каждой.
например, если вы хотите добавить слайд-шоу в заголовке, вы должны добавить новую позицию в
$this->data['text_header'] = $this->language->get('text_header'); // in admin/controller/slideshow.php
////////////////////////////////////////////////
$_['text_header'] = 'Header'; // in admin/language/slideshow.php
////////////////////////////////////////////////
<?php if ($module['position'] == 'header') { ?> // in admin/view/slideshow.tpl
<option value="header" selected="selected"><?php echo $text_header; ?></option>
<?php } else { ?>
<option value="header"><?php echo $text_header; ?></option>
<?php } ?>
затем новая позиция для слайд-шоу было определено. и вы можете выбрать его на странице администратора.
после этого, вы должны добавить эти коды в каталоге/вид/заголовок.tpl
<?php foreach ($modules as $module) { ?>
<?php echo $module; ?>
<?php } ?>
затем в каталоге / контроллере / заголовке.php, добавьте некоторые коды, такие как content_top.php делает: $layout_id = 1;
$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'] == '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;
}
}
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';
}
$this->render();
затем все сделали.
единственная проблема для этого кода-слайд-шоу не может отображаться как слайд-шоу, но статическое изображение или изображения.
желаю вам может решить и ответить мне. Мой пост вопрос : OpenCart developement: изменение позиции слайд-шоу
вы можете учиться у контроллера / common / column_right.в PHP
Проверьте положение модуля (строка 50), вы можете адаптировать его к "заголовку":
$module['position'] == 'column_right'
установите выход (строка 69), вы можете адаптировать его к чему-то вроде "header_mod" :
$this->data['modules']
вам нужно изменить модуль в admin, чтобы показать дополнительную позицию модуля.
Нет "заголовок " параметры положения модуля на странице администратора.
сделайте то, что написал Huawei Chen, а затем добавьте их в заголовок:
<script type="text/javascript" src="catalog/view/javascript/jquery/nivo-slider/jquery.nivo.slider.pack.js"></script>
<link rel="stylesheet" type="text/css" href="catalog/view/theme/default/stylesheet/slideshow.css" media="screen" />
и слайдер будет работать
вы также можете использовать расширение, которое помещает 2 позиции в хедере и футере. Он создает те же крючки, что и column_left
и content_top
, etc.
он работает с VQmod для opencart 1.5 x
вы должны знать, что Ваша новая должность-это новый ребенок.
file: catalog/controller/common/header.php
$this->children = array(
'module/language',
'module/currency',
'module/cart'
);
добавьте новую позицию, например:
$this->children = array(
'common/content_new',
'module/language',
'module/currency',
'module/cart'
);
теперь вы можете повторить свою новую позицию в заголовке.tpl
Я думаю, что это расширение сделает вашу жизнь супер просто. http://www.opencart.com/index.php?route=extension/extension/info&token=extension_id=14467
вы можете добавить неограниченное количество позиций в свой заголовок, добавить столбцы и изменить их ширину через admin
в отношении
Это руководство помогло мне:
http://www.mywork.com.au/blog/create-new-module-layout-position-opencart-1-5/
Я использовал версию 1.5.6.1 Opencart.
Я прочитал весь ваш ответ. Забудь обо всем. Очень легко вызвать любой модуль в раздел заголовка.
открыть
$this->data['YOUR_MODULE_NAME'] = $this->getChild('module/YOUR_MODULE_NAME');
Теперь Откройте .tpl
файл заголовка, который находится на
catalog/view/theme/YOUR_THEME/template/common/header.tpl
и эхо вашего модуля желания, когда вы хотите, например, как:
<?php echo $YOUR_MODULE_NAME;?>
вот именно. вы сделали.