Chcemy na stronie pokazującej dane teleadresowe (korzystającej ze standardowego komponentu Kontakty) umieścić mapkę Google. Jak to zrobić?
1. Zainstalować wybrany dodatek np. Plugin Googlemaps.
2. Skonfigurować go, wpisać wymagany Google API key i włączyć.
3. Wyedytować plik: components/com_contact/views/contact/tmpl/default.php
Zaraz pod wpisem:
Kod PHP:
defined'_JEXEC' ) or die( 'Restricted access' ); 
dodać:
Kod PHP:
$params =& $GLOBALS['mainframe']->getParams('com_content');
$dispatcher       =& JDispatcher::getInstance();
JPluginHelper::importPlugin('content');
$row = new stdClass();
$row->text "{mosmap width='500'|height='400'|lat='52.052312'|lon='4.447141'|zoom='3'| zoomType='Large'|zoomNew='0'|mapType='Satellite'| showMaptype='1'|overview='0'|text='sv DWO'|lang='pl'}";
$row->title "";
$dispatcher->trigger('onPrepareContent', array (&$row, & $params)); 
gdzie "{mosmap width='500'|height='400'|lat='52.052312'|lon='4.44 7141'|zoom='3'| zoomType='Large'|zoomNew='0'|mapType='Satellite'| showMaptype='1'|overview='0'|text='sv DWO'|lang='pl'}" jest przykładowym kodem wywołującym mapkę w artykule.
Pozostaje decyzja w którym miejscu wyświetlić naszą mapę, ja wybrałam miejsce, gdzie pokazywany jest obrazek kontaktu (zamiast niego - w konfiguracji powinno być zaznaczone - pokaż). I tak
Kod PHP:
<?php if ( $this->contact->image && $this->contact->params->get'show_image' ) ) : ?>
<div style="float: right;">
<?php 
//echo JHTML::_('image', 'images/stories' . '/'.$this->contact->image, JText::_( 'Contact' ), array('align' => 'middle')); 
echo $row->text;
?>
 </div>
<?php endif; ?>
gdzie $row->text; jest naszą mapką (wyświetlanie obrazka zostało zakomentowane).
4. Pozostaje tylko tak zmieniony plik zapisać - korzystając z techniki nadpisywania szablonów - jako templates/nasz_szablon/html/com_contact/contact/default.php
5. I już
Pozdrawiam