Спасибо за идею!
Но вот у меня что то не получилось. Вот что сделал:
1. Выполнил завпрос в бд:
ALTER TABLE oc_information ADD COLUMN top INT(1) NOT NULL DEFAULT '0' AFTER bottom
2. Для админки:
admin/controller/catalog/information.php
Добавил:
$data['entry_top'] = $this->language->get('entry_top');
$data['help_top'] = $this->language->get('help_top');
if (isset($this->request->post['top'])) {
$data['top'] = $this->request->post['top'];
} elseif (!empty($information_info)) {
$data['top'] = $information_info['top'];
} else {
$data['top'] = 0;
}
Добавил перевод:
admin/language/ru-ru/catalog/information.php
$_['entry_top'] = 'Отображать сверху';
$_['help_top'] = 'Показывать в верхней части сайта (хеадер, шапка)';
admin/model/catalog/information.php
Строку
$this->db->query("INSERT INTO " . DB_PREFIX . "information SET sort_order = '" . (int)$data['sort_order'] . "', bottom = '" . (isset($data['bottom']) ? (int)$data['bottom'] : 0) . "', status = '" . (int)$data['status'] . "'");
Заменил на
$this->db->query("INSERT INTO " . DB_PREFIX . "information SET sort_order = '" . (int)$data['sort_order'] . "', bottom = '" . (isset($data['bottom']) ? (int)$data['bottom'] : 0) . "', top = '" . (isset($data['top']) ? (int)$data['top'] : 0) . "', status = '" . (int)$data['status'] . "'");
И эту строку
$this->db->query("UPDATE " . DB_PREFIX . "information SET sort_order = '" . (int)$data['sort_order'] . "', bottom = '" . (isset($data['bottom']) ? (int)$data['bottom'] : 0) . "', status = '" . (int)$data['status'] . "' WHERE information_id = '" . (int)$information_id . "'");
заменил на
$this->db->query("UPDATE " . DB_PREFIX . "information SET sort_order = '" . (int)$data['sort_order'] . "', bottom = '" . (isset($data['bottom']) ? (int)$data['bottom'] : 0) . "', top = '" . (isset($data['top']) ? (int)$data['top'] : 0) . "', status = '" . (int)$data['status'] . "' WHERE information_id = '" . (int)$information_id . "'");
admin/view/template/catalog/information_form.tpl
Добавил:
<div class="form-group">
<label class="col-sm-2 control-label" for="input-top"><span data-toggle="tooltip" title="<?php echo $help_top; ?>"><?php echo $entry_top; ?></span></label>
<div class="col-sm-10">
<div class="checkbox">
<label>
<?php if ($top) { ?>
<input type="checkbox" name="top" value="1" checked="checked" id="input-top" />
<?php } else { ?>
<input type="checkbox" name="top" value="1" id="input-top" />
<?php } ?>
</label>
</div>
</div>
</div>
3. Вывел на сайте
catalog/controller/common/header.php
Перед
// Menu
$this->load->model('catalog/category');
Добавил:
$this->load->model('catalog/information');
$data['informations'] = array();
foreach ($this->model_catalog_information->getInformations() as $result) {
if ($result['top']) {
$data['informations'][] = array(
'title' => $result['title'],
'href' => $this->url->link('information/information', 'information_id=' . $result['information_id'])
);
}
}
catalog/view/theme/ТЕМА/template/common/header.tpl
<ul class="list-unstyled list-inline">
<?php foreach ($informations as $information) { ?>
<li><a href="<?php echo $information['href']; ?>"><?php echo $information['title']; ?></a></li>
<?php } ?>
</ul>
И обновил кеш модификаторов
В итоге в админке на странице редактирования статей :
Notice: Undefined index: top in /admin/controller/catalog/information.php on line 422
На странице сайта:
Notice: Undefined index: top in system/storage/modification/catalog/controller/common/header.php on line 97
При сохранении статьи выдает 500 ошибку.
В чем я ошибся?