megrel
Користувачі-
Публікації
189 -
З нами
-
Відвідування
Тип публікації
Профілі
Форум
Маркетплейс
Статті
FAQ
Наші новини
Магазин
Блоги
module__dplus_manager
Усі публікації користувача megrel
-
Последнее время не получается импортировать БД на на timeweb, ни на beget. Выдает такую ошибку ALTER TABLE `product_description` ADD PRIMARY KEY (`product_id`,`language_id`), ADD KEY `name` (`name`), ADD KEY `beget_auto_idx_1` (`language_id`), ADD KEY `beget_auto_idx_2` (`name`), ADD FULLTEXT KEY `description` (`description`), ADD FULLTEXT KEY `tag` (`tag`), ADD FULLTEXT KEY `description_2` (`description`); Ответ MySQL: dot.gif #1214 - The used table type doesn't support FULLTEXT indexes Раньше делал все тоже самое, экспортировал из одной, и импортировал в другую. Может ли это быть связано с обновлением phpmyadmin? И что делать в таком случае
-
Еще мысль, шаблон для схемы. Тоже думаю полезная штука будет)
-
Очень полезный модуль. Автору спасибо. Но не хватает возможности выбрать шаблон для товаров определенного бренда, было бы круто.
-
Да, действительно дороговато, максимум 300р. Может и покупать начнут
-
Нужно, чтобы в админке на странице категорий ниже 1-го уровня были 2 пункта с галочкой: 1. Не показывать в модуле категорий 2. Не показывать в списке подкатегорий Vqmod решение было бы вобще идеально) OcStore 1.5.4.1
-
Интересный модуль. Купил бы точно, если бы была возможность выводить модуль не по схемам, а по категориям
- 28 відповідей
-
- рекомендуемые
- клон рекомендуемых
- (і ще %d)
-
То есть, не выводит в админке из за того, что неправильно написал в vqmod вывод этих строк: <operation error="skip"> <search position="after"><![CDATA[ <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> ]]></search> <add><![CDATA[ <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> ]]></add> </operation> Я извиняюсь, может не понимаю чего-то элементарного, но на данном этапе своих знаний не в силах решить эту проблему сам (
-
Здравствуйте. На одном из сайтов сделал два описания для категорий. Может кому пригодится данное решение. Движок - 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
-
Как раз на днях читал на твоем сайте про то, как сделать наоборот, для категорий, убрать пару строк из seo_url, seo_pro. Может не надо их переписывать, а добавить несколько строчек, я просто не знаю. Или много чего надо добавлять?
-
Искал решение для того, чтобы сделать структуру статей иерархической. Есть пара модулей на офф.сайте, но повезло наткнуться на данное решение через vqmod. Все бы хорошо. То, что надо. Но один маленький недостаток, который надеюсь поможет кто нибудь решить. В url отсутствует иерархия, т.е. выводит просто - site.ru/subinformation. В идеале было бы классно так - site.ru/information/subinformation. Вот vqmod: <modification> <id>Information Pages Hierarchy</id> <version>1.0.0</version> <vqmver>2.1</vqmver> <author><![CDATA[<a href="http://teslitsky.info">Dmitry Teslitsky</a>]]></author> <file name="admin/language/russian/catalog/information.php"> <operation> <search position="before"><![CDATA[$_['entry_layout']]]></search> <add><![CDATA[$_['entry_position_header'] = 'Отображать в хедере:';$_['entry_parent'] = 'Родительская статья:';]]></add> </operation> </file> <file name="admin/language/english/catalog/information.php"> <operation> <search position="before"><![CDATA[$_['entry_layout']]]></search> <add><![CDATA[$_['entry_position_header'] = 'Show in header:';$_['entry_parent'] = 'Parent page:';]]></add> </operation> </file> <file name="admin/view/template/catalog/information_form.tpl"> <operation> <search position="before"><![CDATA[<td><?php echo $entry_keyword; ?></td>]]></search> <add><![CDATA[ <td><?php echo $entry_parent; ?></td> <td> <select name="parent"> <option></option> <?php foreach ($parents as $parent): ?> <?php if ((int) $information_id === (int) $parent['id']) continue; ?> <?php if ((int) $parent_id === (int) $parent['id']) : ?> <option value="<?php echo $parent['id']; ?>" selected="selected"><?php echo $parent['name']; ?></option> <?php else : ?> <option value="<?php echo $parent['id']; ?>"><?php echo $parent['name']; ?></option> <?php endif; ?> <?php endforeach; ?> </select> </td></tr><tr> ]]></add> </operation> <operation> <search position="before"><![CDATA[<td><?php echo $entry_bottom; ?></td>]]></search> <add><![CDATA[ <td><?php echo $entry_position_header; ?></td> <td><?php if ($position_header) { ?> <input type="checkbox" name="position_header" value="1" checked="checked" /> <?php } else { ?> <input type="checkbox" name="position_header" value="1" /> <?php } ?></td></tr><tr> ]]></add> </operation> </file> <file name="admin/controller/catalog/information.php"> <operation> <search position="after"><![CDATA[$this->data['entry_layout'] = $this->language->get('entry_layout');]]></search> <add><![CDATA[$this->data['entry_position_header'] = $this->language->get('entry_position_header');$this->data['entry_parent'] = $this->language->get('entry_parent');]]></add> </operation> <operation> <search position="after"><![CDATA[$this->data['action'] = $this->url->link('catalog/information/update', 'token=' . $this->session->data['token'] . '&information_id=' . $this->request->get['information_id'] . $url, 'SSL');]]></search> <add><![CDATA[$this->data['information_id'] = (int) $this->request->get['information_id'];]]></add> </operation> <operation> <search position="before"><![CDATA[if (isset($this->request->post['bottom'])) {]]></search> <add><![CDATA[ if (isset($this->request->post['position_header'])) { $this->data['position_header'] = $this->request->post['position_header']; } elseif (!empty($information_info)) { $this->data['position_header'] = $information_info['position_header']; } else { $this->data['position_header'] = 0; } if (isset($this->request->post['parent'])) { $this->data['parent_id'] = $this->request->post['parent']; } elseif (!empty($information_info)) { $this->data['parent_id'] = $information_info['parent_id']; } else { $this->data['parent_id'] = 0; } ]]></add> </operation> <operation> <search position="before"><![CDATA[$this->data['layouts'] = $this->model_design_layout->getLayouts();]]></search> <add><![CDATA[ $parents = array(); $informations = $this->model_catalog_information->getInformations(); foreach ($informations as $information) { $parents[] = array( 'id' => (int) $information['information_id'], 'name' => $information['title'], 'parent_id' => $information['parent_id'], ); } $this->data['parents'] = $parents; ]]></add> </operation> </file> <file name="admin/model/catalog/information.php"> <operation> <search position="replace"><![CDATA[sort_order = '" . (int)$data['sort_order'] . "']]></search> <add><![CDATA[sort_order = '" . (int)$data['sort_order'] . "', parent_id = '" . (int)$data['parent'] . "', position_header = '" . (isset($data['position_header']) ? (int)$data['position_header'] : 0) . "']]></add> </operation> </file> <file name="catalog/model/catalog/information.php"> <operation> <search position="before"><![CDATA[public function getInformation($information_id)]]></search> <add><![CDATA[ public function getInfoTree($information_id) { $informations = $this->getInformations(); $nodes = array(); foreach ($informations as $information) { $nodes[(int)$information['information_id']] = $information; } $result = array(); do { $result[] = $nodes[$information_id]; $information_id = $nodes[$information_id]['parent_id']; } while ($information_id); return array_reverse($result); } ]]></add> </operation> </file> <file name="catalog/controller/information/information.php"> <operation> <search position="before" offset="2"><![CDATA['text' => $information_info['title']]]></search> <add><![CDATA[ $information_tree = $this->model_catalog_information->getInfoTree($information_id); foreach ($information_tree as $node) { ]]></add> </operation> <operation> <search position="replace"><![CDATA[$this->url->link('information/information', 'information_id=' . $information_id)]]></search> <add><![CDATA[$this->url->link('information/information', 'information_id=' . $node['information_id'])]]></add> </operation> <operation> <search position="after" offset="4"><![CDATA['text' => $information_info['title']]]></search> <add><![CDATA[}]]></add> </operation> <operation> <search position="replace"><![CDATA['text' => $information_info['title']]]></search> <add><![CDATA['text' => $node['title']]]></add> </operation> </file> </modification>