Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

progroman

Користувачі
  
  • Публікації

    1 396
  • З нами

  • Відвідування

Усі публікації користувача progroman

  1. Включите в админке модуля опцию "Включить замену в title, keywords, description". Теперь в мета-тегах (title, keywords, description) главной, категорий, товаров и др. можно вставлять "болванки", которые при выводе буду заменяться на соответствующие значения: %CITY% - город, %CITY_GC% - город в родительном падеже (кого? чего? нет ...), %CITY_PC% - город в предложном падеже (О ком? О чём?) %ZONE% - регион, %ZONE_GC% - регион в родительном падеже, %ZONE_GC% - регион в предложном падеже %COUNTRY% - страна, %COUNTRY_GC% - страна в родительном падеже, %COUNTRY_PC% - страна в предложном падеже %MSG_key% - геосообщение с ключом key, например, %MSG_phone% (ключи задаются в админке модуля на вкладке "Геосообщения")
  2. Включите в админке модуля опцию "Включить замену в title, keywords, description". Теперь в мета-тегах (title, keywords, description) главной, категорий, товаров и др. можно вставлять "болванки", которые при выводе буду заменяться на соответствующие значения: %CITY% - город %ZONE% - регион %COUNTRY% - страна %MSG_key% - геосообщение с ключом key Для старых версий В версиях модуля до 6.3 не было такой опции, но замену можно было сделать через правку кода. Для примера рассмотрим страницу категории, для других страниц делается по аналогии. За вывод страницы отвечает контроллер catalog/controller/product/category.php, title устанавливается так: т.е. получаем категорию из базы, это значение устанавливается в админке при редактировании категории: добавим "болванку" В контроллере делаем замену: Код: $city = $this->progroman_city_manager->getShortCityName(); $title = str_replace('%CITY%', $city, $category_info['meta_title']); $this->document->setTitle($title);
  3. Сохраните файл стилей catalog/view/javascript/progroman/progroman.city-manager.css, т.к. при обновлении он перепишется. До версии 6.0 С версии младше 8 до последней Отключите модуль в списке модулей в админке В index.php сделайте поиск по файлу строчки с "progroman" и удалите ее (в некоторых версиях ее может и не быть) Удалите модификаторы Удалите файл admin/controller/extension/module/progroman_city_manager.php (admin/controller/module/progroman_city_manager.php в Opencart 1.5 - 2.2) Установите новую версию по инструкции Включите модуль После обновления модуля до 8.0 можно удалить файлы старой версии, они не используются (необязательно, они ни на что не влияют): От >= 8.0 до последней версии Отключите модуль в списке модулей в админке Удалите модификаторы Установите новую версию по инструкции Включите модуль Активируйте модуль в админке
  4. Общая сессия на поддоменах Если вы используете поддомены, установите для них одну сессию. Для этого необходимо установить настройку PHP session.cookie_domain .site.com где site.com - ваш сайт Сделать это можно несколькими способами: 1) Для Apache эту настройку можно сделать через файл .htaccess, добавив в конец: php_value session.cookie_domain .site.com 2) Через функцию ini_set(). Для этого в самом начале файла index.php, сразу после <?php пишем: ini_set('session.cookie_domain', '.site.com'); 3) Для Nginx в конфиг-файле в секции location нужно добавить: fastcgi_param PHP_VALUE " session.cookie_domain = .site.com "; Ссылки После добавления поддоменов, если не настраивать мультимагазин в Opencart, все ссылки на поддоменах будут вести на основной. Например, поддомен spb.site.ru, а ссылки на категории, товары и т.д. ведут на site.ru. Так же могут не работать некоторые ajax-запросы, т.к. они будут идти на основной и браузеры из-за политики безопасности будут их блокировать (CORS). Чтобы этого избежать, нужно настроить мультимагазин. Заходите в админке в Настройки, откроется страница "Управление магазинами", добавляете новые магазины (ваши поддомены). Мультимагазин позволяет настраивать привязку категорий и товаров к магазинам (поддоменам). Если вам не нужен такой функционал, можно сделать так: В config.php нужно вставить: // HTTP define('HTTP_SERVER', 'http://' . $_SERVER['HTTP_HOST'] . '/'); // HTTPS define('HTTPS_SERVER', 'https://' . $_SERVER['HTTP_HOST'] . '/'); а старые, которые define('HTTP_SERVER', ... define('HTTPS_SERVER', ... удалить либо закомментировать. В этом случае необходимо указать "Основной домен" в настройках модуля. Это решение от пользователя, мной не тестировалось.
  5. 1. Создаем в админке модуля геосообщения с определенным ключом (например, phone), одному ключу могут соответствовать разные города. 2. В любом шаблоне в нужном месте вставляем код. Для шаблонов tpl <?= $progroman_citymanager->getMessage('phone'); ?> Для шаблонов twig (OpenCart 3) {{ progroman_citymanager.getMessage('phone') }} значение по-умолчанию можно передать вторым параметром: <?= $progroman_citymanager->getMessage('phone', '8-800-111-11-11'); ?> для twig {{ progroman_citymanager.getMessage('phone', '8-800-111-11-11') }} Загрузка геосообщений через ajax Этот способ работает и в старых версиях модуля до 6.3, где он был основным. В любом шаблоне в нужном месте вставляем: <span class="prmn-cmngr-message" data-key="phone"></span> в data-key прописываем ключ геосообщения Чтобы задать значение по-умолчанию, добавьте атрибут data-default с нужным значением <span class="prmn-cmngr-message" data-key="phone" data-default="8-800-111-11-11"></span>
  6. Начиная с версии 8.1 попап можно отключить в админке, выбрав значение "нет" - будут отключены все попапы "Угадали" на странице. Если на странице модуль выводится в нескольких местах (например, в шапке и подвале), и нужно отключить "Угадали" не везде, а также для старых версий при выводе модуля добавьте атрибут data-confirm="false" <div class="prmn-cmngr" data-confirm="false"><?= $prmn_cmngr ?></div>
  7. Начиная с версии модуля 8.3 достаточно в настройках модуля включить опцию "Загружать модуль через AJAX". Для более старых версий воспользуйтесь инструкцией ниже. Вывод модуля (блока с городом) Модуль и геосообщения можно загружать отдельным ajax-запросом, например, если у вас стоит модуль кэширования. Вывод модуля: <div class="prmn-cmngr"></div> Вместо <div class="prmn-cmngr"><?= $prmn_cmngr ?></div> Т.е. достаточно удалить <?= $prmn_cmngr ?> в файле, где вставлен код модуля. Вывод геосообщения <span class="prmn-cmngr-message" data-key="phone" data-default="8-800-111-11-11"></span> data-key - ключ геосообщения (обязательный) data-default - значение по-умолчанию (необязательный)
  8. В контроллерах и моделях через свойство progroman_city_manager доступен объект класса \progroman\CityManager\CityManager: $this->progroman_citymanager->getCountryId(); Объект можно получить также из Registry $progroman_citymanager = $registry->get('progroman_citymanager'); В шаблонах tpl <?= $progroman_citymanager->getCityName(); ?> В шаблонах twig {{ progroman_citymanager.getCityName() }} Методы объекта: getCountryId() // ID страны в Opencart getCountryName() // название страны getZoneId() // ID региона в Opencart getZoneName() // название региона getDistrictName() // название района области, если есть, например: "Одинцовский" getPostcode() // почтовый индекс getFullCityName() // название города с районом, если есть, например: "Одинцовский р-н, г. Одинцово" getCityName() // название города getPrefixCityName() // тип населенного пункта (г, д, пос и т.д.) getFiasCountryId() // ID страны в таблице fias (в базе модуля) getFiasZoneId() // ID региона в таблице fias (в базе модуля) getFiasId() // ID населенного пункта в таблице fias (в базе модуля)
  9. В system\library\progroman\citymanager\driver\sypex.php вместо $sx_geo = new SxGeo($this->sxgeo_path); $data = $sx_geo->getCityFull($this->ip); так: mb_internal_encoding("8bit"); $sx_geo = new SxGeo($this->sxgeo_path); $data = $sx_geo->getCityFull($this->ip); mb_internal_encoding("UTF-8"); Или в настройках PHP поставить mbstring.func_overload = 2
  10. Включить вывод ошибок PHP можно несколькими способами: через панель управления, в php.ini, в .htaccess или непосредственно в коде. Способ 1 Проще всего сделать это в коде. В index.php или в admin/index.php (если ошибка в админке) сразу после <?php пишем: ini_set('display_errors', 1); Способ 2 Добавьте в конец файла .htaccess в корне сайта строчку php_flag display_errors on Обновляем страницу, должен появиться текст ошибки. После исправления ошибки вывод ошибок нужно отключить.
  11. Белый экран говорит о том, что произошла серьезная ошибка в коде, но вывод ошибок отключен. Сначала нужно понять причину ошибки, для этого включаем вывод ошибок в браузер. Обновляем страницу, должен появиться текст ошибки. Пробуем исправить, ищем решение в интернете. Если не получается - скидываем текст ошибки автору в ЛС. После исправления ошибки вывод ошибок нужно отключить. Включить вывод ошибок PHP можно несколькими способами: через панель управления, в php.ini, в .htaccess или непосредственно в коде. Способ 1 Проще всего сделать это в коде. В index.php или admin/index.php (если ошибка в админке), сразу после <?php пишем: ini_set('display_errors', 1); Способ 2 Добавьте в конец файла .htaccess в корне сайта строчку php_flag display_errors on
  12. Историю обновлений можно посмотреть на странице модуля Обновление до версии 6.0 Если ваша версия старше, то можно просто перезалить файлы и модификатор.
  13. Для начала попробуйте почистить куки или открыть в инкогнито. Такие вопросы лучше задавать в личку с указанием адреса сайта.
  14. @ditex Есть такой баг в последней версии, пока не успел исправить. Проще всего вам сейчас скопировать русскую локализацию в английскую (catalog/language/ru-ru/extension/module/progroman/city_manager.php в catalog/language/en-gb/extension/module/progroman/city_manager.php)
  15. Если у вас редиректы на поддомены нормально работают, то можно и не обновляться. Демку буду переделывать, чтобы поддомены работали и редиректы, поэтому и не обновляю. Руки только не доходят до нее.
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.