Реализация выбора города

Василий, большое спасибо за уроки по созданию компонента! Весь день усиленно вчитываюсь)
Маленькая проба пера — компонент по выбору города.
Есть на демо сайте — тут
joxi.ru/J3acU_3JTJAsY2beWkM
Володя
14 июня 2014, 16:16
modx.pro
12
10 099
+7
Поблагодарить автора Отправить деньги

Комментарии: 74

Wassi Wassinen
14 июня 2014, 20:45
0
А где берет города для подстановки? Чей-то API?
Василий Наумкин
14 июня 2014, 21:12
0
Прикольно работает, мне нравится!

Только нужно убрать в консоли вывод «hide».
    Володя
    15 июня 2014, 13:38
    0
    hide убрал, добавил автоопределение города по ip c помощью Sypex Geo.
      Володя
      15 июня 2014, 13:52
      0
      Выдает ошибку что не может открыть базу… На моем серваке все нормально. Возможно ограничение какое?
        Володя
        15 июня 2014, 14:41
        0
        мой косяк был, нашел
    Wassi Wassinen
    15 июня 2014, 18:02
    +4
    Добавьте в репозиторий или создайте пост с описанием процесса ) многим пригодится.

    Заранее благодарен.
      Володя
      16 июня 2014, 09:02
      0
      я фиг знает как в репо добавлять… могу на ЯДиск выложить и ссылку кинуть
        Wassi Wassinen
        16 июня 2014, 11:01
        0
        Лучше создайте заметку здесь с содержимым всех файлов и последовательностью действий. Полезнее будет. Конечно, если вам не сложно.
      Константин
      16 июня 2014, 13:50
      0
      Залейте пожалуйста в git, если не трудно.
        Володя
        16 июня 2014, 14:40
        0
        Да пытаюсь разобраться с githab и cvs… в ходе настроек грохнул проект на компе.
        Кто-нибудь может помочь настроить git, cvs, phpstorm на mac? Он мне уже весь мозг съел…
        То корневая папка не та, то еще чето…
          Константин
          16 июня 2014, 14:46
          0
          Я себе просто поставил вот такую штуку, и все, пользуюсь github и подобными вещами
          git-scm.com/downloads
              Володя
              16 июня 2014, 14:54
              0
              да я по этому и делаю, у меня там встает все дело на
              Жмём в меню VCS → Enable version control, выбираем git и сохраняем.
              phpstorm ругается сначала на корневую директорию, потом еще на чтото
                Василий Наумкин
                16 июня 2014, 14:55
                0
                У тя сам git то установлен? Покажи хоть скрин с руганью, или её текст.
                  Володя
                  16 июня 2014, 14:59
                  0
                  joxi.ru/Fs6eUxjKTJBrH6yZtVI

                  4:58:06 dyld: lazy symbol binding failed: Symbol not found: ___strlcpy_chk
                           Referenced from: /usr/local/git/bin/git
                           Expected in: /usr/lib/libSystem.B.dylib
                           dyld: Symbol not found: ___strlcpy_chk
                           Referenced from: /usr/local/git/bin/git
                           Expected in: /usr/lib/libSystem.B.dylib
                    Михаил
                    16 июня 2014, 15:43
                    0
                    эээ не верно указал путь на git??
                      Володя
                      16 июня 2014, 15:45
                      0
                      да все тут запущено было, пришлось обновить brew, потом еще xcode, еще чето то там… гугл рулит.)
                      Потом git c brew.
                      Щас все ок. ошибка ушла! Всем спасибо!)))
                        Володя
                        16 июня 2014, 15:54
                        +1
                        и даже импорт на github из phpstorm пашет… крутяк)))
                          Василий Наумкин
                          16 июня 2014, 16:32
                          +1
                          Месье знает толк!

                          Ставишь mac.github.com/, а потом у него в настройках загружаешь console tools или как-то так — и получаешь свежий git на Mac.
            Володя
            16 июня 2014, 16:13
            +1
              Володя
              05 июля 2014, 13:02
              0
              Причесал, можно добавить в репозиторий.
                Rootiys
                09 июля 2014, 15:25
                0
                У меня пустую страницу выдает.

                С github скачал архив, распаковал, залил в корень сайта. Перешел по site.ru/cityselect-master/_build/build.transport.php, пакет установил.
                Пишу [[cityselect]] — получаю пустую страницу. Без вывода сниппета страница нормально отображается.
                  Rootiys
                  09 июля 2014, 16:00
                  0
                  Ага, умный, ключи не ввел в настройках.
                    Володя
                    09 июля 2014, 16:07
                    0
                    да он без ключей должен работать… позже гляну в чем дело.
                      Rootiys
                      09 июля 2014, 16:08
                      0
                      Ввел ключ и токен, все равно пустая страница(
                        Володя
                        09 июля 2014, 19:34
                        0
                        поставил на тест — все пашет…
                        s6114.test.modx.pro/index.php?id=1
                        s6114
                        Пароль	Q8A9d8l0u44D
                        пакет там же. Пробуй может у тебя собрался криво…
                          Rootiys
                          11 июля 2014, 15:05
                          +1
                          Владимир, спасибо за сниппет!
                          Оказалось все дело в хостинге. Перешел на DO — все работает отлично.
                  Mihan
                  09 июля 2014, 23:14
                  0
                  Абсолютно такая же проблема. Ничего не выводится, пустая страница. Без вызова сниппета, страница отображается
                    Володя
                    09 июля 2014, 23:57
                    0
                    а что в $_SERVER['REMOTE_ADDR']?
                      Роман Ильин
                      15 августа 2014, 14:27
                      0
                      Та же проблема. Хостинг настроен по инструкции Василия. В $_SERVER['REMOTE_ADDR'] IP адрес, с которого пришел. В логах чисто
                        Роман Ильин
                        15 августа 2014, 14:46
                        0
                        nginx пишет в логах:
                        2014/08/15 14:45:19 [error] 13428#0: *50243 FastCGI sent in stderr: «PHP message: PHP Parse error: syntax error, unexpected '[', expecting ')' in /var/www/context/www/core/components/cityselect/model/cityselect/cityselect.class.php on line 27» while reading response header from upstream, client: 92.101.162.154
                          Володя
                          15 августа 2014, 19:12
                          0
                          да уже видел несколько сообщений о подобной ошибке… я не гуру php и если кто то подскажет в чем дело буду рад.
                          Сам подобную ошибку еще не встречал.
                          Возможно вам просто стоит обновить версию php…
                            Василий Наумкин
                            15 августа 2014, 19:47
                            +2
                            Ты используешь объявление массива php 5.4 only.

                            Лучше таки написать array() вместо [] — далеко не все могут обновить версию php безболезненно.
                Елена Журавлева
                15 июля 2014, 17:27
                0
                Володя, а сделайте интеграцию с нами? dadata.ru/suggestions/
                Разместим вас на сайте и обещаем вам всяческий PR и маркетинговую поддержку :)
                Олег
                19 июля 2014, 07:49
                0
                Так а где можно посмотреть в работе?
                  Володя
                  19 июля 2014, 08:01
                  0
                  Есть на демо сайте — тут
                    Олег
                    19 июля 2014, 08:36
                    0
                    Спасибо за ответ!
                    А где можно посмотреть исходник? Если можно конечно.
                    И, я верно понимаю, что сниппет просто вытягивает город из КЛАДРа и где-то его хранит (сессии, куки и т.п.). Т.е. переключений контекста (для поддоменов например) нет?
                Илья
                25 июля 2014, 20:00
                0
                Еще бы в модальном окне реализовать список выбора как здесь www.dns-shop.ru/
                Вообще бы цены не было))
                  Виталий Греков
                  26 июля 2014, 02:46
                  0
                  Скажите, а можно чтобы при выборе города, пользователь видел информацию, к примеру товары или адрес компании находящийся в его городе?
                    Володя
                    26 июля 2014, 07:00
                    +1
                    по правде основная мысль такая и была… но в компонент не вошла.
                      Артур
                      04 октября 2014, 23:47
                      0
                      Владимир, спасибо за компонент!
                      А будет ли обновление компонента с такой возможностью в ближайшее будущее?

                      Как можно сейчас это реализовать: нужно показывать отдельный баннер для отдельного города?
                        Валерий Савинов
                        25 апреля 2015, 13:44
                        0
                        Поддерживаю вопрос о подмене контента для разных городов.
                        Очень актуально например для магазина, когда для разного региона должен показываться разный контактный телефон и e-mail менеджера.
                      Денис
                      16 ноября 2014, 16:53
                      0
                      Володя, есть возможность посмотреть вот тут, правильно ли я сделал? Спасибо!
                      modx.pro/help/4174/#comment-31251
                        Алексей Загорский
                        02 декабря 2014, 11:58
                        0
                        А можно ли его настроить таким образом что для Москвы да и вообще для крупных городов определялись районы, чтобы например показывать специалиста из конкретного района, например если идет поиск услуги электрика в районе станции метро Алексеевская, то человеку показывается фото и контакты частного мастера из этого района.
                          Володя
                          02 декабря 2014, 14:53
                          0
                          нет, он не дает информации о районе…
                          Игорь
                          06 апреля 2015, 20:18
                          0
                          Дак а как ним то практично пользоваться
                          Ну определило город — ну так а дальше к примеру как то контент менять в зависимости от города
                          Или для чего он вообще тогда предназначен?
                            Валерий Савинов
                            11 ноября 2015, 17:31
                            0
                            Если нет навыков php можно пользовать компонент if
                            [[!If?
                               &subject=`[[!cityselect? &tpl=`test`]]`
                               &operator=`EQ`
                               &operand=`Москва`
                               &then=`ок`
                               &else=`не ок`
                            ]]
                            в чанке test остается одна строка
                            [[+cityselect:default=`[[%cityselect_is_unknown]]`]]
                            в then, так же как и в else можно вставить любой чанк или сниппет, в зависимости от вашей фантазии.
                            Аркадий
                            18 июля 2015, 12:37
                            0
                            Такой вопрос, а возможно ли переписать сниппет так, что б выводился не город, а область пользователя, и, соответственно, если область не верна, то при поиске выводились только области?
                              Валерий Савинов
                              11 ноября 2015, 17:24
                              0
                              Володя, не подскажите как получить [country][iso]?
                              Нужно, что бы перенаправлять пользователя на англоязычную версию сайта в случае если iso не равно RU
                                Володя
                                11 ноября 2015, 19:31
                                0
                                откройте сниппет cityselect, там в конце закомментирован формат ответа от SxGeo.
                                / * Array
                                (
                                    [city] => Array
                                        (
                                            [id] => 524901
                                            [lat] => 55.75222
                                            [lon] => 37.61556
                                            [name_ru] => Москва
                                            [name_en] => Moscow
                                        )
                                
                                    [region] => Array
                                        (
                                            [id] => 524894
                                            [name_ru] => Москва
                                            [name_en] => Moskva
                                            [iso] => RU-MOW
                                        )
                                
                                    [country] => Array
                                        (
                                            [id] => 185
                                            [iso] => RU
                                            [continent] => EU
                                            [lat] => 60
                                            [lon] => 100
                                            [name_ru] => Россия
                                            [name_en] => Russia
                                        )
                                
                                )
                                 */
                                возьмите нужную переменную массива и используйте. Можно выставить в плейсходер на странице, например
                                $modx->setPlaceholder('iso', $Sx_arr['country']['iso']);
                              Stan Ezersky
                              17 декабря 2015, 19:21
                              0
                              Еще бы в модальном окне реализовать список выбора как здесь www.dns-shop.ru/
                              Вообще бы цены не было))

                              Поддержу идею!

                              Ещё было бы неплохо добавить мануал, как автоматически в Доставка → города автоматические проставлять.
                              Константин
                              21 августа 2017, 20:18
                              0
                              Поставил модуль. Какое-то время нормально определял локацию пользователя. Теперь у всех пользователей Москва. Куда копать даже не знаю. В чём может быть дело?
                                Володя
                                21 августа 2017, 20:26
                                +1
                                внесите конкретику.
                                о каком компоненте идет речь…
                                Спасибо!
                                  Константин
                                  21 августа 2017, 20:28
                                  0
                                  Прекраснейший citySelect
                                    Володя
                                    21 августа 2017, 20:30
                                    +1
                                    Прекраснейший citySelect
                                    какой версией характеризуется сей чудный компонент?)
                                      Константин
                                      21 августа 2017, 21:07
                                      0
                                      2.0.7beta)
                                        Володя
                                        21 августа 2017, 21:57
                                        +1
                                        скиньте доступы на почту посмотрю в чем дело.
                                          Константин
                                          22 августа 2017, 00:46
                                          0
                                          Вопрос снят! Это проблема конкретно нашего сервера!
                                            Константин
                                            22 августа 2017, 22:35
                                            0
                                            Оказалась не нашего сервера…
                                            Константин
                                            22 августа 2017, 22:35
                                            0
                                            Владимир. Надо модуль ваш проверять на работоспособность, последнюю версию. Я о прекраснейшем CitySelect актуальной версии 2.0.7beta. На разных сайтах, на разных хостингах, даже на голом ModX везде город Москва, хотя проверяли пользователи из Белгорода, Питера, Казани, Брянска, но у всех Москва.
                                            К примеру вот test.radionika.pro — голый modX хостинг beget
                                              Володя
                                              23 августа 2017, 10:52
                                              0
                                              незнаю, надо больше информации.
                                              смотрите что в логах и тд.
                                              Константин
                                              23 августа 2017, 01:02
                                              0
                                              Методом экспериментов выяснил что CitySelect и GeoLocation почему-то напрочь не хотят работать на поддоменах, а на основном домене работают нормально. А хотелось бы чтобы и на поддоменах локация пользователя определялась корректно.
                                    Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
                                    74