Zobacz pełną wersję : Kontakty - w dodatkowych informacjach - prosta galeria
Chciałbym w standardowym komponencie Kontakty w szczegółach Kontaktu wyświetlać kilka zdjęć jako prosta galeria lub popup.
Użycie rozwiązania {loadposition} nie działa.
Czy ktoś ma jakieś rozwiązanie?
pawelSafiStudio
20-05-2013, 19:18
Pytanie czy jesteś w stanie zmodyfikować trochę kod Joomla! ? Możesz "zmusić" intro kontaktu do korzystania z pluginów. Wówczas Simple Image Gallery byłoby dobrym rozwiązaniem.
Jeżeli podasz mi co trzeba zmodyfikowac to spróbuję.
Robie to na 3.1.1.
pawelSafiStudio
21-05-2013, 22:03
Musisz wymusić załadowanie pluginów do opisu kontaktu. Trochę na siłę ale zadziała :) Wejdź sobie do pliku /components/com_contact/models/contact.php następnie od linijki ok 214 dodajesz sobie taki kod:
$this->_item[$pk] = $data; // to jest już w Joomla!, dodajesz natomiast to co poniżej
// import content plugins
$dispatcher = JEventDispatcher::getInstance();
JPluginHelper::importPlugin('content');
$item = new stdClass();
$item->title = '';
$item->text = $this->_item[$pk]->misc;
$params = new stdClass();
$results = $dispatcher->trigger('onContentPrepare', array ('com_content.article', &$item, &$params, 0));
$this->_item[$pk]->misc = $item->text;
// end
Jak dodasz ten kod {loadposition} powinno już zadziałać :)
ten kod co @pawelSafiStudio możesz też wywołać w nadpisywaniu szablonu kontaktu w swoim szablonie:
templates/twoj_szablon/com_contact/contact/default.php
i zamieniasz tylko nazwy z:
$this->_item[$pk]
na:
$this->contact
o tyle jest to lepsze rozwiązanie że przy aktualizacji joomla Ci tego nie nadpiszę.
pawelSafiStudio (http://forum.joomla.pl/member.php?30903-pawelSafiStudio) : Dziękuję bardzo - ten sposób działa!
Bati: nie za bardzo rozumiem. w szablonie nie mam com_contact.
Czy mam go skopiować do templates/moj_szblon?
Nie mam też contact/default.php w com_contact.
Tak nadpisywanie na tym polega
Skopiuj z:
components/com_contact/contact/default.php
Doi:
templates/moj_szablon/html/com_contact/contact/default.php
Kopiujesz plik default.php i tworzysz foldery w swoim szablonie.
pawelSafiStudio
23-05-2013, 13:43
@Bati sprawdź proszę ścieżkę pliku zanim ją podasz. Chyba gdzieś Ci umknął folder z widokami.
components\com_contact\views\contact\tmpl\default. php
@pawelSafiStudi masz rację przepraszam, musiałem dostać zaćmienia że nie napisałem o katalogu views i tmpl :)
Dziękuję, działa.
A czy możliwe aby działały pluginy np. Simple Image Gallery?
Bo ten mi nie chce działać.
@rudy jest tak możliwość, tylko musisz sprawdzić jaki Simple Image Gallery używa zdarzenia i jakie opcje są mu potrzebne aby zadziałał oraz czy jego typ to "system" czy "content" :)
A później wszystko w taki sam sposób jak podał Ci @pawelSafiStudio.
Sam dodatek w artykułach działa.
Typ jest Content
Błąd pojawia się następujący jeżeli w szczegółach Kontaktu wstawię kod do galerii:
Fatal error: Call to undefined method stdClass::get() in /home/omk/ftp/ZPAP/plugins/content/jw_sig/jw_sig.php on line 125
Jak sprawdzić zdarzenia, których używa dodatek i co moge z nimi zrobić?
Błąd mówi że klasa stdClass nie ma metody get to prawa. Użyć klasy JObject do przesłania parametrów do pluginu. I wszystko tak jak poprzednio.
A czy da się to opisać prosto, dla kogos kto nie ma wiedzy o tych metodach, klasach itd.?
Ciężko coś pisać jak się nie widzi kodu.
zmień:
$item = new stdClass();
na:
$item = new JObject();
pawelSafiStudio
03-06-2013, 17:41
@Bati dobrze napisałeś, tylko co by nie mylić @rudy trochę skoryguję :) @Bati miał na myśli zamianę typu zmiennej $params zamiast $item.
@pawelSafiStudio zawsze dobrze poprawi, w sumie nic się nie stanie jeżeli użyjesz tej klasy w $params i $items. JObject to świetna klasa, warto się z niej nauczyć korzystać.
czy taki sam kod mam dopisać dla j 2.5.11?
A my tutaj cały czas nie rozmawiamy o Joomla! 2.5.x ?
Ten kod też zadziała na Joomla! 3.x
Musisz wymusić załadowanie pluginów do opisu kontaktu. Trochę na siłę ale zadziała :) Wejdź sobie do pliku /components/com_contact/models/contact.php następnie od linijki ok 214 dodajesz sobie taki kod:
$this->_item[$pk] = $data; // to jest już w Joomla!, dodajesz natomiast to co poniżej
// import content plugins
$dispatcher = JEventDispatcher::getInstance();
JPluginHelper::importPlugin('content');
$item = new stdClass();
$item->title = '';
$item->text = $this->_item[$pk]->misc;
$params = new stdClass();
$results = $dispatcher->trigger('onContentPrepare', array ('com_content.article', &$item, &$params, 0));
$this->_item[$pk]->misc = $item->text;
// end
Jak dodasz ten kod {loadposition} powinno już zadziałać :)
To zadziałało w j.3.1.1 na loadposition i loadmodule.
Ale w 2.5.11 pojawia się
Fatal error: Cannot redeclare class JDispatcher in /home/omk/ftp/zpap2/libraries/joomla/event/dispatcher.php on line 279
Jak poszperał być w Joomla 3.x to byś się dowiedział że klasa JEventDispatcher jest od tej właśnie Joomla. A wcześniej było JDispatcher, które działa dla Joomla 2.5.x oraz dla 3.x lecz jest oznaczona jako "przestarzała" :)
Dla jeszcze mniej wtajemniczonych w klasy niż ja wyjaśniam, że trzeba w kodzie który należy wkleić zamienić linijkę
$dispatcher = JEventDispatcher::getInstance();
na
$dispatcher = JDispatcher::getInstance();
Działa, pięknie wkleja i moduły i galerie.
Dziękuję,
- - - Updated - - -
ten kod co @pawelSafiStudio możesz też wywołać w nadpisywaniu szablonu kontaktu w swoim szablonie:
templates/twoj_szablon/com_contact/contact/default.php
i zamieniasz tylko nazwy z:
$this->_item[$pk]
na:
$this->contact
o tyle jest to lepsze rozwiązanie że przy aktualizacji joomla Ci tego nie nadpiszę.
ale z tym sposobem sobie nie moge poradzić.
Mam skopiować: components\com_contact\views\contact\tmpl\default. php
do :
templates/moj_szablon/html/com_contact/contact/default.php?
I co dalej? też tam wkleic kod co podał pawelSafiStudio (http://forum.joomla.pl/member.php?30903-pawelSafiStudio)?
pawelSafiStudio
06-06-2013, 07:55
Tak, tylko musisz pamiętać aby podmienić to na czym chcesz wywołać trigger. Wcześniej pobierałeś dane z $this->_item[$pk]. Natomiast w widoku kontaktu odwołujesz się już do $this->contact.
Btw. ja ze swojej strony, radziłbym jednak wywoływać to po stronie modelu co by zachować MCV. Oczywiście należy pamiętać o tej modyfikacji przy aktualizacjach :)
Witam,
wszystko to działa. A nie łatwiej i szybciej tak:
w pliku default kontaktu
wywołać moduł
echo JHtml::_('content.prepare', '{loadmodule mod_login}', '', 'com_contact.contact');
lub pozycję modułu
echo JHtml::_('content.prepare', '{loadposition position-0}', '', 'com_contact.contact');
i już :)
@Jola chylę czoło :) i głęboko zapisuje sobie tą opcję w głowie. Mistrz :)
Czerniejewski
12-01-2014, 23:10
Witam. Jestem amatorem "webmasterem". Robię stronkę dla mojej dziewczyny w joomla 2,5 i nie mogę wstawić mapki do komponentu kontaktu. Wyedytowałem plik: components/com_contact/views/contact/tmpl/default.php.
Wklejam tam (losowo bo nie mam pojęcia gdzie) :echo JHtml::_('content.prepare', '{loadmodule mod_bt_googlemaps}', '', 'com_contact.contact'); : ale nic się nie dzieje:(
Może mi ktoś pomóc? Pozdrawiam
Ireneusz
Witam,
sprawdź czy Twój szablon nie nadpisuje szablonu kontaktu, tzn. czy masz plik templates/twoj_szablon/html/com_contact/contact/default.php
Jeśli tak - tam wprowadź zmiany i poczytaj o nadpisywaniu szablonem (przyda się) :)
Czerniejewski
13-01-2014, 11:40
Sprawdziłem. Nie mam takiego pliku. Poza tym na zdjeciu ponizej widac ze kod sie pokazuje ale nie ma efektu. Niestety jezeli chodzi o joomla to jako tako radze sobie z zarzadzaniem trescia i całą resztą ale jak wspomniałem nie jestem informatykiem. Kod html itp to dla mnie czarna magia... Cos robie nie tak tylko co?
7237
A napisałeś, że nic się nie dzieje!
Wklejasz kod PHP do HTML bez informacji, że to PHP.
Wpisz:
<?php echo JHtml::_('content.prepare', '{loadmodule mod_bt_googlemaps}', '', 'com_contact.contact'); ?>
Czerniejewski
14-01-2014, 22:17
Działa!!! Tzn. mod bt google maps akurat nie działa (tylko tytuł się ukazuje) nie wiedziec czemu, ale jak wpisze nazwe innego moda to się pojawia działający także coś nie tak z bt. Będę go konfigurował i może zaskoczy. Wielkie dzięki Jolu!!!
vBulletin® v4.2.5, Prawa przedruku © 2024 vBulletin Solutions, Inc. Wszystkie prawa zastrzeżone.
Tłumaczenie: Polskie Centrum Joomla!