BBCode Яндекс Карты для phpbb

Небольшая статья на тему как сделать пользовательский BBCode для отображения Яндекс Карты на своем phpbb форуме. К сожалению, сервис карт от Google не позволяет реализовать удобный BBCode. Пользователю пришлось бы вставлять в сообщение значение атрибута src тега iframe для встраивания Google-карты на сайт. Решение для Яндекс Карт, в отличие от карт Google, — имеет более дружественный «интерфейс». Все, что потребуется от пользователя — вставить ссылку, генерируемую Конструктором карт Яндекса.

Что нам понадобится?

Прежде всего, перейдите на страницу Конструктора карт от Яндекса и добавьте свою карту. Далее кликаем «Сохранить карту и получить ссылку». В блоке «Ссылка на Яндекс Карты» появится нужная нам ссылка.

Добавляем BBCode

Перейдите в панель администратора Вашего phpbb-форума. Далее вкладка Сообщения -> BBCodes. Внизу страницы кликаем на кнопку «Добавить BBCode». Ниже привожу значения полей.

Использование BBCode
[yandexmaps]{URL}[/yandexmaps]
Замена HTML
<div>
<script type="text/javascript">
var url = '{URL}';
var i = url.indexOf('constructor:')+12;
url = url.substr(i);
url = url.replace('&amp;source=constructor','');
url = 'https://api-maps.yandex.ru/services/constructor/1.0/js/?sid='+url+'&width=320&height=280&lang=ru_RU&sourceType=constructor&scroll=true';
var e = document.createElement('script');
e.async = true;
e.src = url;
var currentScript = document.currentScript || (function() {
var scripts = document.getElementsByTagName('script');
return scripts[scripts.length - 1];
})();
currentScript.parentNode.appendChild(e);
</script>
</div>
Подсказка
[yandexmaps]Ссылка_на_карту[/yandexmaps]

Итог

Данный скрипт позволяет легко и удобно встроить мини-карту от Яндекса на Ваш форум. Хочу заметить, что скрипт гарантирует 100% безопасность для Вашего форума. Разумеется, скрипт можно доработать. К примеру, определить переменные width и height отображаемой карты. Эти параметры можно задавать с помощью лексем {NUMBER1} и {NUMBER2} внутри BBCode. Если у Вас возникли какие-то замечания или предложения — просьба оставлять комментарии. Лайк ставим обязательно! =)

Понравилась запись? Ставь лайк!
  • Светлана Севастьянова

    Не работает (( Можете подправить замену для html?

    • Admin

      Подправил. Должно работать теперь.

      • Светлана Севастьянова

        но не работает… ни одна из ссылок («Получить код карты» или «Ссылка на карту» — не работают.) В получить код карты, там вообще весь скрипт отображается, как-то не пойму каким образом его вставлять в BB-коды 😉 Можете сами потестировать на своем форуме, чтобы было не «должно работать», а «работает»?

        • Admin

          Я правил не подсказку, а сам код. Должно было работать и тогда. Поправил еще раз код. Теперь все работает. Скорее всего, проблема в браузере, которым Вы пользуетесь. Нашел информацию по этому поводу и добавил немного кода.

          Могли бы написать, каким браузером пользуетесь? Протестировал код на Chrome и Safari — все работает.

          • Светлана Севастьянова

            Огромное Вам спасибо! Теперь все работает ))) У меня хром и яндекс, но для проверки нет мозилы и оперы, но они есть у пользователей. Если Вас не сильно затруднит, могли бы проверить отображение карт в этих браузерах (мозила и опера)?

          • Admin

            Незачто!) Проверил — все работает!

          • Светлана Севастьянова

            Спасибо! Это отлично! 🙂

Loading more content...