Дополнительное поле описание категории

Люблю цитаты…..

OpenCart это бесплатная и современная платформа для создания индивидуального интернет — магазина. OpenCart построен по принципу MVC и может быть установлен на любом веб-сервере с поддержкой PHP и MySQL . Cтруктура OpenCart очень простая. На базе OpenCart можно создать интернет-магазина любой сложности.  http://opencart-russia.ru/

Ну а мы начнем допиливать систему.

Задача: добавить дополнительное описание категории (ну или простое поле управляемое с админки), основное описание как и раньше сверху + дополнительное описание под вложеными категориями.

В файле catalog\controller\product\category.php после строки

$this->data['description'] = html_entity_decode($category_info['description'], ENT_QUOTES, 'UTF-8');

добавляем:

$this->data['description1'] = html_entity_decode($category_info['description1'], ENT_QUOTES, 'UTF-8');

в файле вида шаблона catalog\view\theme\YOURTHEM\template\product\category.tpl в нужном месте добавил:

<?php if ($description1) { ?>
	<div style="margin-bottom: 15px;"><?php echo $description1; ?></div>
<?php } ?>

добавиляем в БД в таблице oc_category_description дополнительное поле description1

теперь дополняем админку

файл admin\view\template\catalog\category_form.tpl

добавляем вывод нашего поля

<tr>
  <td><?php echo $entry_description; ?></td>
  <td><textarea name="category_description[<?php echo $language['language_id']; ?>][description1]"  id="description1<?php echo $language['language_id']; ?>"><?php echo isset($category_description[$language['language_id']]) ? $category_description[$language['language_id']]['description1'] : ''; ?></textarea></td>
</tr>

маленький кусочек кода для визуального эдитора

CKEDITOR.replace('description1<?php echo $language['language_id']; ?>', {
	language: '<?php echo $lang; ?>',
	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; ?>'
});

файл admin\model\catalog\category.php

13 строка

$this->db->query("INSERT INTO " . DB_PREFIX . "category_description (category_id, language_id, name, meta_keywords, meta_description, description, title, h1) VALUES ('" . (int)$category_id . "', '" . (int)$language_id . "', '" . $this->db->escape($value['name']) . "', '" . $this->db->escape($value['meta_keywords']) . "', '" . $this->db->escape($value['meta_description']) . "', '" . $this->db->escape($value['description']) . "', '" . $this->db->escape($value['title']) . "', '" . $this->db->escape($value['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']) . "', description1 = '" . $this->db->escape($value['description1']) . "', seo_title = '" . $this->db->escape($value['seo_title']) . "', seo_h1 = '" . $this->db->escape($value['seo_h1']) . "'");

и 67 строка

$this->db->query("INSERT INTO " . DB_PREFIX . "category_description (category_id, language_id, name, meta_keywords, meta_description, description, title, h1) VALUES ('" . (int)$category_id . "', '" . (int)$language_id . "', '" . $this->db->escape($value['name']) . "', '" . $this->db->escape($value['meta_keywords']) . "', '" . $this->db->escape($value['meta_description']) . "', '" . $this->db->escape($value['description']) . "', '" . $this->db->escape($value['title']) . "', '" . $this->db->escape($value['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']) . "', description1 = '" . $this->db->escape($value['description1']) . "', seo_title = '" . $this->db->escape($value['seo_title']) . "', seo_h1 = '" . $this->db->escape($value['seo_h1']) . "'");

ну и  строка 238 в foreach ($query->rows as $result) {

'description1' => $result['description1'],

Пи.Си. Номера строк у вас могут отличаться.

guest
2 Комментарий
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
Надежда
Надежда
1 год назад

Здравствуйте. По Вашей инструкции сделала на тестовом сайте дополнительное описание в категориях. Все работает. Но в журнале ошибок появились записи типа Undefined index: description1 in /var/www/ninasv/data/www/oc23.bestideas.ru/system/storage/modification/catalog/controller/product/category.php on line 230

В этой строке как раз добавляется дополнительное описание description1
Где и что надо добавить, чтобы ошибок не было? Заранее благодарна за ответ.