Как подружить?
в последнее время очень часто задают такие вопросы относительно CMS Joomla и яндекс карт
как вариант - можно воспользоваться модулями либо плагинами, предлагаемыми на различных проектах joomla
но они имеют некоторые недостатки.
Перечислю: 1) невозможно создать несколько разных карт на нескольких (либо одной) страниах сайта.
2) невозможно вставить в тело материала
ну и еще, по мелочи.... Ситуация, конечно, могла уже измениться
Лично я предпочитаю использовать Яндекс карты в joomla, к примеру, просто вставкой непосредственного кода, получаемого с конструктора схем проезда на Яндекс картах в материал Joomla.
Какие могут быть подводные камни (о чем часто спрашивают):
1) joomla при сохранении материала полностью стирает весь код Яндекс карты
Решение:
к примеру, получили следующий код с конструктора Яндекс карт
[code:1q328scw]<!-- Этот блок кода нужно вставить в ту часть страницы, где вы хотите разместить карту (начало) -->
<script src="http://api-maps.yandex.ru/1.1/?тут_ваш_код==&modules=pmap&wizard=constructor" type="text/javascript"></script>
<script type="text/javascript">
YMaps.jQuery(window).load(function () {
var map = new YMaps.Map(YMaps.jQuery("#YMapsID-2024")[0]);
map.setCenter(new YMaps.GeoPoint(40.253664,43.68417), 14, YMaps.MapType.MAP);
map.addControl(new YMaps.Zoom());
map.addControl(new YMaps.ToolBar());
YMaps.MapType.PMAP.getName = function () { return "Народная"; }
map.addControl(new YMaps.TypeControl([
YMaps.MapType.MAP,
YMaps.MapType.SATELLITE,
YMaps.MapType.HYBRID,
YMaps.MapType.PMAP
], [0, 1, 2, 3]));
function createObject (type, point, style, description) {
var allowObjects = ["Placemark", "Polyline", "Polygon"],
index = YMaps.jQuery.inArray( type, allowObjects),
constructor = allowObjects[(index == -1) ? 0 : index];
description = description || "";
var object = new YMaps[constructor](point, {style: style, hasBalloon : !!description});
object.description = description;
return object;
}
});
</script>
<div id="YMapsID-2024" style="width:450px;height:350px"></div>
<div style="width:450px;text-align:right;font-family:Arial"><a href="http://api.yandex.ru/maps/tools/constructor/" style="color:#1A3DC1">Создано с помощью инструментов Яндекс.Карт</a></div>
<!-- Этот блок кода нужно вставить в ту часть страницы, где вы хотите разместить карту (конец) -->[/code:1q328scw]
на этот:
[code:1q328scw]<!-- Этот блок кода нужно вставить в ту часть страницы, где вы хотите разместить карту (начало) -->
<script src="http://api-maps.yandex.ru/1.1/?тут_ваш_код==&modules=pmap&wizard=constructor" type="text/javascript"></script>
<script type="text/javascript">// <![CDATA[
YMaps.jQuery(window).load(function () {
var map = new YMaps.Map(YMaps.jQuery("#YMapsID-2024")[0]);
map.setCenter(new YMaps.GeoPoint(40.253664,43.68417), 14, YMaps.MapType.MAP);
map.addControl(new YMaps.Zoom());
map.addControl(new YMaps.ToolBar());
YMaps.MapType.PMAP.getName = function () { return "Народная"; }
map.addControl(new YMaps.TypeControl([
YMaps.MapType.MAP,
YMaps.MapType.SATELLITE,
YMaps.MapType.HYBRID,
YMaps.MapType.PMAP
], [0, 1, 2, 3]));
function createObject (type, point, style, description) {
var allowObjects = ["Placemark", "Polyline", "Polygon"],
index = YMaps.jQuery.inArray( type, allowObjects),
constructor = allowObjects[(index == -1) ? 0 : index];
description = description || "";
var object = new YMaps[constructor](point, {style: style, hasBalloon : !!description});
object.description = description;
return object;
}
});
// ]]>
</script>
<div id="YMapsID-2024" style="width:450px;height:350px"><!--слой с яндекс картой--></div>
<div style="width:450px;text-align:right;font-family:Arial"><a href="http://api.yandex.ru/maps/tools/constructor/" style="color:#1A3DC1">Создано с помощью инструментов Яндекс.Карт</a></div>
<!-- Этот блок кода нужно вставить в ту часть страницы, где вы хотите разместить карту (конец) -->[/code:1q328scw]
Если не получается - отключите очистку html кода в редакторе joomla при сохранении
Второй вариант - Joomla может стирать только код с картой
тогда необходимо просто добавить в сам слой небольшой комментарий (на странице он отображаться не будет)
к примеру, сделать так:
[code:1q328scw]<div id="YMapsID-2024" style="width:450px;height:350px"><!--слой с яндекс картой--></div>[/code:1q328scw]
ширину и высоту слоя с картой Вы можете указать свою - хоть в пикселях, хоть в процентах...
будут вопросы - пишите


