06.12.2019, 18:16
|
Профессор
|
|
Регистрация: 23.04.2010
Сообщений: 354
|
|
Победил я таки вывод опций в списке товаров. Добавил ещё вывод необходимых атрибутов (характеристик). С ними проще было. Решение заслуживает отдельной статьи, а времени как обычно нет.
|
|
09.12.2019, 17:44
|
Профессор
|
|
Регистрация: 23.04.2010
Сообщений: 354
|
|
В Opencart иногда встречается небольшое представление в контроллерах.
Сейчас снова попалось:
$children_data[] = array(
'name' => $child['name'] . ($this->config->get('config_product_count') ? ' (' . $this->model_catalog_product->getTotalProducts($filter_data) . ')' : ''),
'href' => $this->url->link('product/category', 'path=' . $category['category_id'] . '_' . $child['category_id'])
);
Меня например бесило, что количество товаров в детях категории прыгало на другую строчку. Особенно если количество равно нулю. Пришлось в контроллере в этом месте вставить ` `. По-хорошему надо переписать по человечески, но как обычно время поджимает, да и никто этого всё равно не оценит ))
|
|
09.12.2019, 22:09
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,990
|
|
Сообщение от Триви
|
По-хорошему надо переписать по человечески
|
Разработчикам движка и его фанатам в общем-то все равно по человечески или по зверски вы поступаете. А вот если вы захотите использовать некое расширение, темы и их шаблоны, вот тогда уже вы можете быть в пролете. Поэтому - есть css и шаблоны, а если необходимо, то можно и контроллеры и модели, но делать это надо через модификаторы.
|
|
10.12.2019, 17:07
|
Профессор
|
|
Регистрация: 23.04.2010
Сообщений: 354
|
|
Сообщение от laimas
|
если вы захотите использовать некое расширение, темы и их шаблоны, вот тогда уже вы можете быть в пролете. Поэтому - есть css и шаблоны, а если необходимо, то можно и контроллеры и модели, но делать это надо через модификаторы.
|
Вот. Модификаторы я вообще не трогал. А в контроллерах немного подшаманил. Ну и js пришлось тоже поправить и ещё написать один метод для добавления в корзину товаров из списка.
У меня такой вопрос. Мне нужно будет реализовать следующий функционал:
- Сделать список подарков. Я так понимаю, это просто товары, помещённые в раздел `Подарки`.
- Если сумма в корзине достигает определённого значения, то предлагать на выбор эти подарки.
Я полагаю, что такие модули уже давно кем-то написаны. А то я буду несколько месяцев его писать, а мне проект сдавать уже через месяц. Есть такой опыт? Не подскажешь(-те) какой модуль выбрать? И ещё.. сторонние модули не переписывают штатные контроллеры и модели? Ну и в js желательно чтобы тоже не лезли, а подключали свой.
|
|
10.12.2019, 18:12
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,990
|
|
Сообщение от Триви
|
Модификаторы я вообще не трогал. А в контроллерах немного подшаманил.
сторонние модули не переписывают штатные контроллеры и модели? Ну и в js желательно чтобы тоже не лезли, а подключали свой.
|
Не модификаторы "трогают", их могут обновлять авторы, это модификаторы модифицируют исходники. То есть, чтобы что-то расширить или при добавлении модуля изменить поведение в какой либо базовой модели/контроллера, используют не измененный базовый исходный код, а его измененный модификатором код, который будет кеширован и использоваться. А базовый остается не тронутым и не работать.
Если вы читали о модификаторах, значит должны знать, что можно найти строку кода в исходнике, заменить ее другим кодом, который и будет выполняться. А можно указать заменить строки после найденной, вставить после найденной.
Допустим вы заменили какую либо строку непосредственно в исходнике. Затем вы установили некое расширение, которое при этом будет модифицировать в том числе и код исходника, который вы изменили, и как раз касающийся строки которую вы изменили. Если требуется замена, то в зависимости от ситуации в лучшем случае будет отказ и расширение не добавиться, в худшем случае добавится и будут ошибки. Ну а если поиск будет до измененной строки с заменой после нее, то все ваши изменения будут вырезаны из исходника и не будут работать, а значит гарантированы ошибки уже вами заложенные.
И это касается всего и js в том числе.
Сообщение от Триви
|
Я так понимаю, это просто товары, помещённые в раздел `Подарки`.
|
Среди базовых я такого не знаю, есть бонусы и прочая хрень, а о подарках сказать ничего не могу. Я вообще не фанат каких либо CMS, заниматься ими на постоянной основе забросил давно, ибо рано или поздно появляется чувство, что начинаешь тупеть. Не всегда соглашаюсь на работу связанную с ними. Сейчас как раз тот случай с opencart, когда делаю это, и в нем как раз ситуация, когда после очередного обновления добавления, автор его допустил ошибки, и вылазят баги в разных местах.
Здесь же, с форума, выполнял заказ, когда заказчик не понимая назначения этой CMS взял ее для своего сайта, а она даже на 10% и то не подходит под его задачи. Вот в этом случае, дешевле для него было бы, это заблокировать весь ненужный хлам opencart, переписав начисто код двух контроллеров и шаблонов, ну и немного моделей, и новый js, чем разрабатывать стратегию и писать новый модуль, а им то нужно еще и из админки управлять. Но у него специфическая задача и ему никогда и не потребуется добавлять что-то новое, так что ничего не слетит у него. Так что тут уж не мне судить, что будет дальше у вас, вам виднее.
Последний раз редактировалось laimas, 10.12.2019 в 19:36.
|
|
13.12.2019, 20:16
|
Профессор
|
|
Регистрация: 23.04.2010
Сообщений: 354
|
|
Сообщение от laimas
|
Если вы читали о модификаторах, значит должны знать, что можно найти строку кода в исходнике, заменить ее другим кодом, который и будет выполняться. А можно указать заменить строки после найденной, вставить после найденной.
Допустим вы заменили какую либо строку непосредственно в исходнике. Затем вы установили некое расширение, которое при этом будет модифицировать в том числе и код исходника, который вы изменили, и как раз касающийся строки которую вы изменили. Если требуется замена, то в зависимости от ситуации в лучшем случае будет отказ и расширение не добавиться, в худшем случае добавится и будут ошибки. Ну а если поиск будет до измененной строки с заменой после нее, то все ваши изменения будут вырезаны из исходника и не будут работать, а значит гарантированы ошибки уже вами заложенные.
И это касается всего и js в том числе.
|
Потом обязательно разберусь с этим. Сейчас я просто правлю исходники - времени нет нифига. Я имел ввиду не модификаторы не трогал, а модели. Перепутал. Я немного изменил один контроллер. Вернуть назад не проблема и реализовать потом через модификаторы. Что же касается js и css за пределами папки с темой, тут я достаточно под себя поправил. Веселье начнётся, когда я стану с подарками работать. Я нашёл такой модуль, но он под 2.x
Свяжусь с автором, попрошу поправить под третью версию. По-другому никак. Опыта написания модулей под оупенкарт, как вы понимаете, у мня нет.
|
|
13.12.2019, 20:22
|
Профессор
|
|
Регистрация: 23.04.2010
Сообщений: 354
|
|
Снова в движке косяк.
В пустой дискрипшн категории добавляется `<p><br></p>`.
Не знаю какой в этом тайный эротический смысл.
Пришлось в шаблоне прописать:
{% if description and description != "<p><br></p>" %}
<div class="col-sm-10">{{ description }}</div>
{% endif %}</div>
Хотя так и чешутся руки сделать в php данную проверку.
|
|
14.12.2019, 02:39
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,990
|
|
Сообщение от Триви
|
Что же касается js и css за пределами папки с темой, тут я достаточно под себя поправил.
|
Нет, подключаемые файлы никто и не станет править через модификатор. Но с ними то проще, подключайте еще и свои.
Последний раз редактировалось laimas, 14.12.2019 в 03:12.
|
|
16.12.2019, 18:55
|
Профессор
|
|
Регистрация: 23.04.2010
Сообщений: 354
|
|
Для редактирования текста Opencart использует редактор Summernote.
Хотел немножко стили под себя подправить, иду сюда admin/view/javascript/summernote/summernote.css
Открываю стили, а они сборщиком минифицированы.
Вот на хрена так спрашивается делать, блин?
|
|
16.12.2019, 19:29
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,990
|
|
Сообщение от Триви
|
Вот на хрена так спрашивается делать, блин?
|
Это правильный подход убирать мусор из фйлов, на этом выигрывают приличные размеры. А в CSS вся "мумификация", это удаление лишних пробелов, табуляции и прочее. Восстановить его удобный вид не проблема.
|
|
|
|