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

[Поддержка] CityManager (Определение города по IP, Geo IP)


Recommended Posts

В 13.04.2017 в 11:29, progroman сказал:

Ну вы же сами дописываете город в title, добавьте условие: если бот ПС, то город Москва (например), иначе город брать из GeoIP.

Не подскажите как это сделать? Для геосообщений это тоже актуально.

 

Надіслати
Поділитися на інших сайтах


Подскажите, пожалуйста, как проверять есть ли геосообщения для этого города или нет

 

вот так я вывожу геосообщение: 

<?php echo $geoip_terms_pickpoint; ?>

Это работает.

 

а вот так решил сделать проверку и выводить разные сообщения в зависимости от наличия геосообщения
 

<?php if (!empty($geoip_terms_pickpoint)) { ?>  
такой город есть
<?php } else { ?> 
города нет  
<?php } ?>

 

Не работает. Всегда выводит "такой город есть"

 

Змінено користувачем angelzzz
Надіслати
Поділитися на інших сайтах


Должно работать, проверьте, что у вас в $geoip_terms_pickpoint - var_dump($geoip_terms_pickpoint); когда "города нет".

Еще можете текст по-умолчанию сделать "города нет", будет выводиться, когда геосообщение не определено.

Надіслати
Поділитися на інших сайтах

23 часа назад, pro1d сказал:

Не подскажите как это сделать? Для геосообщений это тоже актуально.

 

Например, так http://xdan.ru/how-to-detect-on-php-if-a-page-is-visited-by-a-search-bot.html

Надіслати
Поділитися на інших сайтах

1 час назад, progroman сказал:

Должно работать, проверьте, что у вас в $geoip_terms_pickpoint - var_dump($geoip_terms_pickpoint); когда "города нет".

Еще можете текст по-умолчанию сделать "города нет", будет выводиться, когда геосообщение не определено.

var_dump($geoip_terms_pickpoint) - string(75) ""

 

Суть в том, что я в зависимости от наличия геосообщения для этого города вывожу блок текста, которого нет в геосообщении. Просто я не вижу смысла для каждого города где есть ПВЗ добавлять еще и однотипные геосообщения "есть ПВЗ", я просто хочу, чтобы когда в геоосообщении для этого города есть цена, добавлять текст "есть ПВЗ, цена такая-то, Вы можете сделать то-то и то-то"

 

 

Надіслати
Поділитися на інших сайтах


8 минут назад, angelzzz сказал:

var_dump($geoip_terms_pickpoint) - string(75) ""

 

Тогда не понятно, почему не выполняется !empty() и пишет "города нет". Вроде бы все верно.

<?php if (!empty($geoip_terms_pickpoint)) { ?>  
такой город есть
<?php } else { ?> 
города нет  
<?php } ?>
Надіслати
Поділитися на інших сайтах

Добрый день! Подскажите, пожалуйста, в чем ошибка? Стоит модуль СДЭКа и Ваш. Автокомплит работает, все определяется верно, но в СДЭК не отдается регион и получается так:

Вводим Кировск Ленинградской области - ПВЗ правильный.

http://prntscr.com/etjfcr

Вводим Кировск Мурманской области - ПВЗ все равно Ленинградской области, хотя там вообще их нет..

http://prntscr.com/etjh00

Работа со СДЭКом настроена по faq

Спасибо за помощь!

Надіслати
Поділитися на інших сайтах


22 часа назад, progroman сказал:

 

Тогда не понятно, почему не выполняется !empty() и пишет "города нет". Вроде бы все верно.


<?php if (!empty($geoip_terms_pickpoint)) { ?>  
такой город есть
<?php } else { ?> 
города нет  
<?php } ?>

 

Вообще-то наоборот всегда выводит "такой город есть"

Надіслати
Поділитися на інших сайтах


Тогда все правильно в этой переменной же что-то есть - строка 75 символов:

string(75) ""

Надіслати
Поділитися на інших сайтах

1 час назад, astra1973 сказал:

Добрый день! Подскажите, пожалуйста, в чем ошибка? Стоит модуль СДЭКа и Ваш. Автокомплит работает, все определяется верно, но в СДЭК не отдается регион и получается так:

Вводим Кировск Ленинградской области - ПВЗ правильный.

http://prntscr.com/etjfcr

Вводим Кировск Мурманской области - ПВЗ все равно Ленинградской области, хотя там вообще их нет..

http://prntscr.com/etjh00

Работа со СДЭКом настроена по faq

Спасибо за помощь!

Попробуйте поле региона вывести, и посмотреть, как с ним будет работать.

 

А вообще, вы же город не в модуле GeoIP меняете, а в Симпле или что там у вас.

Надіслати
Поділитися на інших сайтах

1 час назад, progroman сказал:

Тогда все правильно в этой переменной же что-то есть - строка 75 символов:

string(75) ""

так в этом и был вопрос, почему там что-то есть если я туда ничего не вписывал.

 

в product.php

$geoip = $this->registry->get('geoip');
$this->data['city'] = $geoip->getShortCityName(); 
$this->data['geoip_terms_pickpoint'] = $geoip->getRule('terms_pickpoint');
$this->data['geoip_price_pickpoint'] = $geoip->getRule('price_pickpoint');

в product.tpl 

<p> До пункта выдачи: <?php echo $geoip_price_pickpoint; ?> <?php echo $geoip_terms_pickpoint; ?> </p>

<!--для теста-->
<?php if (!empty($geoip_terms_pickpoint)) { ?>  
такой город есть
<?php } else { ?> 
города нет  
<?php } ?>
<!--для теста-->

то есть геосообщение всегда содержит данные? Как можно проверить имеется ли геосообщение? Моя задача проверить есть ли для этого города геосообщение geoip_terms_pickpoint, и в зависимости от этого выводить данные

 

У меня сейчас текст "такой город есть" выводится и для городов у которых есть геосообщение и для тех у которых его нет

Змінено користувачем angelzzz
Надіслати
Поділитися на інших сайтах


А в настройках модуля стоит "использовать ajax"? Если да, попробуйте убрать.

Надіслати
Поділитися на інших сайтах

В 22.04.2017 в 22:52, progroman сказал:

А в настройках модуля стоит "использовать ajax"? Если да, попробуйте убрать.

Вот так все заработало. Спасибо!

Змінено користувачем angelzzz
Надіслати
Поділитися на інших сайтах


Здравствуйте.

1.5.5.1.2

версия модуля 5.2

Подскажите,

1. как поправить код, что бы список городов формировался не по горизонтали, а по вертикали? И как при этом предусмотреть настройку количество столбцов (или количества строк в столбце)?

 

3c306d536f.png

 

2. как (при реализации первого вопроса) автоматически добавить (увеличить) междустрочный интервал между алфавитными блоками?

 

 

01ced9b614.png

Змінено користувачем globaltrading
Надіслати
Поділитися на інших сайтах


Работает, не раз ставил на шаблон unishop.

Надіслати
Поділитися на інших сайтах

через геосообщения пхппеременную не вывести ??? 

 

такая вот задачка.

два языка как бы... выводятся крупные сообщения... и если с html всё нормально, то пхп вырезается, хотя в бд исправно сохраняется 

 

сейчас на пятой версии... 

в шестой как обстановка ? 

Надіслати
Поділитися на інших сайтах

Нет только на OC 2.

Надіслати
Поділитися на інших сайтах

В 01.05.2017 в 18:07, vayboy сказал:

через геосообщения пхппеременную не вывести ??? 

 

такая вот задачка.

два языка как бы... выводятся крупные сообщения... и если с html всё нормально, то пхп вырезается, хотя в бд исправно сохраняется 

 

сейчас на пятой версии... 

в шестой как обстановка ? 

 

Переменные вывести не получится. Т.к. геосообщение выводится как текст, а не выполняется как PHP-код.

Надіслати
Поділитися на інших сайтах

 

18 часов назад, progroman сказал:

 

Переменные вывести не получится. Т.к. геосообщение выводится как текст, а не выполняется как PHP-код.

 

Учтите, пожалуйста, что опенкарт поддерживает мультиязычность.

Мошт и не многим надо, но кому надо приходится костыли городить.

 

Поделюсь своим решением на тему мультиязыка (у меня два, опенкарт 2102), которое не трогает модуль, но даёт возможность выводить разноязычные мессаги.

Повторю, что я на пятой версии, к шестой может не покатить - в теме обсуждалась тема пустоты ключей. моё решение основано на том, что ключи пусты, когда пользователь из региона, для которого значения ключей не присвоены.

 

К сожалению, я не php программер. так что буду рад замечаниям и правкам от более развитых в теме людей.

 

 

В настройках мода задаются два ключа

key

key_en

 

Добавляем в нужный контроллер определение key/key_en + определение кода языка у пользователя

$geoip = $this->registry->get('geoip'); // подключение geoip модуля
$data['language'] = $this->config->get('config_language'); // получение кода языка юзера в переменную language 
$data['geoip_delivery_mini'] = $geoip->getRule('key'); // получаем значение ключа key из настроек geoip
$data['geoip_delivery_mini_en'] = $geoip->getRule('delivery_mini_en'); // получаем значение ключа key_en из настроек geoip

В нужном шаблоне делаем вывод нужных значений ключей

<?php if (empty($geoip_key)) { // у меня язык по умолчанию русский и 100% для русского будет задан ключ
echo $text_gen_delivery_info; // здесь у меня выводится инфа, которая выводится если нет регионально определённых ключей (править её значение для каждого языка я могу через языковые файлы под каждый язык, поэтому не акцентирую на ней внимание, возможность задания значения ключа по умолчанию меня не устраивает опять же по причине мультиязычности)
} else { // если ключи не пусты, т.е. задан какой-то региональный ключ
if ($language == "ru") { // и язык пользователя русский
echo $geoip_key; // вывожу значение русскоязычного ключа под регион
} else {echo $geoip_key_en;};}; ?> //вывожу значение англоязычного ключа под регион (если у вас больше языков, то нужно создать больше условий вывода)

Повторюсь, что я не программер и буду рад замечаниям

 

 

Надіслати
Поділитися на інших сайтах

Добрый день!

Установил ProgRoman - CityManager+GeoIP 6.0 на сайт https://sadovoddom.ru/. При активации пишет: "Модуль не активирован, получите лицензионный ключ у автора модуля". Прошу помощи.

Надіслати
Поділитися на інших сайтах


Запрос лицензии в личку. В выходные могу не отвечать.

Надіслати
Поділитися на інших сайтах

Как хотите. Можете поставить, но симпла может работать и с базой модуля geoip (для автодополнения города).

Надіслати
Поділитися на інших сайтах

Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
×
×
  • Створити...

Important Information

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