Автоматический вывод карты Yandex в материалах K2.

  • Maxor
  • Topic Author
  • Offline
  • Junior Member
  • Junior Member
More
12 years 1 week ago #263 by Maxor
Там грубо говоря все данные по объекту разделены на блоки информации, которые собственно и выводятся во вкладках через шаблон. Привожу пример кода шаблона из Sobi2, тут хорошо видно, как выводится информация.
<?php $myTabs = new sobiTabs (false);?>
     <?php $myTabs->startPane("Pane");?>

         <?php $myTabs->startTab("На карте","Tab1"); ?>
  <script src="http://api-maps.yandex.ru/1.1/index.xml?key=AJaXcU0BAAAAFD2USAIABTUuy_Nk8aNpcA5v6ZCBkLokDuMAAAAAAAAAAADaGFNnbeCpoFcmH13Vc-TozC1agG==" type="text/javascript"></script>
  <div id="YMapsID" style="width:100%;height:400px"></div>

    <script type="text/javascript">	
        // Создание обработчика для события window.onLoad
        YMaps.jQuery(function () 
		{
            // Создание экземпляра карты и его привязка к созданному контейнеру
            var map = new YMaps.Map(YMaps.jQuery("#YMapsID")[0]);

            //Добавляем элементы управления.
      map.addControl(new YMaps.TypeControl());//Тип карты, кнопочки Схема, Гибрид, Спутник
      map.addControl(new YMaps.ToolBar());//Тулбар, кнопки Рука, Лупа, Линейка
      map.addControl(new YMaps.Zoom());//Увеличение
      map.addControl(new YMaps.MiniMap());//Миникарта внизу
      map.addControl(new YMaps.ScaleLine());//Шкала увеличения 


// Создание объекта геокодера
            var geocoder = new YMaps.Geocoder("<?php echo $fieldsObjects['field_city']->data ?> <?php echo $fieldsObjects['field_street']->data ?> <?php echo $fieldsObjects['field_house']->data ?>");

            // По завершению геокодирования инициализируем карту первым результатом
            YMaps.Events.observe(geocoder, geocoder.Events.Load, function (geocoder) {
                if (geocoder.length()) {
                    map.setBounds(geocoder.get(0).getBounds());


           // Создание метки с всплывающей подсказкой
                  var placemark = new YMaps.Placemark(map.getCenter(), {hasHint: 1});
                  placemark.name = "<?php echo $mySobi->title; ?>";

                  //var placemark=new YMaps.Placemark(new YMaps.GeoPoint(<?php echo $GeoPos['lat']; ?>, <?php echo $GeoPos['long']; ?>));
 

            // Добавление метки на карту
                  map.addOverlay(placemark);
                  placemark.openBalloon('<div style="text-align:center; "><strong><FONT COLOR="#FF0000"><?php echo $mySobi->title; ?></FONT><br><?php echo "г. " . $fieldsObjects['field_city']->data . ", "?><?php echo $fieldsObjects['field_street']->data; ?></strong></div>');
                  map.enableScrollZoom();
                }
            });
        });
    </script>

</head>

<body>

</body>


  <?php $myTabs->endTab(); ?>

Разница лишь в том, насколько я понимаю, что теперь у них язык XSL используется в шаблонах. Ну поля данных может по-другому в ещё называются.

Please Log in or Create an account to join the conversation.

More
12 years 1 week ago #264 by Dima
Но ведь не вы пишите шаблон, вы просто говорите - вывести карту на закладке, а компонент сам код нужный вставляет.
Не вв же PHP пишите.
Надо подумать, поискать документацию в свободном доступе, может пару примеров как писать.

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.

  • Maxor
  • Topic Author
  • Offline
  • Junior Member
  • Junior Member
More
12 years 1 week ago - 12 years 1 week ago #266 by Maxor
Ну в общем, да... Там прям писать-то не надо. В случае SobiPro есть описаный выше плагин, и система сама его выводит с нужными данными там, где скажут.
Посему и вопрос стоит не в написании нового плагина для SobiPro, а в замене карт в уже существующем на другие.
Думаю, скорее всего плагины на PHP пишутся.
Last edit: 12 years 1 week ago by Maxor.

Please Log in or Create an account to join the conversation.

More
12 years 1 week ago #268 by Dima
Как вариант, попробуйте вывести созданную в компоненте карту моим плагином, или Вы хотите как в том, сразу при вводе контакта

Внести изменения в действующий с гугла на яндекс как уже написал выше думаю не сложно.
Я сужу по тому, что реализовано в моих компонентах (Zh GoogleMap, Zh YandexMap)

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.

  • Maxor
  • Topic Author
  • Offline
  • Junior Member
  • Junior Member
More
12 years 1 week ago #272 by Maxor
Сразу при вводе совсем н обязательно.
Главное, чтобы потом в карточке организации карта во вкладке была для посетителей.

вывести созданную в компоненте карту моим плагином

Который компонент имеется в виду? Ваш?

Please Log in or Create an account to join the conversation.

More
12 years 1 week ago - 12 years 1 week ago #274 by Dima
Да. Создайте карту, поставьте метку. И вызовите плагин по метке.

А пользователю можно будет сказать, тип звать
{zhgooglemap-marker:10}

Это как пример, а Id метки вывести для него

Можно вывести и открыть Infowin
{zhgooglemap-marker:10;placemark;;;;;click}

Don't forget support my developments: post review in JED , donate , help with translation ;)
Last edit: 12 years 1 week ago by Dima.

Please Log in or Create an account to join the conversation.

Time to create page: 0.095 seconds

Donate


Go to top