Люблю цитаты…..
OpenCart это бесплатная и современная платформа для создания индивидуального интернет — магазина. OpenCart построен по принципу MVC и может быть установлен на любом веб-сервере с поддержкой PHP и MySQL . Cтруктура OpenCart очень простая. На базе OpenCart можно создать интернет-магазина любой сложности. https://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'],
Пи.Си. Номера строк у вас могут отличаться.
Здравствуйте. По Вашей инструкции сделала на тестовом сайте дополнительное описание в категориях. Все работает. Но в журнале ошибок появились записи типа Undefined index: description1 in /var/www/ninasv/data/www/oc23.bestideas.ru/system/storage/modification/catalog/controller/product/category.php on line 230
В этой строке как раз добавляется дополнительное описание description1
Где и что надо добавить, чтобы ошибок не было? Заранее благодарна за ответ.
Читаем внимательно….
добавиляем в БД в таблице oc_category_description дополнительное поле description1