DEMETR Создание сайтов в Казани

Опубликовано

Google maps в контактах Joomla

Google maps в контактах JoomlaПри очередном заказе столкнулся со следующей задачей: необходимо вставить в страницу контактов Joomla карту используя Google Maps. Было два способа: прописать вывод карты в коде файла default_form.php, переопределив стандартный вывод, либо сделать что-то универсальное.

Остановился на универсальном, таким образом заказчик сможет в любой момент изменить карту и ее размеры, а может и вообще скрыть, при этом ему не придется обращаться ко мне.

Для работы нужны два файла:

  1. \administrator\components\com_contact\contact_items.xml
  2. \templates\ваш_шаблон\html\com_contact\contact\default_form.php (если нет такого, создаем сохраняя данную иерархию)

Начинаем редактировать первый файл. В нем мы пропишем три дополнительных настройки, которые нужны для показа карты. Заполнить их можно будет в административной части сайта. Открываем файл и видим там кучу параметров, структура следующая:

<params>
  <param name="testparam" type="text" default="" label="Тестовый параметр" description="Подсказка" />
</params>

Вставляем три своих параметра после params:

   <param name="map" type="textarea" default="" label="Ссылка на карту" description="" rows="10" cols="40" />
   <param name="map-width" type="text" default="425" label="Ширина карты" size="5" description="" />
   <param name="map-height" type="text" default="425" label="Высота карты" size="5" description="" />

С этим файлом закончили, переходим к default_form.php и вставляем в нужном месте (до или после формы обратной связи) следующий код:

<iframe width="<?echo $this->params->get('map-width');?>"
height="<?echo $this->params->get('map-height');?>"
frameborder="0" scrolling="no" marginheight="0"
marginwidth="0"
src="<?echo $this->params->get('map');?>&amp;output=embed">
</iframe>

Теперь прописав в контактах ссылку на карту, ширину и высоту, можно увидеть на странице контактов карту. Идем дальше, если вдруг мы решим скрыть карту, то надо заранее позаботиться об этом.

Прописываем еще один параметр:

<param name="show_map" type="radio" default="1" label="Показать карту" description="">
   <option value="0">Скрыть</option>
   <option value="1">Показать</option>
</param>

И перед выводом карты ставим условие:

<? if($this->params->get('show_map')==1) { ?>
<iframe width="<? echo $this->params->get('map-width');?>"
height="<? echo $this->params->get('map-height');?>"
frameborder="0" scrolling="no" marginheight="0"
marginwidth="0"
src="<? echo $this->params->get('map');?>&amp;output=embed">
</iframe>
<? } ?>

Google maps в контактах Joomla: 30 комментариев

  • qwerty — 12.04.2011 в 11:25 #

    Привет, сделала как описал, но когда вставляю код с конструктора схем проезда, даже при отключенном редакторе код обрезается, карты не выводиться.
    Подскажи еще пожалуйста как саму карту вывести в самом конце, под телефоном, адресом и пр.

  • Demetr — 12.04.2011 в 14:25 #

    Вы куда вставляете то? После всех операций, у вас в правой части настройки контактов появится текстовое поле, где никакой (даже включенный) визуальный редактор не работает.

  • Demetr — 12.04.2011 в 14:29 #

    Добавил изображение в статью, чтобы было видно куда надо вставлять ссылку с карты.

  • qwerty — 12.04.2011 в 14:51 #

    Так и делала, но только вставляла код яндекс карт, после сохранения код исчезает, остаются только комментарии к нему.

  • Demetr — 12.04.2011 в 14:53 #

    У Яндекса это по другому делается, а в статье про гугл карты шла речь.

  • Максим — 03.05.2011 в 14:15 #

    Спасибо за информацию все получилось

  • Demetr — 03.05.2011 в 18:12 #

    Судя по вашему сайту, ничего не получилось у вас.

  • Максим — 03.05.2011 в 18:15 #

    Делал на другом сайте http://www.tm-fenix.ru/contacts

  • Demetr — 03.05.2011 в 18:16 #

    Тогда извиняюсь. Все хорошо.

  • Георгий — 06.06.2011 в 18:59 #

    \administrator\components\com_contact\contact_items.xml
    вставляю:

    В /administrator/index.php?option=com_contact&task=edit&cid[]=1
    Получаю
    Параметры контакта
    There are no Parameters for this item

  • Demetr — 06.06.2011 в 19:02 #

    Код ваш обрезался, непонятно что вы вставляете.
    В contact_items.xml
    между
    парамс

    /парамс

    Нужно вставить код для отображения доп.параметров в админке.

  • Demetr — 06.06.2011 в 19:06 #

    Я вам на мейл напишу сейчас.

  • Георгий — 06.06.2011 в 19:07 #

    Если можно, напишите мне на почту!, не могу в форму вставлять код, в принципе копирую из окна и добавляю между тегов

  • Георгий — 06.06.2011 в 20:21 #

    label=»Ссылка на карту»
    label=»Ширина карты»
    label=»Высота карты»

    Удалил русский текст

    label=»»
    label=»»
    label=»» Появилась карта в админке, борюсь далее, чтоб получить её на странице контактов, второй код вставил в созданный путь= templates\a216\html\com_contact\contact\default_form.php
    default_form.php Создал вручную, кинул туда код, Карты пока нет! юзую по джумле, смотрю чё не так сделал!

  • Demetr — 06.06.2011 в 20:43 #

    Для редактирования файлов рекомендую Notepad++, там можно выбрать кодировку, в которой будет сохранен файл. Я всегда выбираю UTF-8 (без boom), и с русским текстом все в порядке.
    По второй ошибке скорее всего, потому что у вас нет файла default.php в той же папке где и default_form.php

    Лучше скачайте беспл.шаблон ja_purity_ii, вот там образцовая папка html, заодно и контент более адекватно будет выводиться.

  • Георгий — 06.06.2011 в 23:04 #

    Да! Вы совершенно правы, глюк именно шаблона установил joomla шаблон и всё заработало, перепрыгнул на старый и старый стал работать, правда на старом перестала работать форма отправки писем. Спасибо за консультации!!!

  • Demetr — 07.06.2011 в 12:11 #

    Рад был помочь.

  • Линда — 14.06.2011 в 15:19 #

    Подскажите, пожалуйста, как взять ссылку на карту google? Я когда захожу на google.ru/maps, он мне только город выдает. А как сделать чтобы адрес был?

  • Demetr — 14.06.2011 в 15:25 #

    Заходите по своей ссылке. Вводите нужный адрес (город, улица, дом) потом слева вверху будет кнопка «Ссылка», жмете ее и копируете урл своего адреса.
    1

  • Линда — 14.06.2011 в 15:45 #

    Он мне пишет. Не удалось найти адрес:
    Уфа, Айская, 78

    Возможно, вы хотите:

    Показать на карте: город Уфа
    Найти компании, соответствующие запросу Айская, 78, рядом с: город Уфа

  • Demetr — 14.06.2011 в 15:48 #

    Ну значит гугл не знает вашего адреса. Увы, я тут бессилен.

  • Линда — 14.06.2011 в 15:48 #

    Все равно спасибо! Эх гугль-кугль:)

  • Сергей — 07.03.2012 в 17:39 #

    Карта то работает, но все шрифиы в контактах расползлись. Подскажите, в чём проблема ?

  • Demetr — 07.03.2012 в 17:47 #

    Покажите скрин. Как я могу не глядя подсказать

  • vasso — 12.03.2012 в 22:09 #

    Вставляем три своих параметра после params:

    в какие парамс. там их милион? нужно ли код изменять? дописывать. или так конкретно вставить?

    Скрыть
    Показать

  • Demetr — 12.03.2012 в 22:45 #

    В первые попавшиеся вставьте, так эти настройки будут выше в списке.

  • Александр — 03.04.2012 в 23:58 #

    Подскажите, сейчас я нахожусь на такой стадии. Добавил код с данными ПАРАМ в файл contact_items.xml — в параметрах модуля com_contact появились параметры для управления данными карты.
    Но с РНРшным кодом у меня проблемы. Изначально файл \templates\ваш_шаблон\html\com_contact\contact\default_form.php у меня отсутствовал. Я его создал соблюдая вложенность папок. В созданном файле добавил код:

    <iframe width="params->get(‘map-width’);?>»
    height=»params->get(‘map-height’);?>»
    frameborder=»0″ scrolling=»no» marginheight=»0″
    marginwidth=»0″
    src=»params->get(‘map’);?>&output=embed»>

    После этого у меня пропала форма обратной связи, но начала выводиться карта. Видимо мне все же надо найти правильный файл, куда надо вставлять этот код, после кода вывода формы обратной связи.

    Сорри, но в какой файл надо вставлять код:

    params->get(‘show_map’)==1) { ?>
    <iframe width="params->get(‘map-width’);?>»
    height=»params->get(‘map-height’);?>»
    frameborder=»0″ scrolling=»no» marginheight=»0″
    marginwidth=»0″
    src=»params->get(‘map’);?>&output=embed»>

    я так и не понял 🙁

  • Demetr — 04.04.2012 в 10:31 #

    Код вы вставили правильно. Смотрите какая ситуация. Файл default_form.php перекрывает стандартный файл, который выводит форму контактов. Т.е. делаем мы этого только для нашего шаблона, не трогая системных файлов.

    Возьмите файлы default.php, default_form.php из каталога components\com_contact\views\contact\tmpl\. Положите их в свою папку с шаблоном \templates\ваш_шаблон\html\com_contact\contact\

    И теперь вставляйте код для карты в файл default_form.php

  • Александр — 04.04.2012 в 15:35 #

    Большое спасибо, все получилось.
    Но я все же блок, который указан последним в Вашей статье, никуда не вставлял. Этот блок:
    И перед выводом карты ставим условие:
    params->get(‘show_map’)==1) { ?>
    <iframe width="params->get(‘map-width’);?>»
    height=»params->get(‘map-height’);?>»
    frameborder=»0″ scrolling=»no» marginheight=»0″
    marginwidth=»0″
    src=»params->get(‘map’);?>&output=embed»>

  • fil — 26.04.2012 в 03:54 #

    Блин… Спасибо огромное 🙂