Вставлять JavaScript-счетчики и прочие небольшие JavaScript-скрипты в NetCat можно как в макеты дизайна, так и в компоненты.
При этом, как это заведено в NetCat, спецсимволы типа » и $ необходимо экранировать обратным \.
В данной заметке описаны методы вставки Яндекс.Карт (отличия от Карт.Гугл конечно минимальны просто поддерживаем отечественного производителя) в компонент «Адреса компании» CMS NetCat.
Как выше уже говорилось JavaScript-код можно вставить как в макет дизайна так и в компонент, однако бывают случаи когда такой метод не является гибким. Например, в разделе «Адрес компании» у нас имеется несколько объектов с разными адресами.
Сравним варианты интеграции карты в компонент.
1. Вставляем код вызова карты в поле «Объкт в списке» компонента «Адреса компании»:
".opt( $f_RowID==1 && $current_sub[Subdivision_Name] == 'Адрес компании', "<script src='http://api-maps.yandex.ru/1.1/index.xml?key=AILai0sBAAAAq3GRIQIAL59rrsrOlgSL5VV301v-_3ieHXwAAAAAAAAAAABc7lc6VJHC4Xh48kmX22O6Lniamw==' type='text/javascript'></script> <script type='text/javascript'> window.onload = function () { var map = new YMaps.Map(document.getElementById('YMapsID')); map.setCenter(new YMaps.GeoPoint(37.609218,55.753559), 16); map.addControl(new YMaps.TypeControl()); map.addControl(new YMaps.ToolBar()); map.addControl(new YMaps.Zoom()); var placemark = new YMaps.Placemark(new YMaps.GeoPoint(37.609218,55.753559)); placemark.setIconContent('г. Москва'); placemark.name = 'г. Москва'; placemark.description = 'г. Москва'; map.addOverlay(placemark); } </script> <div id='YMapsID' style='width:340px;height:260px;'></div>" )." |
Таким образом для первого объекта в разделе ($f_RowID==1) в разделе Адрес компании ($current_sub[Subdivision_Name] == 'Адрес компании') мы выводим карту. То есть если понадобится вывести карту для второго объекта придется заново вызывать код формирования карты прямо в компоненте либо придумывать обходные решения вставки нескольких карт, что не является логичным решением имея ввиду гибкий функционал компонентов в NetCat.
2. Я имею ввиду возможность записать код вызова карты в созданное для этого в компоненте текстовое поле с включенной настройкой «разрешать HTML-теги».