Улучшения компонента
- dtvims
- Topic Author
- Offline
- New Member
Less
More
12 years 8 months ago #288
by dtvims
Улучшения компонента was created by dtvims
В ходе своих доработок возникли идеи по доработке. Для себя я что-то уже сделал и с нетерпением ждуновой версии компонента, чтобы уже ковыряться с ним.
1. Не совсемпонятно какие именно будут изменения в новой версии, может что-то уже будет учтено.
2. Ранее я писал, что в joomla используется библиотека mootools - нафиг ее, так как не работают некоторые фичи в firefox 11 (в более ранних версиях не проверял). Надо все-таки использовать ajax.
3. Появилась идея сделать настраиваемыми доп. атрибуты в настройках карты, т.е. создали карты и там редактируем атрибуты и их вывод и редактирование в метках. Необходимы 3 свойства на каждый атрибут (в идеале вообще атрибуты динамическими сделать, но я не об этом): Название поля; Тип поля (если не задан, значит атрибут выключен); Значения по умолчанию/Варианты значений через ";". Тип поля - это input, select, Editable select (прикольная штука делается на базе ajax).
4. В текущий момент есть неудобсва по созданию новых пользовательских меток, см. "/components/com_zhyandexmap/views/zhyandexmap/tmpl/default.php".
4.1. Шаблоны для метки необходимо править в 3-х местах - это создание, редактирование и просмотр.
Предлагаю все вынести в одно место создав функцию на JavaScript возвращающую необходимый шаблон.
Я для себя вынес из переменной $functionText создание JS переменной contentInsertPlacemark и заменил ее там на функцию (Передаю только смысл):
И использую затем вот так (просто минимальные изменения кода):
4.2. Добавлять метки передвигая одну из центра не удобно. Удобно вбить адрес в поиск и с помощью созданного балуна создаем новую метку по шалону как в п.4.1.
Для этого в функцию showAddressByGeocoding добавляем по условию, что пользователь может добавлять метки следующий код (часть старого, чтобы понятно было что и куда):
В идеале еще сделать добавление новой метки по клику на карту, т.е. Нажал на кнопочку, установилось разовое событие на клик карты, чтобы пользователь кликнул на карту и там поставилась новая метка.
1. Не совсемпонятно какие именно будут изменения в новой версии, может что-то уже будет учтено.
2. Ранее я писал, что в joomla используется библиотека mootools - нафиг ее, так как не работают некоторые фичи в firefox 11 (в более ранних версиях не проверял). Надо все-таки использовать ajax.
3. Появилась идея сделать настраиваемыми доп. атрибуты в настройках карты, т.е. создали карты и там редактируем атрибуты и их вывод и редактирование в метках. Необходимы 3 свойства на каждый атрибут (в идеале вообще атрибуты динамическими сделать, но я не об этом): Название поля; Тип поля (если не задан, значит атрибут выключен); Значения по умолчанию/Варианты значений через ";". Тип поля - это input, select, Editable select (прикольная штука делается на базе ajax).
4. В текущий момент есть неудобсва по созданию новых пользовательских меток, см. "/components/com_zhyandexmap/views/zhyandexmap/tmpl/default.php".
4.1. Шаблоны для метки необходимо править в 3-х местах - это создание, редактирование и просмотр.
Предлагаю все вынести в одно место создав функцию на JavaScript возвращающую необходимый шаблон.
Я для себя вынес из переменной $functionText создание JS переменной contentInsertPlacemark и заменил ее там на функцию (Передаю только смысл):
Code:
function contentInsertPlacemark(current) {
var res='Форма для новой метки'+
if (current){';
res += 'lng:'+current.getLng() +
'<br />lat:'+current.getLat();
};
Return res;
}
Code:
$functionText1 = '';
$functionText1 .= 'insertPlacemark.setGeoPoint(current);' ."\n";
$functionText1 .= 'insertPlacemark.setBalloonContent(contentInsertPlacemark(current));'."\n";
//функция contentInsertPlacemark(current) должна быть глобальной, поэтому выносим в начало скрипта
$scripttext = $functionText . $scripttext;
$scripttext .= 'YMaps.Events.observe(insertPlacemark, insertPlacemark.Events.Drag, function (obj) {' ."\n";
$scripttext .= ' var current = obj.getGeoPoint().copy();' ."\n";
$scripttext .= $functionText1;
$scripttext .= '});' ."\n";
Для этого в функцию showAddressByGeocoding добавляем по условию, что пользователь может добавлять метки следующий код (часть старого, чтобы понятно было что и куда):
Code:
$scripttext .= ' geoResult = this.get(0);' ."\n";
$scripttext .= ' geoResult.setOptions({draggable: true});' ."\n";
$scripttext .= ' map.addOverlay(geoResult);' ."\n";
$scripttext .= ' map.setBounds(geoResult.getBounds());' ."\n";
// add route
if (isset($this->item->findroute) && (int)$this->item->findroute == 1)
{
$scripttext .= ' getMyMapRoute(geoResult.getGeoPoint()); '."\n";
}
// end add route
$scripttext .= ' var current = geoResult.getGeoPoint().copy();' ."\n";
$scripttext .= ' geoResult.setBalloonContent(contentInsertPlacemark(current));'."\n";
// Далее еще надо описать события на перетаскивание и открытие балуна, если есть необходимость.
Please Log in or Create an account to join the conversation.
- Dima
- Offline
- Platinum Member
12 years 7 months ago #289
by Dima
Don't forget support my developments: post review in JED , donate , help with translation
Replied by Dima on topic Re: Улучшения компонента
Клик на карте работает.
Если включите Поиск через геокодирование (на свойствах карты Find Control (geocoding))
то сможете искать адрес, и кликая в том месте где хотите ставить метку.
Да, шаблоны надо править для трех случаев, так как они разные.
Дополнительные атрибуты есть, но они не выводятся и не настраиваются. Только обеспечивают ввод со стороны админки. Конструктор пока делать не буду, так как и так много чего другого я хочу реализовать.
Изменения как раз касаются формирования структуры для ввода и изменения и т.п., в том числе уже не будет $functionText
Если включите Поиск через геокодирование (на свойствах карты Find Control (geocoding))
то сможете искать адрес, и кликая в том месте где хотите ставить метку.
Да, шаблоны надо править для трех случаев, так как они разные.
Дополнительные атрибуты есть, но они не выводятся и не настраиваются. Только обеспечивают ввод со стороны админки. Конструктор пока делать не буду, так как и так много чего другого я хочу реализовать.
Изменения как раз касаются формирования структуры для ввода и изменения и т.п., в том числе уже не будет $functionText
Don't forget support my developments: post review in JED , donate , help with translation
Please Log in or Create an account to join the conversation.
- z00m
- Offline
- New Member
Less
More
- Posts: 12
- Thank you received: 0
12 years 7 months ago - 12 years 7 months ago #435
by z00m
Replied by z00m on topic Re: Улучшения компонента
Надеюсь никто не будет против, если я тут продолжу тему улучшений...
Дмитрий, почему бы не сделать так что б при включении "Ввод маркеров пользователями" не отображалось инфо "Вы не вошли в систему" или "Вы вошли в систему как ..."
Ну на крайний случай заключить эти строчки в отдельный див, что б можно было их не отображать при display:none;
В некоторых ситуациях немного лишняя инфа на мой взгляд...
Дмитрий, почему бы не сделать так что б при включении "Ввод маркеров пользователями" не отображалось инфо "Вы не вошли в систему" или "Вы вошли в систему как ..."
Ну на крайний случай заключить эти строчки в отдельный див, что б можно было их не отображать при display:none;
В некоторых ситуациях немного лишняя инфа на мой взгляд...
Last edit: 12 years 7 months ago by z00m.
Please Log in or Create an account to join the conversation.
- z00m
- Offline
- New Member
Less
More
- Posts: 12
- Thank you received: 0
12 years 7 months ago #437
by z00m
Replied by z00m on topic Re: Улучшения компонента
Еще один момент... Если "Управление группами меток" = слева, справа, внизу, вверху, то карта (#YMapsID) и список меток (#YMapsMenu-external) помещаются в таблицу между дивами #YMapInfoHeader и #YMapInfoFooter.
Неплохо было бы добавить в тег <table> параметры: border="0" cellspacing=0 cellpadding=0
А то появляются отступы в 1px.
Неплохо было бы добавить в тег <table> параметры: border="0" cellspacing=0 cellpadding=0
А то появляются отступы в 1px.
Please Log in or Create an account to join the conversation.
- Dima
- Offline
- Platinum Member
12 years 7 months ago #438
by Dima
Don't forget support my developments: post review in JED , donate , help with translation
Replied by Dima on topic Re: Улучшения компонента
Я добавлю класс к тегу таблицы, думаю это решит проблемы, т.к. бордеры тянутся из шаблона
Don't forget support my developments: post review in JED , donate , help with translation
Please Log in or Create an account to join the conversation.
- Dima
- Offline
- Platinum Member
12 years 7 months ago #448
by Dima
После отпуска я буду вносить изменения - создавать некоторые настройки со стороны BackEnd, это и вывод attribute-полей (полей кастомизации) в тело всплавающего окна, так и конфигурирование того, что выводится при вводе пользовательских меток. Сделаю и это.
Don't forget support my developments: post review in JED , donate , help with translation
Replied by Dima on topic Re: Улучшения компонента
z00m wrote: Дмитрий, почему бы не сделать так что б при включении "Ввод маркеров пользователями" не отображалось инфо "Вы не вошли в систему" или "Вы вошли в систему как ..."
Ну на крайний случай заключить эти строчки в отдельный див, что б можно было их не отображать при display:none;
В некоторых ситуациях немного лишняя инфа на мой взгляд...
После отпуска я буду вносить изменения - создавать некоторые настройки со стороны BackEnd, это и вывод attribute-полей (полей кастомизации) в тело всплавающего окна, так и конфигурирование того, что выводится при вводе пользовательских меток. Сделаю и это.
Don't forget support my developments: post review in JED , donate , help with translation
Please Log in or Create an account to join the conversation.
Time to create page: 0.181 seconds