Mam straszny dylemat.
Otóż zainstalowałem dwa komponenty - DJcatalog i jeden - forma slideshow
Problem polega na tym, że w DJcatalog wykorzystywana jest biblioteka mootools (bodajże) a chcę skorzystać ze slimboxa.
Za diabła nie wiem, gdzie umiejscowiona jest ścieżka do pliku javascriptowego, żeby zamienić
Wklejanie w indexie nie wiele daje, bo sie gryzą i nie ma efektu wogóle.
Oddam wszystko za informację skąd jdoc:include type="head" pobiera sobie informacje typu ścieżka do pliku
Bardzo proszę o pomoc - siedzę dziś przy tym od 20, a godzina jest jak widać :)
No i z góry wielkie, ogromne dzięki :)
malkowitch
29-09-2009, 13:38
$doc =& JFactory::getDocument();
$head = $doc->getHeadData();
Jak już pozmieniasz tablicę $head
Zapisz tak zmienioną tablicę
$doc->setHeadData($head);
Powinno działać ale nie daję głowy.
Opis klasy JDocument (zmiennej $doc):
http://api.joomla.org/Joomla-Framework/Document/JDocument.html
Batgraf
29-09-2009, 13:58
Dzięki :)
Z tym, że nie przybliżyło mnie to bardziej :) Nie wiem w którym pliku szukać tablicy odpowiedzialnej za wyświetlanie (generowanie) tej części head.
Jak to w ogóle działa?
Nie można odnaleźć samej ściezki dostepu do mootools, która "wbudowuje" się w head na podstronie, gzie pokazuje się DJcatalog? Bo tylko to mi psuje szyk
POróbowałem wyrzucić jdoc z indexu i wstawić "ręcznie" ścieżki do potrzebnych bibliotek, ale problem jest taki, że joomla np do validacji formularza ma podpiętą swoją bibliotekę mootools.js, a slimbox ma swoją, no i się gryzie.
Rany - duże piwo za pomoc w rozwiązaniu problemu :)
Tylko na jednej podstronie chcę efekt lightboxa, slimboxa lub czegoś podobnego - chodzi o przełączanie na kolejne obrazki. Mootools, które jest, nie ma tej opcji :|
malkowitch
29-09-2009, 14:02
Najprawdopodobniej DJCatalog wrzuca gdzieś w plikach typu:
view.html.php lub
w plikach znakdujących się w katalogu view/tmpl/ każdego widoku.
To co Ci podałem pozwala Ci edytować/Dodawać zawartość skryptów head.
podejrzeć sobie wygląd head np. var_dump($head) i zobacz jak jest zbudowane.
Batgraf
29-09-2009, 14:08
Poszukam w samych plikach, bo dotąd przejrzałem tylko po nazwach. Myślałem, że jest coś w formie pętli, która sprawdza warunki i wg tego wyświetla tą część head.
To co Ci podałem pozwala Ci edytować/Dodawać zawartość skryptów head.
podejrzeć sobie wygląd head np. var_dump($head) i zobacz jak jest zbudowane.
To byłoby najlepsze, ale za cieniutki w uszach jestem, żebym dał sobie radę wg tych wskazówek :) Wiem co to tablica itd, ale niedużo mi to mówi. Choć najprawdopodobiej dobra wskazówka. Moja wiedza jest niedobra :]
Jola
29-09-2009, 15:16
Witam,
skrypty js, css i inne są dodawane do sekcji head z poziomu dodatków za pomocą polecenia:
$mainframe->addCustomHeadTag($header);gdzie $header jest przykładowo takie:
To są funkcje potomne starej Joomla.
Jeśli komponent był pisane dla 1.5 w MVC możliwe, że korzystał już z nowych funkcji tzn. funkcji klasy JDocument:
http://api.joomla.org/Joomla-Framework/Document/JDocument.html
A JCatalog pojawił się chyba stosunkowo nie dawno (z tego co pamiętam chyba nawet od polaków)
Np.
$doc->addStyleSheet()
lub
$doc->addScript()
i tym podobnych.
Batgraf
29-09-2009, 15:33
Pierdoła jestem. Nie moge namierzyć tego $mainframe->addCustomHeadTag($header);
Przeszukuję Dreamveawerem cały katalog więc powinno znaleźć, ale ni ma :|
Dobra, zrobię nieprofesjonalnie - skopiuję ścieżki z każdej podstrony i wstawię na sztywno, tylko formularz kontaktowy korzysta z biblioteki mootools.js, więc z nim będe miał problem, ale poszukam innego lub wstawię swój.
Najgorsze to to, że wystepują tu dwie mootools.js i sie gryzą :)
Jedna wstawiona w joomli druga w djcatalog. Myślałem, żeby je porównac i uzupełnić - czyli zrobić jedną z dwóch, ale się nie da.
Dzieki tak czy inaczej za pomoc :)
Jola
29-09-2009, 15:35
@malkowitch - zgadza się. Moga pojawić się różne funkcje.
Rozwiązaniem będzie przeszukanie plików pod kątem wystapienia: mootools
malkowitch
29-09-2009, 15:40
Ja bym się bawił nadal w czyszczenie tablicy $head w sposób podany na poczatku. Wten sposób masz zawsze pewność, że się nie powtórza błędy.
Robisz pętlę przeszukującą tabelę.
podejrzyj te head funkcją var_dump($head) a zobaczysz, że się wiecej rozjaści. Ta funckja pokaże Ci strukturę ten tablicy i będziesz widział co się dubluje co trzeba usunąć. A działania na tablicach znajdziesz choćby na php.net
Batgraf
29-09-2009, 15:42
a taka mała pierdołka :)
Chcę, żeby zdjęcia na tej stronie http://www.thevintagefayre.com/index.php?option=com_djcatalog&view=show&cid=0&Itemid=54 wyświetlały się z efektem lightboxa - slimbox czy inne, ale z guzikiem "dalej" "następne" :)
Joomla to bardzo fajne narzedzie, ale jednak pisanie strony od podstaw chyba jest lepsze. No, chyba, że zna się dobrze joomlę, a jest fajna z tego co widzę
Batgraf
29-09-2009, 15:44
własnie w tym problem, że nie mogę znaleźć w plikach var_dump($head)a wydaje mi się, że szukam dokładnie
Pytanie odbite od wszystkiego - jest jakiś dobry moduł formularza kontaktowego z walidacją?
malkowitch
29-09-2009, 15:50
podeślij mi na PW te wynik var_dump()
koniecznie na podstrony w której dubluje się mootools.
To music być na początku szablonu (pliku /templates/nazwaszablonu/index.php)
Następnie wpisujesz w przeglądarce adres podstrony na której wyskoczył błąd i podajesz mi to co wyskoczy lub link.
Inaczej nie zostanie zainicjowany komponent i nie doda tych linków.
Batgraf
29-09-2009, 17:15
fajnie, odpisałem Ci w zuopełnie innym temacie :) i czekam jak głupi :)
tak narobiłem:
1. wszedłem na podstronę z katalogiem (w tej chciałbym usunąć mootolls)
2. na samym początku index.php templatki (ja_purity) wkleiłem tą instrukcję, która podałeś, zapisałem i odświezyłem podstronę.
To jej adres, będzie łatwiej czytać niżbym wkleił tutaj
$$('a.modal').each(function(el) {
el.addEvent('click', function(e) {
new Event(e).stop();
SqueezeBox.fromElement(el);
});
});
});"
}
na ścieżkę do biblioteki mootools tego slimboxa i do slimbox.js
Batgraf
29-09-2009, 17:34
tu jest cały kod. Będę dłubał przy stronie dalej, wiec na razie zakomentuję ten dump