-
Публікації
2 247 -
З нами
-
Відвідування
Тип публікації
Профілі
Форум
Маркетплейс
Статті
FAQ
Наші новини
Магазин
Блоги
module__dplus_manager
Повідомлення, опубліковані користувачем Baco
-
-
Прошу прощение, поменять наоборот
-
Тогда Вам в самом файле .htaccess (без точки в конце) нужно поменять директивы:
с Options +SymLinksIfOwnerMatch на Options +FollowSymlinks
-
Напишите название Вашего хостинга !
-
В новой версии модификаторы - это укороченный вариант vQmod-а, тут он называется: OCMOD, имеет те же инструкции по XML файлу что и vQmod, кроме:
ignoreif, log
а именно:
Replace, Before, After, Regex, Offset, Limit, Index
В состав для аплоадера (админка) каталога в сжатом (.zip предположительно) виде, рекомендовано вносить 3-ри файла:- install.sql
- install.php
- install.xml
( Но можно и сам XML подгружать)
Только почему то стоит жосткая проверка на окончание загружаемых файлов:
if ( substr($this->request->files['file']['name'], -10) != '.ocmod.zip' && substr($this->request->files['file']['name'], -10) != '.vqmod.zip' && substr($this->request->files['file']['name'], -10) != '.ocmod.xml' && substr($this->request->files['file']['name'], -10) != '.vqmod.xml' ) { $json['error'] = $this->language->get('error_filetype'); }
Так что получается названия загружаемых файлов должны иметь одно из таких окончаний:
.ocmod.zip
.vqmod.zip
.ocmod.xml
.vqmod.xml
Тоесть структура должна быть примерно такого вида:
upload_mod_name //Каталог -->install.sql //Файл запросов к базе (на забыть проверить окончание строки на [;] -->install.php //Скрипт выполнения -->install.xml //Файл с инструкциями для модификации
Сам же пример XML файла должен выглядеть примерно так:
<?xml version="1.0" encoding="utf-8"?> <modification> <name>Modification Default</name> <version>1.0</version> <author>OpenCart Ltd</author> <link>http://www.opencart.com</link> <file path="catalog/controller/common/home.php"> <operation> <search><![CDATA[ $data['column_left'] = $this->load->controller('common/column_left'); ]]></search> <add position="replace"><![CDATA[ test123 ]]></add> </operation> </file> </modification>
Так же есть возможность использовать для одинаковых инструкций при модификации нескольких файлов, делать их декларирование в одной строке:
<file path="system/{engine,library}/{action,loader,config,language}*.php">
Более подробно по синтаксису описано тут...
P.S. Прикрепил к загрузке нового vQmod-а для 2.0
- 2
-
-
попробуйте точку заменить нижним подчеркиванием и в базе подправьте и соотв. почистите всё в папке кеш, главное что бы оригинальные названия были адекватными...
-
смотрите, проходит ли обработку строка перед внесением данных в базу через "htmlspecialchars"...
-
Названия фото, каталогов и любых файлов, содержащих кириллицу, пробелы и прочие спецсимволы, кроме цифробуквенных (и несколько допустимых символов) названий на латыни приводит к тому, что при переносе по фтп протоколу они "крякозябрятся", что приводит к невозможности считать менеджером названия и соответственно отобразить в админке.
Выход:
1. Сделайте архив на сервере 1 (из которго переносите рисунки) каталога image и распакуйте в точности на сервере 2
2. Проверьте и исправьте все названия, которые не соответствуют цифробуквенному набору в названиях файлов на латыни.
-
<!-- *********************************************************************************** --> <!-- *** Part of OpenShop project: http://OpenShop.org.ua (c) MaxD *** --> <!-- *********************************************************************************** --> <!-- Redistribution in any form without written permission is prohibited. --> <modification> <id><![CDATA[Executes PHP code included into info pages, text blocks, products and categories descriptions]]></id> <version><![CDATA[1.7]]></version> <vqmver><![CDATA[]]></vqmver> <author><![CDATA[MaxD http://OpenShop.org.ua]]></author> <file name="catalog/view/theme/*/template/information/information.tpl"> <operation> <search position="replace"><![CDATA[ echo $description ]]></search> <add><![CDATA[ eval('?>'.$description.'<?php ') ]]></add> </operation> </file> <file name="catalog/view/theme/*/template/product/product.tpl"> <operation> <search position="replace"><![CDATA[ echo $description ]]></search> <add><![CDATA[ eval('?>'.$description.'<?php ') ]]></add> </operation> </file> <file name="catalog/view/theme/*/template/product/category.tpl"> <operation> <search position="replace"><![CDATA[ echo $description ]]></search> <add><![CDATA[ eval('?>'.$description.'<?php ') ]]></add> </operation> </file> <file name="catalog/view/theme/*/template/module/welcome.tpl"> <operation> <search position="replace"><![CDATA[ echo $message ]]></search> <add><![CDATA[ eval('?>'.$message.'<?php ') ]]></add> </operation> </file> </modification>
Или же тут выкачать...
-
Извиняюсь, не так понял код... есть ли ещё мысли про адаптацию под 1.5.4.1?
Так а что, не работает то что процитировав - поправил ? на скорую руку проверил у себя, выводит норм...
-
Логика привязки под конкретный тип опций должна быть своя, вот тут общая конструкция скрипта, адаптировать же по своему усмотрению.
-
А я что сделал по вашему ?
-
есть модуль похожих товаров, который выдаёт похожие товары по тегам, он абсолютно рабочий, ноработает на версиях не выше 1.5.1.3, нужно адаптировать под 1.5.4.1
Кусок кода совсем не большой, поэтому привожу тут:
<modification> <id>Automatic Relate</id> <version>1.0.1</version> <vqmver>2.1</vqmver> <author>Palcet - =^_^=.ru && Baco modificated</author> <file name="catalog/model/catalog/product.php"> <operation> <search position="after"> <![CDATA[ $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "product_related pr LEFT JOIN " . DB_PREFIX . "product p ON (pr.related_id = p.product_id) LEFT JOIN " . DB_PREFIX . "product_to_store p2s ON (p.product_id = p2s.product_id) WHERE pr.product_id = '" . (int)$product_id . "' AND p.status = '1' AND p.date_available <= NOW() AND p2s.store_id = '" . (int)$this->config->get('config_store_id') . "'"); ]]> </search> <add> <![CDATA[ if($query->num_rows==0) { $sql=" select *,p.product_id as related_id FROM " . DB_PREFIX . "product p LEFT JOIN " . DB_PREFIX . "product_to_store p2s ON ( p.product_id = p2s.product_id ) WHERE p.product_id IN ( SELECT product_id FROM " . DB_PREFIX . "product_description WHERE tag IN ( SELECT tag FROM " . DB_PREFIX . "product_description WHERE product_id=".(int)$product_id.")) AND p.status = '1' AND p.date_available <= NOW() AND p2s.store_id = '" . (int)$this->config->get('config_store_id') . "' limit 100"; $query = $this->db->query($sql); } ]]> </add> </operation> </file> </modification>
Вроде как то так...
-
-
Вы конечно извините, но к чему собственно хотели применить в этой строке стиль ?
if ($category['category_id'] == '1038') {
echo 'style="color:red;"';
}
?>Вам бы почитать может сначала основы, потом с вопросами такими на форум ?!!
-
-
Вижу, что все супер :) Непонятно только чем тут bootstrap помешает, если это полностью свой тег options. Зачем column-sm-6?
Я жуть как хочу увидеть реальный пример вреда для унификации из-за bootstrap. Это же творческая задача! Если кто-то придумает хотя бы гипотетический пример, то отпишите, пожалуйста. Я придумал два, но слабенькие.
Та я так предположил просто, что сегодня я использую класс для селектора option а завтра под 2.0 надо уже будет как то выкручиваться... но это не аргумент во вред или пользу bootstrap и вообще, это не моя кухня, я по коду больше...
-
Если я правильно понял, то в этом примере для передачи массива name="option" вы используете селектор родительского класса. Зачем? Почему? Это ошибка в логике скрипта, я считаю. Уж если хочется проверить родителя, то это должен быть .product-info, который по сути был зарезервирован для карточки товара. Если bootstrap помешает допускать эту ошибку, то это только в плюс. Только для 2.0 это уже #product т.е. это уже явное резервирование.
не, я бутстрап пока не юзаю (просто в будущее глянул), по поводу скриптуса, то тут можно глянуть логику что и зачем я так беру..
-
Ну вставлю свои пару копеек, так как частенько использую "вытяжки" данных при "пост" передачах в аяксе именно по селекторам... то ранее хоть понимание было какое то типа:
data: $('.options input[type=\'hidden\'], .options #option-value-'+product_option_value_id),
а теперь получается, что как то в голове записывать данные типа:
data: $('.column-sm-6 input[type=\'hidden\'], .column-sm-6 #option-value-'+product_option_value_id),
но это такое, никто ведь id (#) не отменял... главное что бы экология в самом коде была, а шаблоны верстать думаю что и без бутстрапа можно, ведь тот факт, что он в дефолте прописан, совсем не значит, что так и должно быть в проектировании ИМ...
-
-
То есть Вам нужно на странице категорий, все товары разделить по блокам с названиями брендов ?
-
Если есть тимвьювер, то напишите в ЛС, посмотрим на проблему вместе...
-
Вам как, расписать всё или сделать ? Если первое - напишите с чем трудности в коде, если второе - в ЛС.
-
Первое и самое основное - создать в файле стилей нужного блока аттрибуты и прикрутить например к какому то id (#), далее - создать контроллер в каталоге catalog\controller\common\column_below_content.php следующего содержания:
<?php class ControllerCommonColumnBelowContent extends Controller { protected function index() { $this->load->model('design/layout'); $this->load->model('catalog/category'); $this->load->model('catalog/product'); $this->load->model('catalog/information'); if (isset($this->request->get['route'])) { $route = (string)$this->request->get['route']; } else { $route = 'common/home'; } $layout_id = 0; if ($route == 'product/category' && isset($this->request->get['path'])) { $path = explode('_', (string)$this->request->get['path']); $layout_id = $this->model_catalog_category->getCategoryLayoutId(end($path)); } if ($route == 'product/product' && isset($this->request->get['product_id'])) { $layout_id = $this->model_catalog_product->getProductLayoutId($this->request->get['product_id']); } if ($route == 'information/information' && isset($this->request->get['information_id'])) { $layout_id = $this->model_catalog_information->getInformationLayoutId($this->request->get['information_id']); } if (!$layout_id) { $layout_id = $this->model_design_layout->getLayout($route); } if (!$layout_id) { $layout_id = $this->config->get('config_layout_id'); } $module_data = array(); $this->load->model('setting/extension'); $extensions = $this->model_setting_extension->getExtensions('module'); foreach ($extensions as $extension) { $modules = $this->config->get($extension['code'] . '_module'); if ($modules) { foreach ($modules as $module) { if ($module['layout_id'] == $layout_id && $module['position'] == 'footer_bottom' && $module['status']) { $module_data[] = array( 'code' => $extension['code'], 'setting' => $module, 'sort_order' => $module['sort_order'] ); } } } } $sort_order = array(); foreach ($module_data as $key => $value) { $sort_order[$key] = $value['sort_order']; } array_multisort($sort_order, SORT_ASC, $module_data); $this->data['modules'] = array(); foreach ($module_data as $module) { $module = $this->getChild('module/' . $module['code'], $module['setting']); if ($module) { $this->data['modules'][] = $module; } } if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/common/column_below_content.tpl')) { $this->template = $this->config->get('config_template') . '/template/common/column_below_content.tpl'; } else { $this->template = 'default/template/common/column_below_content.tpl'; } $this->render(); } } ?>
Сам же column_below_content.tpl может содержать приметно такой вывод:
<?php if ($modules) { ?> <div id="column_below_content"> <?php foreach ($modules as $module) { ?> <?php echo $module; ?> <?php } ?> </div> <?php } ?>
ну и на последок - добавить в админке соотв. схему (layout_id) и всё должно завестись с пол оборота...
[Решено] Не отображает изображения товаров в админке
в Встановлення, оновлення, налаштування
Опубліковано:
Странно, спервые такое вижу, перепроверил все контроллеры, выхлоп всюду правильный:
По при переходе по урлу, путь получается такого плана:
http://domen.ru/admin/http:/domen.ru/image/cache/data/muzhskoyniz/dzhinsy_absolut_joy_2001233-40x40.jpg
Откуда берётся HTTP_SERVER я не могу найти, и так по всем контроллерам, будь то опции, товары или категории, сперва грешил на шаблонизатор в списке товаров для фильтрации, оказалось - зря.
Кто ранее встречал такую проблему (ocStore 1.5.5.1.2) просьба отписать, в какую сторону копать, а то самому интересно, где ж оно добавляет...
p.s. Файлы (админку и каталог систем) сравнивал через Araxis Merge - разница фактически не существенна, model_tool_image - так же родная...