Search the Community
Showing results for tags 'twig'.
-
привет форумчане. статья может быть полезна для начинающих разрабов и тех, кто недавно столкнулся с опенкартом штатный кэш опенкарта 1. ocmod обновляется в админке. меню слева - расширения - модификаторы. обновить можно следующим образом рекомендации: когда сайту плохо и вы получаете 404 можно сделать очистку всех модификаторов - нажав на желтую кнопку с ластиком, чтобы убедиться, что дело не в них в бд в таблице oc_modification колонка xml легко поддается поиску через интерфейс phpMyAdmin перед работой с сайтом желательно сохранить все модифицированный файлы - storage/modification 2. twig and sass cache (3.x) opencart и ocstore 3 ветки обзавелся twig шаблонизатором, который умеет кэшироваться настраивается это в админке. в левом меню пункт панель состояния рекомендации: отключить перед работой с сайтом. после завершения не забыть включить 3. opencart file/mem cache библиотека для разработчиков. которая используется так $this->cache->set('test','value'); $val = $this->cache->get('test'); содержимое кэша по умолчанию находится в system/storage/cache для файлового кэша очищается посредством удаления содержимого папки для мемкэша очищается вызовом пары команд в консоле. это легко гуглится в этот хранилище обычно кэшируется языки, валюты и меню сайта рекомендации: можно кэшировать любой статический контент сайта, например футер или блок преимуществ по возможности используйте мемкэш или редис, если вы используете файловый кэш - ssd и m.2 в помощь 4. image cache опенкарт создает кэш изображений под размеры указанные в настройках темы этот кэш находится в image/cache. чтобы очистить - удалите содержимое этой папки рекомендации: не избыточное разрешение, webp и отложенная загрузка изображений. ну и верный Cache-control для изображений от сервера 5. design/theme (3.x) этот инструмент кэширует представления(view) в бд находится в левом меню. дизайн - редактор шаблона на скрине ниже можно увидеть, что файл account/account закэширован изменение этого файла на сервере не даст ожидаемого результата рекомендации: желательно не использовать вовсе 6. внештатные дополнения для кэширования тут наши полномочия все. следуйте рекомендациям автора и читайте руководства к модулям рекомендации: чтобы сделать ваш сайт быстрым нужен индивидуальный подход. общие решения не дадут нужного эффекта. тут зеленыЙ прав клиентский кэш это кэш вашего браузера. заголовок ответа сервера Cache-control является инструкцией для браузера пример блока из конфига для nginx, который отдаст инструкцию браузеру к кэшированию js, css, jpeg на 72 часа location ~* \.(css|js|gif|jpeg|jpg|png)$ { expires 3d; access_log off; add_header Pragma public; add_header Cache-Control "public, max-age=259200"; add_header X-Asset "yes"; } этот кэш отключается следующим образом для google chrome: 1. нажатие хоткея CTRL + F5 приведет к перезагрузке страницы со сбросом кэша 2. отключаем кэширование браузера в инструментах разработчика. под спойлером поправляйте если где-то ошибаюсь
- 11 comments
-
- 8
-
Завантажити / Придбати розширення Debug by Symfony + Dump in Twig Отладка от symfony Думаю, многие из вас сталкивались с трудоемким процессом отладки данных или ошибок... Это расширение упрощает работу и делает вывод данных более читабельным! Чтобы принудительно загрузить библиотеку отладки с помощью Symfony, вы можете использовать $this->load->library('debug') Вы можете включить вывод ошибок и исключений с помощью Symfony в настройках расширения или в вашем собственном коде с помощью $this->debug->enable() Функции можно вызывать либо - dump() либо $this->debug->dump(). Добавлены новые функции: dd() - Dump and Die. td() - Throw Dump. Загрузите файл ocmod через установщик расширения, обновите модификации и очистите кеш! Для ОС версии **3.0.3.5** и выше, что-бы добавить функции - dd, td, dump, var_dump в Twig , необходимо скопировать содержимое папки storage в папку storage вашего сайта. Надеюсь процесс разработки стал для Вас более удобен, буду благодарен за donate! Автор BergStudio долучення 07.03.22 Категорія Модули Системные требования php5.6 или php7.2 Метод активации Без активации Ioncube Loader Нет ocStore 2.3.0.2.4 OpenCart.Pro, ocShop OcShop 2.0.3.х Звернення до сервера розробника Нет
-
Все привет , столкнулся с проблемой , на главной страници кнопка каталог работает( при переходи в подкатегории или на товар кнопка перестает работать ) множесто ошибок в консоле не могу понять где исправить данные ошибки так как они введут на кэш , я его очишал но не чего не поменялось ( папка min) вот >сайт< буду благодарен за подсказки или помощь!
-
Version 2.0.2
54 downloads
Отладка от symfony Думаю, многие из вас сталкивались с трудоемким процессом отладки данных или ошибок... Это расширение упрощает работу и делает вывод данных более читабельным! Чтобы принудительно загрузить библиотеку отладки с помощью Symfony, вы можете использовать $this->load->library('debug') Вы можете включить вывод ошибок и исключений с помощью Symfony в настройках расширения или в вашем собственном коде с помощью $this->debug->enable() Функции можно вызывать либо - dump() либо $this->debug->dump(). Добавлены новые функции: dd() - Dump and Die. td() - Throw Dump. Загрузите файл ocmod через установщик расширения, обновите модификации и очистите кеш! Для ОС версии **3.0.3.5** и выше, что-бы добавить функции - dd, td, dump, var_dump в Twig , необходимо скопировать содержимое папки storage в папку storage вашего сайта. Надеюсь процесс разработки стал для Вас более удобен, буду благодарен за donate!Free -
Debug by Symfony + Dump Twig Выслушаю Ваши пожелания и предложения! Так же буду признателен за Вашу помощь - тестировал не на всех версиях, кто ставил на какую и работает ли, отпишитесь пожалуйста!!!
-
Копирую в контролере по принципу как и у product.php в category.php После: if ($this->config->get('config_tax')) { $tax = $this->currency->format($tax_price, $this->session->data['currency']); } else { $tax = false; } Это: $discounts = $this->model_catalog_product->getProductDiscounts($this->request->get['product_id']); $data['discounts'] = array(); foreach ($discounts as $discount) { $data['discounts'][] = array( 'quantity' => $discount['quantity'], 'price' => $this->currency->format($this->tax->calculate($discount['price'], $product_info['tax_class_id'], $this->config->get('config_tax')), $this->session->data['currency']) ); } Летят нотисы: Как вывести скидки в opencart 3 на страницу категории? Может кто-то сталкивался с этим?
- 2 replies
-
- opencart 3
- twig
-
(and 1 more)
Tagged with:
-
theme Выбираем лучший платный шаблон для сайта (Топ платных шаблонов)
buslikdrev posted a blog entry in Блог
Цель темы предотвратить темы, где спрашивают: "Какой шаблон выбрать?" и указать на замечания авторам шаблонов, чтобы они ещё больше их улучшили. Для попадания в список лучших шаблонов, на вашем шаблоне должна быть возможность получить оценку 90+ в Google PageSpeed не урезая функционал на демонстративном сайте, также исправление косяков шаблона должны производится не позже одного месяца. Ваш шаблон должен быть адаптирован под OpenCart 2.X+ Перед добавлением в список ваш шаблон будет проходить голосование (люди оценят привлекательность до 50 голосов или в течении до двух месяцев). В данном списке шаблонов не определяется занимаемое место - весь список считается хорошим, и время от времени будет изменяться. Оцениваться шаблон будет исходя из оценок в Google PageSpeed и Google lighthouse (accessibility, best-practices, seo) Ответ сервера учитываться не будет, если при прямом посещении отдача до 400 мс (Время от запроса к сайту до начала скачивания других файлов после загрузки документа). Также, если оценка шаблона не будет в зелёной зоне (90+ баллов) в Google PageSpeed, то в ручную буду стараться её довести (привести на равные условия среди списка). 1. UltraStore для OpenCart 3.X Google PageSpeed (95) Главная страница Mobile 90-95 / Desctop 100 Категория Mobile 91-98 / Desctop 100 Товар Mobile 91-95 / Desctop 100 Google lighthouse (81) Главная страница accessibility 80 best-practices 87 seo 75 Категория accessibility 75 best-practices 87 seo 77 Товар accessibility 82 best-practices 93 seo 77 Ответ сервера Техническая поддержка - быстрая Обновления - выпускаются раньше месяца Ioncube Loader - нет Обращение к серверу разработчика - нет Рекомендации автору @octemplates: - настроить стили баннеров так, чтобы не скакали они, если отключены скрипты - это позволит сделать загрузку баннеров по взаимодействию пользователя с сайтом, что в свою очередь минимизирует работу основного потока (Total Blocking Time - TBT); - устранить ошибку скриптов, если отключены у пользователя куки; - предзагрузить стили (добавить атрибут rel="preload") - это снизит (Largest Contentful Paint - LCP); - применить скрипт сборки критических стилей - это снизит (First Contentful Paint - FCP); - устранить ошибки Google lighthouse; - установить атрибуты ширины и высоты на изображения которые нельзя менять из админ панели; 2. UniShop2 для OpenCart 3.X Голосование прошло Купон на скидку 20% 723925-console Google PageSpeed (94) Главная страница Mobile 85-95 / Desctop 100 Категория Mobile 89-94 / Desctop 100 Товар Mobile 89-95 / Desctop 100 Google lighthouse (85) Главная страница accessibility 90 best-practices 85 seo 89 Категория accessibility 84 best-practices 85 seo 83 Товар accessibility 71 best-practices 85 seo 91 Ответ сервера Техническая поддержка - быстрая Обновления - выпускаются раньше месяца Ioncube Loader - да Обращение к серверу разработчика - да Рекомендации автору @spectrum: - настроить стили баннеров так, чтобы не скакали они, если отключены скрипты - это позволит сделать загрузку баннеров по взаимодействию пользователя с сайтом, что в свою очередь минимизирует работу основного потока (Total Blocking Time - TBT); - применить скрипт сборки критических стилей - это снизит (First Contentful Paint - FCP); - устранить ошибки Google lighthouse; 3. NewStore для OpenCart 2.X В процессе голосования 4. Decor для OpenCart 3.X В процессе голосования 5. ExlusiveTuning для OpenCart 2.X-3.X (NEW) В процессе голосования -
Здравствуйте. Возникла такая проблема... Нужно вывести кол-во товаров для каждой опции. Версия Opencart 3.0.3.2 Пробовал в product.php прописывать 'quantity' => $option_value['quantity'], а в шаблоне {{option_value.quantity}}, но ничего не выводилось. Искал решение где только мог, но так и не нашел. Помогите, пожалуйста.
-
Здравствуйте! делаю свой первый проект, поэтому многое не понимаю и не все могу найти в гугле. На данный момент у меня и после успешного оформления заказа и после успешной отправки фидбэка идет редирект на одну и ту же common/success.twig Подскажите как сделать при успешном оформлении заказа редирект на мой новый success-checkout.twig? Я дошел до контроллера /checkout/success.php и в конце index() if ( ... ) { $this->response->setOutput($this->load->view('common/checkout-success', $data)); } else { $this->response->setOutput($this->load->view('common/success', $data)); } не знаю что вставить в условие
-
Получил сайт, смотрю в .twig файлах и CSS и JS повставляли... Неужели так можно делать и оно нормально будет работать?!
-
Здравствуйте, никак не могу разобраться как подключить к новому дизайну макета свой twig шаблон. создавал файлы контроллера и вьюшки <?php class ControllerProductСategoryold extends Controller { public function index() { $this->document->setTitle($this->config->get('config_meta_title')); $this->document->setDescription($this->config->get('config_meta_description')); $this->document->setKeywords($this->config->get('config_meta_keyword')); $data['column_left'] = $this->load->controller('common/column_left'); $data['column_right'] = $this->load->controller('common/column_right'); $data['content_top'] = $this->load->controller('common/content_top'); $data['content_bottom'] = $this->load->controller('common/content_bottom'); $data['footer'] = $this->load->controller('common/footer'); $data['header'] = $this->load->controller('common/header'); $this->response->setOutput($this->load->view('product/categoryold', $data)); } } файл шаблона {{ header }} <div id="product-categoryold" class="container"> <div class="row">{{ column_left }} {% if column_left and column_right %} {% set class = 'col-sm-6' %} {% elseif column_left or column_right %} {% set class = 'col-sm-9' %} {% else %} {% set class = 'col-sm-12' %} {% endif %} <div id="content" class="{{ class }}"><h1 style="font-size: 33px; margin-top: -5px; margin-bottom: 20px; text-align: center">Наконец заработало</h1>{{ content_top }}{{ content_bottom }}</div> {{ column_right }}</div> </div> {{ footer }} в самом макете прописал путь product/categoryold , но ничего не произошло, даже ошибок не выдал, есстественно я дизайн подключил к категории, модификаторы обновлял, кеш чистил, пробовал делать на другом домене. Может кто написать по шагам, что нужно сделать чтобы это заработало.
-
Добрый день,подскажите,существует ли способ узнать в шаблоне .twig код активного языка кроме как через данные с контроллера?
-
Подскажите лучший способ как c помощью php спарсить кусок кода, отвечающий за вывод блока товара, из файла шаблона product/category.twig По идее, нужно спарсить все что находится внутри цикла {% for product in products %} и записать этот код в отдельный файл, чтобы потом подключать его через include в других шаблонах. Изначально получаю код файла и записыю в переменную: $content = file_get_contents(DIR_CATALOG . 'view/theme/'.$this->config->get('config_theme').'/template/product/category.twig'); А дальше регулярку писать или есть другие варианты? Если регулярка, то помогите составить выражение. Спасибо всем, кто отзовется!
-
Осталась только "История" измененных файлов Помогите, кто встречался с такой проблемой и смог решить
- 5 replies
-
- дизайн
- выбор шаблона
-
(and 2 more)
Tagged with:
-
Есть размерная сетка на opencart 2.3, ее нужно повторить но уже на opencart 3: на двойке она сделана на чистом php в tpl файле (product.tpl), но opencart 3 поддерживает только twig формат, поэтому скопировать просто php код на тройку не получится (product.twig) Вот код на opencart 2.3: <table> <?php $s1 = array(); $s2 = array(); $arr = array(); foreach ($option['product_option_value'] as $option_value) { list($a, $b) = explode("x", $option_value['name']); $s1[] = intval($a); $s2[] = intval($b); $arr[intval($a)][] = array(intval($b), $option_value['product_option_value_id']); } $id = $option['product_option_id']; $s1 = array_unique($s1); rsort($s1); $s2 = array_unique($s2); sort($s2); foreach ($s1 as &$value) { echo "<tr>"; echo "<td>".$value."</td>"; foreach ($s2 as &$value2) { echo "<td>"; $p = false; foreach ($arr[$value] as &$value3) { if($value3[0] == $value2){ $p = true; $val = $value3[1]; } } if ($p) { echo "<label><input type='radio' name='option[".$id."][]' value='".$val."' required /><span class='stock' val='".$val."' name ='".$value."x".$value2."' vid='".$id."'></span></label>"; } else{ echo "<span class='out-stock'></span>"; } echo "</td>"; } echo "</tr>"; } echo "<tr><td></td>"; foreach ($s2 as &$value) { echo "<td>".$value."</td>"; } echo "</tr>"; ?> </table> В админке опции прописаны вот так: 170x52, 170x54, 170x60, 176x52, 176x54, 176x60, 182x52, 182x54, 182x60 (пример) Пытался воспользоваться онлайн сервисом http://phptotwig.com/ , но выдает ошибку на строке с explode Пытался адаптировать сам этот код под твиг, но опыта в этом мало, вот что получилось: <table> <tbody> {% for option_value in option.product_option_value %} <tr> <td>{{ option_value.name | split('x', 2)[0] }}</td> <td><label><input type="radio" name="option[{{ option.product_option_id }}][]" value="{{ option_value.product_option_value_id }}" required=""><span class="stock" val="{{ option_value.product_option_value_id }}" name="{{ option_value.name }}" vid="402"></span></label></td> </tr> {% endfor %} <tr> <td></td> {% for option_value in option.product_option_value %} <td>{{ option_value.name | split('x', 2)[1] }}</td> {% endfor %} </tr> </tbody> </table> Может есть модуль для такой сетки? Или лучше уже допилить код? Подскажите, пожалуйста, в какую сторону нужно копать.
- 1 reply
-
- twig
- opencart 3
-
(and 3 more)
Tagged with:
-
Здравствуйте! Решил возможно тут кто сможет помочь... Вопрос в следующем из адмики исчезла возможность доступа к редактору шаблона, пусто, нет больше, порывшись и подумав, понял что проблема скорее всего в доступах к файлам, может кто подскажет какие, где проставить, перепробовал пару вариантов, но все не то. Все бы ничего, но из-за такого исчезновения на них не срабатывают многие модули, я знаю про фикс он тоже в этом случае не спасает Чтоб что-то фиксить нужен доступ, а его к файлам похоже как нет... В остальном практически все работает как часы.
-
Ребят смотрите как можно сделать модуль подписки на рассылку на всю ширину в footere? щас он такой см фото #1 а мне нужно сделать его таким примерно и еще такой вопрос почему то перевод модуля не подключаеться и в чем может быть проблема? вместо Подписка на рассылку пишет Лидеры продаж и кнопка вместо подписки пишет Применить (Хотя если модуль выводить не в footere то он нормально работает )
-
Столкнулся с проблемой вывода кнопок пагинации, а именно выводит в вертикальный список номеровв страниц. До этого менял расположения описания категории, что бы она была ниже товара. бекап category.twig файла сделал, и при возвращении в стандартный вид, все равно кривой вывод кнопок. в админке пагинация норм выводитсья, кнопками Подскажите куда смотреть, что исправить, спасибо {% endfor %} </div> <div class="row"> <div class="col-sm-6 text-left">{{ pagination }}</div> <div class="col-sm-6 text-right">{{ results }}</div> </div>
-
Всем привет! Как правильно установить код от Sape на Opencart 3 (допустим в футер)? На форуме не нашёл...
-
Подскажите пожалуйста как расширить строку поиска в OpenCart, в какой шаблон залезть и что править