Редактируем Города - Регионы- Страны в icms2

+60
3978
Иллюстрация
Теперь можно редактировать страны-города-регионы, которые отображаются в профиле и при регистрации.

Сделал в виде компонента. Вернее компонент уже был, просто дописал к нему админ-часть.

Установка без установщика. Качаем, заливаем из архива все в корень, выполняем в phpmyadmin запрос:
  1. INSERT INTO `cms_controllers` (`title`, `name`, `is_enabled`, `options`, `author`, `url`, `version`, `is_backend`) VALUES
  2. ('geo', 'geo', 1, NULL, 'kreator', 'http://instantcms.2bl.ru', '0.1', 1);
Заходим в админку, видим компонент geo.
Тыкаем в него — видим список стран
При тыке в страну — выводится список всех регионов этой страны
Клац в регион — видим все города этого региона

Рядом с элементами (страны, города, регионы) есть крестик для удаления элемента.
При удалении города — удаляется этот город
Региона — удаляется регион и все его города
Страны — удаляется страна, всего ее регионы и города

Добавление упрощенное:
При добавлении страны — вводим название страны
Региона — выбираем еще и страну для региона
Города — страну и регион из полного списка.

Отдаю как есть, если кто захочет что с ним сделать — усовершенствовать украсить — я не против если так же бесплатно останется.
Из системных файлов дописаны новые функции с модель контроллера geo (на всякий случай пишу, чтоб не говорили что после какого нибудь обновления не работает это)

Немного скринов:
Иллюстрация
Иллюстрация
Иллюстрация
Иллюстрация
Мешки для спасиб:
Яндекс.Деньги: 41001793248606
Webmoney WMR: R131698649706
Webmoney WMZ: Z196120205679

СКАЧАТЬ
0
Реклама Реклама #
+3
Олег с клещами Олег с клещами 6 лет назад #
Отличное решение!
+3
Ingvarruss Ingvarruss 6 лет назад #
Для многих будет полезно +
+1
Олег с клещами Олег с клещами 6 лет назад #
Мне для одного проекта надо было, так пришлось ручками в базу запрос писать, а было так лень...
А теперь красота!! Респект!
0
PIN PIN 6 лет назад #
Описание как четверостишие ), +
0
Слава Слава 6 лет назад #
Спасибо. Очень хорошее дополнение к компоненту. Но есть одно НО
Плохо что нельзя редактировать уже загруженные названия. Очень много стран и прочего на иностранных языках.
0
Александр Kreator Александр Kreator 6 лет назад #
Время появится, сделаю.
0
Слава Слава 6 лет назад #
И при добавлении города выводятся регионы всех стран. А это тоже не очень удобно. И спасибо за быстрый ответ.
0
Колян Колян 6 лет назад #
Крутое дополнение, вот только странно работает вся эта геолокация, страна, регион, город. А если например Страна и Регион и Город это одно и тоже, например Ватикан, вводя наименование только страны, выбрать нечего не получится, придётся три раза писать Ватикан (юзеру надо будет три раза тыкнуть прежде чем выбрать).
Нам для проекта необходимо сделать Страну СССР, добавить РСФСР (и другие республики) потом в состав РСФСР включить РФИЮ в состав РФИИ федеральные округа, потом области/края и только потом города. + в состав РСФСР включить (продублировать/переименовать обратно легитимные) края/области и города как положено по нормам международного права. А щас не получается сделать этого, те люди кто живёт и ведёт бизнес в правовом поле СССР негодуют, те кто мучаются в РФИИ до сих пор не въехали что находятся в составе РСФСР, тоже самое необходимо сделать в других республиках СССР, чтоб юзеры могли определиться в каком правовом поле им выгоднее зарегистрироваться со всеми вытекающими правами, обязанностями и ничтяками.
+1
Александр Kreator Александр Kreator 6 лет назад #
Цели, которые тут преследовались - это взять то что есть в коробке и добавить возможность удалять и добавлять города, регионы, страны.
Удобна или нет такая трехступенчатая локация это десятый вопрос не относящийся к данной теме.
0
Колян Колян 6 лет назад #
Удобна или нет такая трехступенчатая локация это десятый вопрос не относящийся к данной теме.
Согласен друг, я поднял этот вопрос, в этой теме исключительно для того чтоб вернуть кодеров из виртуального "мира" в реальный мир, ато складывается ощущение, что детки сидят в компьютеры играются... таже РФиЯ имеет четырёх уровневую геолокацию, а в коробке трёхуровневая, почему нельзя было сделать универсальную? И это не десятый вопрос это основной вопрос на самом деле. Конечно тем кто занят изготовлением порносайтов с привязкой к лохотронам, сексчатами и магазинам вообще плевать что там куда входит и выходит, но почему нельзя сделать так чтоб инстант можно было использовать для создания полезных проектов, за которые не стыдно былобы перед своими детьми? Деньги не пахнут? Пахнут друг мой, нет то слово как воняют, жить необходимо чисто, объединять, объединяться и жить по Человечески, а не разделять и властвовать как это делают крысы вонючие.
0
AndroS AndroS 6 лет назад #
Отличное решение! Уважаемый креатор, если вы еще сделаете выбор города в одном поле во фронте - будет просто шикарнейший компонент! Помотрите, как это выглядит к примеру на ATI
""
0
nmsk nmsk 6 лет назад #
А как же пгт, сёла? hoho
0
AndroS AndroS 6 лет назад #
По тому же принципу, только, как выше говорилось, не 3 уровня, а 4...
0
TeberDini TeberDini 6 лет назад #
Отличное решение! (+)
Спасибо!
0
Александр Александр 6 лет назад #
А еще можно добавить кнопку "отсортировать города и страны", при нажатии на которую выполняется sql код:

Код PHP:
  1. <?php
  2. header ("Content-Type: text/html; charset=utf-8");
  3. mysql_connect('localhost', 'root', '');
  4. mysql_select_db('clear');
  5. $select_country = mysql_query("SELECT * FROM geo_countries ORDER BY name");
  6. while ($list_country = mysql_fetch_assoc($select_country)) {
  7. $i_country = $i_country + 1;
  8. mysql_query("UPDATE geo_countries SET id='$i_country' WHERE id='$list_country[id]'");
  9. echo "$list_country[id] > $i_country";
  10. $select_region = mysql_query("SELECT * FROM geo_regions WHERE country_id='$list_country[id]' ORDER BY country_id, name");
  11. while ($list_region = mysql_fetch_assoc($select_region)) {
  12. $i_region = $i_region + 1;
  13. mysql_query("UPDATE geo_regions SET country_id='$i_country' WHERE country_id='$list_region[country_id]'");
  14. mysql_query("UPDATE geo_regions SET id='$i_region' WHERE id='$list_region[id]'");
  15. echo "$list_country[id] - $list_region[id] > $i_country - $i_region";
  16. $select_city = mysql_query("SELECT * FROM geo_cities WHERE region_id='$list_region[id]' ORDER BY country_id, region_id, name");
  17. while ($list_city = mysql_fetch_assoc($select_city)) {
  18. $i_city = $i_city + 1;
  19. mysql_query("UPDATE geo_cities SET country_id='$i_country' WHERE country_id='$list_city[country_id]'");
  20. mysql_query("UPDATE geo_cities SET region_id='$i_region' WHERE region_id='$list_city[region_id]'");
  21. mysql_query("UPDATE geo_cities SET id='$i_city' WHERE id='$list_city[id]'");
  22. echo "$list_country[id] - $list_region[id] - $list_city[id] > $i_country - $i_region - $i_city";
  23. }
  24. }
  25. }
  26. ?>
0
Александр Александр 6 лет назад #
Однако стоит предупредить что процедуру прийдется повторить раза 3-4, и сайт на бесплатном хостинге просто "ляжет" от количества затраченных ресурсов сервера
-1
alkokrolik alkokrolik 6 лет назад #
Извиняюсь, если не правильно понял, но зачем эта сортировка, если города в любом случае сортируются по алфавиту?
+1
koval koval 6 лет назад #
Нифига не пойму как добавить этот запрос в пхп админ
0
Alexstrigin Alexstrigin 5 лет назад #
В чём может быть проблема?



Не отображаются регионы и города, добавляются, они есть в базе, а в настройках не показаны id пустой.
Компонент платный.....
-2
Андрей Андрей 5 лет назад #
В данный момент на версии движка 2.4.0, в админке при нажатии на кнопки "M" и "X" выдает такую ошибку


В логах следующие ошибки

Код PHP:
  1. PHP Fatal error: Call to undefined method modelGeo::getCountry() in /var/www/u0006953/data/www/lovelovely.ru/system/controllers/geo/backend/actions/edit.php on line 11, referer: http://lovelovely.ru/admin/controllers/edit/geo
  2. PHP Fatal error: Call to undefined method modelGeo::getCountry() in /var/www/u0006953/data/www/lovelovely.ru/system/controllers/geo/backend/actions/edit.php on line 11, referer: http://lovelovely.ru/admin/controllers/edit/geo
  3. PHP Fatal error: Call to undefined method modelGeo::getRegion() in /var/www/u0006953/data/www/lovelovely.ru/system/controllers/geo/backend/actions/edit.php on line 27, referer: http://lovelovely.ru/admin/controllers/edit/geo/regions/3159
0
Birles Birles 5 лет назад #
Андрей, вот такая же фигня и у меня, поэтому и говорил, что компонент не работает
-2
Андрей Андрей 5 лет назад #
Он работает, нажимайте на саму страну, область и город и редактируйте.
-2
Андрей Андрей 5 лет назад #
проблему решил Kreator - файл \system\controllers\geo\model.php у меня не правильный был.
0
StAlKeRxXl StAlKeRxXl 5 лет назад #
Странно.. поставил этот модуль.. вроде работает, но в тоже время - нет..
Пытаюсь удалить город/регион/страну - не удаляет..
Пытаюсь добавить регион - "типа добавляет", но в списке регионов - не появляется...
Запрос - выполнил.. права на файлы дал...
Куда еще копнуть можно?
версия Instanta - 2.5.1
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.