Здравствуйте. На одном из сайтов сделал два описания для категорий. Может кому пригодится данное решение. Движок - Ocstore 1.5.4.1
Шаг 1. База данных. Создадим дополнительный столбец для таблицы "category_description"
Выполняем SQL запрос для нашей БД:
ALTER TABLE `category_description` ADD `description2` TEXT CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL AFTER `description`
Шаг 2. Правим файлы административной части
admin/controller/catalog/category.php
После:
$this->data['entry_description'] = $this->language->get('entry_description');
Добавить:
$this->data['entry_description2'] = $this->language->get('entry_description2');
admin/language/russian/catalog/category.php
После:
$_['entry_description'] = 'Описание:';
Добавляем:
$_['entry_description2'] = 'Описание нижнее:';
admin/model/catalog/category.php
Ищем на 13 и на 47 строчках:
$this->db->query("INSERT INTO " . DB_PREFIX . "category_description SET category_id = '" . (int)$category_id . "', language_id = '" . (int)$language_id . "', name = '" . $this->db->escape($value['name']) . "', meta_keyword = '" . $this->db->escape($value['meta_keyword']) . "', meta_description = '" . $this->db->escape($value['meta_description']) . "', description = '" . $this->db->escape($value['description']) . "', seo_title = '" . $this->db->escape($value['seo_title']) . "', seo_h1 = '" . $this->db->escape($value['seo_h1']) . "'");
Заменяем на:
$this->db->query("INSERT INTO " . DB_PREFIX . "category_description SET category_id = '" . (int)$category_id . "', language_id = '" . (int)$language_id . "', name = '" . $this->db->escape($value['name']) . "', meta_keyword = '" . $this->db->escape($value['meta_keyword']) . "', meta_description = '" . $this->db->escape($value['meta_description']) . "', description = '" . $this->db->escape($value['description']) . "', description2 = '" . $this->db->escape($value['description2']) . "', seo_title = '" . $this->db->escape($value['seo_title']) . "', seo_h1 = '" . $this->db->escape($value['seo_h1']) . "'");
Находим:
'description' => $result['description']
Заменяем на:
'description' => $result['description'],
'description2' => $result['description2']
admin/view/template/catalog/category_form.tpl
После:
<tr>
<td><?php echo $entry_description; ?></td>
<td><textarea name="category_description[<?php echo $language['language_id']; ?>][description]" id="description<?php echo $language['language_id']; ?>"><?php echo isset($category_description[$language['language_id']]) ? $category_description[$language['language_id']]['description'] : ''; ?></textarea></td>
</tr>
Вставляем:
<tr>
<td><?php echo $entry_description2; ?></td>
<td><textarea name="category_description[<?php echo $language['language_id']; ?>][description2]" id="description2<?php echo $language['language_id']; ?>"><?php echo isset($category_description[$language['language_id']]) ? $category_description[$language['language_id']]['description2'] : ''; ?></textarea></td>
</tr>
В конце файла находим:
script type="text/javascript"><!--
<?php foreach ($languages as $language) { ?>
CKEDITOR.replace('description<?php echo $language['language_id']; ?>', {
filebrowserBrowseUrl: 'index.php?route=common/filemanager&token=<?php echo $token; ?>',
filebrowserImageBrowseUrl: 'index.php?route=common/filemanager&token=<?php echo $token; ?>',
filebrowserFlashBrowseUrl: 'index.php?route=common/filemanager&token=<?php echo $token; ?>',
filebrowserUploadUrl: 'index.php?route=common/filemanager&token=<?php echo $token; ?>',
filebrowserImageUploadUrl: 'index.php?route=common/filemanager&token=<?php echo $token; ?>',
filebrowserFlashUploadUrl: 'index.php?route=common/filemanager&token=<?php echo $token; ?>'
});
<?php } ?>
//--></script>
И после добавляем:
script type="text/javascript"><!--
<?php foreach ($languages as $language) { ?>
CKEDITOR.replace('description2<?php echo $language['language_id']; ?>', {
filebrowserBrowseUrl: 'index.php?route=common/filemanager&token=<?php echo $token; ?>',
filebrowserImageBrowseUrl: 'index.php?route=common/filemanager&token=<?php echo $token; ?>',
filebrowserFlashBrowseUrl: 'index.php?route=common/filemanager&token=<?php echo $token; ?>',
filebrowserUploadUrl: 'index.php?route=common/filemanager&token=<?php echo $token; ?>',
filebrowserImageUploadUrl: 'index.php?route=common/filemanager&token=<?php echo $token; ?>',
filebrowserFlashUploadUrl: 'index.php?route=common/filemanager&token=<?php echo $token; ?>'
});
<?php } ?>
//--></script>
Шаг 3. Выводим все это в клиентскую часть
catalog/controller/product/category.php
После:
$this->data['description'] = html_entity_decode($category_info['description'], ENT_QUOTES, 'UTF-8');
Вставляем:
$this->data['description2'] = html_entity_decode($category_info['description2'], ENT_QUOTES, 'UTF-8');
Ну и наконец, выводим наше второе описание на страницу категории.
catalog/view/default/template/product/category.tpl
Перед:
<div class="buttons">
<div class="right"><a href="<?php echo $continue; ?>" class="button"><?php echo $button_continue; ?></a></div>
</div>
Вставляем:
<div class="category-info">
<?php if ($description2) { ?>
<?php echo $description2; ?>
<?php } ?>
</div>
У меня получилось вывести второе описание для категорий. Сделал vqmod для данного решения, но он почему-то не хочет работать.
Что не так в нем, может что упустил?
category-description-2.xml