Timber
-
Публікації
75 -
З нами
-
Відвідування
Тип публікації
Профілі
Форум
Маркетплейс
Статті
FAQ
Наші новини
Магазин
Блоги
module__dplus_manager
Повідомлення, опубліковані користувачем Timber
-
-
Пишет, что прав у дрома на базу нет
-
Я вот заметил за последние пару лет другую тенденцию. Если раньше с просьбами о помощи писали относительно грамотные в техническом плане люди (ну как минимум понимающие, как шаблон поправить и т.п.), то теперь идёт какой-то вал китайцев и индусов, которым приходится объяснять, как модификации обновлять. При этом, что самое забавное, если судить по обратным адресам и подписям, это не просто владельцы конечных магазинов, а студии веб-дизайна и екоммерции. Ещё классический вопрос последнее время "я расширение скачал, а инсталятор, говорит, что формат неправильный". И это с учётом того, что архив называется unzip-me-bla-bla-bla.zip.
А что касается того, что ставят последнюю версию, то тут как раз всё понятно. По кнопке download она скачивается и чего народу вникать?
- 1
-
55 минут назад, MSKyl сказал:
Код который используется в Админке
Я бы проверил, куда указывает DIR_TEMPLATE . $view . '.twig'
И какой template_engine в system/config по-умолчанию стоит.
-
3 часа назад, Vladzimir сказал:
Ибо уже закоммитили 4.0 бета
точно, тогда пару лет до стабильной 4.1
-
34 минуты назад, umbrello сказал:
Мультиязычные сайты на Опенкарт обычно открываются на языке той страны с IP адреса которой сайт открывает пользователь, при условии что этот язык локализован на сайте наряду с другими.
Опенкарт "из коробки" такого функционала не имеет. Так что если вам не поставили соответствующий модуль, то он будет определять язык в соответствии с предпочтениями браузера. Поменяйте в настройках браузера язык на английский, почистите куки и снова зайдите на сайт. Он должен будет открыться на английском.
-
22 часа назад, Vladzimir сказал:
Вот и используй после этого третью версию опенкарта.
Правильнов свое время говорили умные люди - дождитесь хотя бы 3.1
Чуть больше года назад ставил себе альфу 3.1, выглядело всё почти готовым. Даже несколько модулей под неё адаптировал. Зашёл вчера посмотреть что и как - всё вообще переделано. Появились неймспейсы, переделана загрузка шаблонизатора, расширения вынесены отдельно, по коду разбросаны комментарии о том, какие идиоты разработчики симфонии. Причём если год назад работало обновление 2.x->3.1, то теперь и это сломано. Так что такими темпами они ещё минимум год 3.1 пилить будут.
-
2 часа назад, nash сказал:
сделал проверку... а как вывести "Ничего не найдено"?
можно проверить json, полученный от сервера и если он пустой, то вернуть что-то типа этого
return { label: 'Ничего не найдено', value: '' }
И ещё один момент. Проверку на стороне контроллера можно использовать в том случае, если значений без патины относительно немного (единичные случаи). Если же их много, то лучше добавить к запросу AND p.patina IS NOT NULL, ну или какое там значение этого поля по-умолчанию (если пустая строка, то проверяйте на неё).
-
3 часа назад, openprice сказал:
Не можно, а нужно.
Ну тут зависит от подхода. Лично я стараюсь имеющиеся методы моделей ядра не трогать. Потому как какое-нибудь расширение захочет запрос переписать и развалится всё нафиг. Если что-то нужно, то лучше свой метод написать.
-
3 минуты назад, openprice сказал:
Думаю, это подсказка вам поможет
https://stackoverflow.com/questions/5285448/mysql-select-only-not-null-values#5285461
можно и так, но тогда проще свой select написать, тем более всё равно в модель изменения вносятся
-
Если я правильно понял, что нужно, то сделайте в этом цикле проверку на наличие нужного значения и добавляйте в результирующий json только те записи, которые имеют нужное значение
foreach ($results as $result) { $json[] = array( 'product_id' => $result['product_id'], 'name' => strip_tags(html_entity_decode($result['patina'], ENT_QUOTES, 'UTF-8')), 'price' => $result['price'] ); }
И зачем вообще дёргать сервер, если в поисковую строку ничего не ввели? Пусть пользователь введёт хотя-бы пару символов и тогда уже можно и к серверу обращаться.
- 1
-
5 минут назад, chukcha сказал:
а посмотреть в код?
Я посмотрел. Если кроме startap.php больше их нигде не трогают, то так оно и есть. Поэтому и задал уточняющий вопрос.
-
3 минуты назад, Vladzimir сказал:
Так с этого и надо было начинать.
я примерно с этого и начинал
4 минуты назад, Vladzimir сказал:Хотя на гитхабе уже пофиксили, а вот в релизах да, именно так.
причём, если судить по истории коммитов, пофиксили в октябре 2017. С учётом того, что 3.0.3.6 был в 2020, почему в него не вошёл этот фикс вообще непонятно.
- 1
-
2 минуты назад, Yoda сказал:
А потом он сохраняется в тот же кеш, вроде все логично, нет?
Если они в третьей ветке не поменяли полностью логику работы с кешем, то это два разных кеша. Он опрашивает кеш language, а сохраняет потом в кеш catalog.language
9 минут назад, Vladzimir сказал:У вас плохо со зрением?
У меня хорошо. Вот он полностью (из 3.0.3.6) opencart-3.0.3.6/upload/catalog/model/localisation/language.php
<?php class ModelLocalisationLanguage extends Model { public function getLanguage($language_id) { $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "language WHERE language_id = '" . (int)$language_id . "'"); return $query->row; } public function getLanguages() { $language_data = $this->cache->get('language'); if (!$language_data) { $language_data = array(); $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "language WHERE status = '1' ORDER BY sort_order, name"); foreach ($query->rows as $result) { $language_data[$result['code']] = array( 'language_id' => $result['language_id'], 'name' => $result['name'], 'code' => $result['code'], 'locale' => $result['locale'], 'image' => $result['image'], 'directory' => $result['directory'], 'sort_order' => $result['sort_order'], 'status' => $result['status'] ); } $this->cache->set('catalog.language', $language_data); } return $language_data; } }
Можете на гитхабе посмотреть https://github.com/opencart/opencart/blob/3.0.x.x_Google_Pay/upload/catalog/model/localisation/language.php
Вот он же в ocStore ocStore-3.0.2.0/public/catalog/model/localisation/language.php
<?php class ModelLocalisationLanguage extends Model { public function getLanguage($language_id) { $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "language WHERE language_id = '" . (int)$language_id . "'"); return $query->row; } public function getLanguages() { $language_data = $this->cache->get('language'); if (!$language_data) { $language_data = array(); $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "language WHERE status = '1' ORDER BY sort_order, name"); foreach ($query->rows as $result) { $language_data[$result['code']] = array( 'language_id' => $result['language_id'], 'name' => $result['name'], 'code' => $result['code'], 'locale' => $result['locale'], 'image' => $result['image'], 'directory' => $result['directory'], 'sort_order' => $result['sort_order'], 'status' => $result['status'] ); } $this->cache->set('catalog.language', $language_data); } return $language_data; } }
- 1
-
Правильно я понимаю, что
$this->config->get('config_language') это код языка по-умолчанию (из конфига)
$this->config->get('config_language_id') это ID языка, который используется сейчас?
-
Может кому-нибудь пригодится. В Opencart 3.0.2 (может и раньше, но в 3-й ветке) разработчики накосячили с кешированием языков.
В catalog/model/localisation/language.php сначала идёт
$language_data = $this->cache->get('language');
А потом
$this->cache->set('catalog.language', $language_data);
То есть для получения списка языков будет каждый раз дёргаться база. Аналогичная фича в админской модели. В ocStore то же самое.
Если у кого-то есть желание, может попробовать сделать PR в opencart. У меня с этим [censored] желания общаться нет.
-
В 12.10.2020 в 12:04, degorych сказал:
Есть задача по добавлению кода языка в урл, например, если пользователь выбирает английский язык, то урл должен быть вида http://my.site/en/category/product. Если Пользователь на языке по-умолчанию, то код не добавляется.
Это вам любая из реализаций SEO PRO подойдёт. Вот только не знаю, есть ли они отдельно для OC3, а не в составе сборок.
-
Если не планируете внутрь в код лезть, а готовы всё мышкой настраивать, то берите вордпресс. Но его обновлять надо не забывать и платную тему купить придётся.
Но если привыкли CSS где-нибудь подправить или шаблон странички, то вордпресс тут явно не для новичка - там сразу возникает желание убить всех, кто вордпресс придумал.
-
Темы про создание своих библиотек находил, но они все про вторую версию.
Соответственно есть пара вопросов про библиотеки третьей версии.
1. Я бегло глянул startup.php, выглядит так, что библиотеки подключаются автоматически из system/library. Так ли это, или нужно дополнительно где-то их объявлять?
2. Доступны ли из моей библиотеки функции других библиотек?
-
Может кому пригодится.
Начиная, как я понимаю, с 3.0.3.5 в опенкарте поменяли загрузчик шаблонов на ArrayLoader, соответственно теперь ничего через include не работает. Исправляется это таким образом:
в system/library/template/twig.php меняем
$loader = new \Twig\Loader\ArrayLoader(array($filename . '.twig' => $code));
на
$loader1 = new \Twig\Loader\ArrayLoader(array($filename . '.twig' => $code)); $loader2 = new \Twig\Loader\FilesystemLoader([DIR_TEMPLATE]); $loader = new \Twig\Loader\ChainLoader([$loader1, $loader2]);
ну а дальше в любом шаблоне включаем свой шаблон в виде:
{% include 'мой_шаблон/template/partials/breadcrumb.twig' %}
Проверено на 3.0.3.6
На гитхабе на эту тему есть пулл-реквест, но Даниэль живёт в своём формате и поэтому ожидать, что это войдёт в релиз не приходится.
- 3
-
59 минут назад, Antonio54 сказал:
Возможен ли такой функционал без серьезной кастомизации?
Смотря что понимать под серьёзной кастомизацией. Нужно будет сделать модуль типа Total и в нём реализовать такой функционал, либо допилить существующий купонный модуль. Во фронтенде вообще элементарно, а вот в админке мороки немного больше, но не сильно. Главное ТЗ исполнителю корректно описать, ну или показать, как это в Битриксе работает (если их реализация полностью устраивает).
У нас похожий функционал для методов оплаты сделан - карточки и Apple/Google Pay есть скидка, а за Пейпал нет.
-
В 24.12.2018 в 17:27, Halonest сказал:
Штатный модуль Google Sitemap создает карту сайта только для основного языка.
Если стоит SEO Pro с указанием языка в URL, то достаточно гуглу скормить две ссылки:
http://example.com/en/index.php?route=extension/feed/google_sitemap
http://example.com/de/index.php?route=extension/feed/google_sitemap
Или в 3.0 SEO Pro принципиально поменялся и больше он переключать язык через URL не умеет?
-
В 03.07.2020 в 22:34, chriscustom сказал:
Если Вас не затруднит, можно более подробнее, чтобы новичку это было по силам сделать? Или это не реально для не особо разбирающегося в этом деле?
Для opencart 2.0-2.3
1. Открываем template/information/contact.tpl и добавляем скрытое поле в форму. Место, куда добавлять и название поля не принципиальны. Я его поставил после поля name.
<input type="text" name="lastname" value="" hidden>
2. Открываем catalog/controller/information/contact.php и там к коду от $mail = new Mail(); до $mail->send(); применяем условие if (!$this->request->post['lastname']). То есть должен получиться такой код:
$this->document->setTitle($this->language->get('heading_title')); if (!$this->request->post['lastname']) { $mail = new Mail(); ...... $mail->send(); } $this->response->redirect($this->url->link('information/contact/success'));
Для opencart 3.0 аналогично, только там будет шаблон contact.twig
-
Может кому пригодится. Меня левые пользователи в форме обратной связи задолбали, причём включение встроенной капчи не особо помогло. Я добавил скрытое поле в форму и теперь проверяю его. Если оно заполнено, то просто выдаю страничку "спасибо". Теперь никакой лишней почты нет.
В форме регистрации есть поле факс. Все фейковые пользователи его заполняют, можно проверку прямо по нему делать.
-
17 минут назад, Dimusik сказал:
сделал как вы сказали, прошло всё успешно проблем нет!!!файл гугл сьел УСПЕШНО
соответственно получается, что с тем, что выводит модуль проблем нет.
27 минут назад, Dimusik сказал:Это ваш конфиг? Я в апачах не силён, но в моём понимании переход на sitemap.xml как раз вызывает index.php?route=extension/feed/google_sitemap
То есть, в принципе, вы добились того, чего хотели. Ну а то, что гугл не может прочитать index.php?route=extension/feed/google_sitemap можно списать на сбой в гугле. Может потом прочухается.
Какого фига так много сайтов на OpenCart 3.0.3.6 развелось?
в Курилка
Опубліковано:
Это задолго до началось. По моим ощущениям примерно совпало с выходом третьей версии. Это ведь там все эти али- и вичат-пэй добавили?
А до этого из занудных помню только одного турка, который афродизиаками и шмотками из латекса торговал. Называл меня бро и выносил мозг всякими идеями, но потом куда-то пропал.