URL в instantmaps2

Дополнительные тэги для формирования URL

#1 6 октября 2015 в 00:11
В instantmaps2 есть Шаблон генерации URL в котором прописывая тэги типа {title} {id} и т.д. т.е. дергая данные из полей таблицы *_con_places мы формируем урл.
Возможно ли как то дернуть в url город, улицу и дом?
Знаю что можно тэгом {addrs} вывести эту инфу, но там сидит лишняя инфа по id этого адреса и соответственно этот id прописывается в url, а это уже лишнее. Может можно как то либо отрезать этот ид что бы в урл выводился только адрес.
Или может можно как-то из таблицы *_places_markers дернуть город, улицу и дом для того что бы сформировать URL, ведь все геоданные и контакты записаны здесь и читаются именно отсюда.
#2 13 октября 2015 в 23:37
Уважаемые форумчане, прошу помочь в следующем вопросе — при добавлении объекта в таблицу ins_con_places заносятся данные, в частности поле "addrs" в котором пишется город, улица, дом. Я создал поля отдельные в таблице ins_con_places это addr_city, addr_street, addr_house. Как можно сделать так, что бы при добавлении объекта информация, которая пишется в поле "addrs" ещё и писалась по раздельности в поля addr_city, addr_street, addr_house?
Или тыкните в каком файле происходит INSERT по добавлению объекта и заполнению поля "addrs".
Заранее спасибо.
#3 13 октября 2015 в 23:55

Или тыкните в каком файле происходит INSERT по добавлению объекта и заполнению поля "addrs".

kdv1978
INSERT происходит в экшене контента — /systems/controllers/content/item_add.php и в модели компонента /systems/controllers/content/model.php
поскольку объекты инстантмапс основаны на типах контента.

Как можно сделать так, что бы при добавлении объекта информация, которая пишется в поле "addrs" ещё и писалась по раздельности в поля addr_city, addr_street, addr_house?

kdv1978
разобрать addrs на составные, и присвоить их нужным вам элементам массива
#4 14 октября 2015 в 00:31


INSERT происходит в экшене контента — /systems/controllers/content/item_add.php и в модели компонента /systems/controllers/content/model.php

Rossoman
Спасибо за подсказку. Посмотрел и понял что я со своими познаниями не справлюсь.
Кто нибудь возьмется за фин. вознаграждение реализовать описанное постом выше + то-же самое при редактировании объекта в случае смены города, улицы, дома также записывать эти изменения в указанные поля.
От Вас инструкция что и куда дописать (чтобы в дальнейшем при обновлении системы можно было отредактировать файлы)
Пишите предложения здесь или в личку.
#5 14 октября 2015 в 08:19
kdv1978, а если удалить или снять с публикации поле адрес и вместо него вывести три других стандартных поля с системными именами addr_city, addr_street, addr_house, то при заполнении будут вводится три разных поля, а в шаблоне эти три поля можно соединить в любой последовательности в одну строку. Поскольку инстант мапс сильно зашит, то вряд ли у вас получится, что-либо изменить в коде.
#6 14 октября 2015 в 08:50
Думаю разработчики InstantMaps все же дадут возможность использовать не только координаты на карте, но и адрес, в других типах контента.
Каталог объектов конечно хорош (устранения недочетов ждём), но как то с другими типами надо крепче "подружить"
p.s. ждем обновы… молча… терпеливо
#7 14 октября 2015 в 09:04

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

Loadырь
Помоему вы несколько не правы. Добавление объекта происходит на типе контента places, а следовательно и дописать можно в модели контента, или в экшене. Единственное к чему там не будет доступа, так это к типу поля, которое собственно и добавляет точку на карту, но оно нам по большому счету и не нужно.
#8 14 октября 2015 в 09:13

Помоему вы несколько не правы.

Rossoman
Вполне возможно. Так как последние два дня "нюхаю краску" и в голове никаких мыслей, кроме как ещё один день "нюхать краску". Но по моему на каждый компонент рисовать хаки в системных файлах, это немного "не этично", когда можно решить это в админке типа контента.
#9 14 октября 2015 в 10:22
Loadырь, а по другому здесь и не получиться. Если снять поле адрес, то мы теряем возможность создавать объект на карте, поскольку это как раз и делает поле адрес. Ну или делать куда более глубокие хаки.
Если карта не нужна, то причем тут инстантмапс вообще))
А если уж совсем делать без хаков, то как вариант разработать новый тип поля, которое само будет разбирать данные из поля адреса на составные, и присваивать значения скрытым полям (то есть подготавливать нужные элементы массива для внесения в базу).
#10 14 октября 2015 в 17:37
Ждать от разработчиков можно долго, сначала ждали подкатегории, потом импорт под категории и т.д. Сам разработчик говорит что это можно сделать не залазия в зашифрованных часть кода. Rossoman может Вы возьметесь это допилить?
#11 15 октября 2015 в 10:42

Сам разработчик говорит что это можно сделать не залазия в зашифрованных часть кода

kdv1978
и правильно говорит. Кроме того, если залезть в зашифрованную часть кода вашей проблемы все равно не решить)
Допиливать я к сожалению не возьмусь, в связи с отсутствием времени в настоящий момент
#12 16 октября 2015 в 00:41


Возможно ли как то дернуть в url город, улицу и дом?

kdv1978

Через хук можно реализовать, но не будет возможности использовать {id} и {category}.
Если интересно, то выложу.
#13 16 октября 2015 в 00:52

Если интересно, то выложу.

Максим
Не то слово что интересно, а очень нужно. Буду очень благодарен.
#14 16 октября 2015 в 01:22


Если интересно, то выложу.

Максим
Не то слово что интересно, а очень нужно. Буду очень благодарен.

kdv1978

В общем пока только при добавлении нового объекта работает.
Можно использовать теги:
{category_id}
{new_category}
{title}
{teaser}
{addr_country}
{addr_region}
{addr_city}
{addr_city_id}
{addr_city_lat}
{addr_city_lng}
{addr_street}
{addr_house}
{addr_room}
{lat}
{lng}
Для установки распаковать в корень сайт.
Прикрепленный файл
system_5h1pi.zip 2 Кб
#15 18 октября 2015 в 08:33
Максим, при добавлении объекта с маской вида {title}-{addr_city}-{category_id} получаю сообщение:

Warning: array_merge() [function.array-merge]: Argument #2 is not an array in \www\system\controllers\slug\hooks\content_places_before_add.php on line 9

Warning: Cannot modify header information — headers already sent by (output started at \www\system\controllers\slug\hooks\content_places_before_add.php:9) in \www\system\core\controller.php on line 540

Warning: Cannot modify header information — headers already sent by (output started at \www\system\controllers\slug\hooks\content_places_before_add.php:9) in \www\system\core\controller.php on line 542


При редактировании — генерируется uri вида apteka-addr-city-7.html т.е. название города не подставляется, только маска.
Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.