PDA

Zobacz pełną wersję : jdoc:include type="head" - skąd pobiera informacje



Batgraf
29-09-2009, 03:08
Witajcie :)

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:

$header .= '<link rel="stylesheet" href="'.JURI::root(true).'/components/com_morfeoshow/style/style.css" /> ';Przeszukaj pliki pod kątem wystapienia: $mainframe->addCustomHeadTag

malkowitch
29-09-2009, 15:24
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.

Batgraf
29-09-2009, 15:55
oj, chetnie, tylko jak zrobić wynik var_dump() ?

malkowitch
29-09-2009, 16:05
wrzucasz w index.php teojej tempaltki costakiego:



$doc=& JFactory::getDocument();
$head = $doc->getHeadData();

var_dump($head);
die();


Powinien wyskoczyć Ci tylko wynik var_dump();
W przeglądarce skopiuj źródło tego co Ci pokazano i podeślij mi.

Batgraf
29-09-2009, 16:09
Dzieki za cierpliwość:)

Dałem to na samym początku http://www.thevintagefayre.com/index.php - nie wyciąłem tego, dlatego podaję link i wynik:


array(10) {
["title"]=>
string(3) "..."
["description"]=>
string(33) "Giełda Staroci The Vintage Fayre"
["link"]=>
string(0) ""
["metaTags"]=>
array(2) {
["http-equiv"]=>
array(1) {
["content-type"]=>
string(24) "text/html; charset=utf-8"
}
["standard"]=>
array(2) {
["robots"]=>
string(13) "index, follow"
["keywords"]=>
string(133) "antyki, srebro, obrazy, zegary, starocie, stare meble, stare ramy, platery, antykwariat, zabytki, szklo, porcelana, malarstwo, sztuka"
}
}
["links"]=>
array(2) {
[0]=>
string(107) "<link href="/index.php?format=feed&amp;type=rss (http://forum.joomla.pl/view-source:http://www.thevintagefayre.com/index.php?format=feed&type=rss)" rel="alternate" type="application/rss+xml" title="RSS 2.0""
[1]=>
string(110) "<link href="/index.php?format=feed&amp;type=atom (http://forum.joomla.pl/view-source:http://www.thevintagefayre.com/index.php?format=feed&type=atom)" rel="alternate" type="application/atom+xml" title="Atom 1.0""
}
["styleSheets"]=>
array(0) {
}
["style"]=>
array(0) {
}
["scripts"]=>
array(2) {
["/media/system/js/mootools.js"]=>
string(15) "text/javascript"
["/media/system/js/caption.js"]=>
string(15) "text/javascript"
}
["script"]=>
array(0) {
}
["custom"]=>
array(0) {
}
}

malkowitch
29-09-2009, 16:16
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

http://www.thevintagefayre.com/index...=0&Ite mid=54 (http://www.thevintagefayre.com/index.php?option=com_djcatalog&view=show&cid=0&Itemid=54)

i pewnie musiałbym zamienić to:

Kod HTML:
array(2) {
["/media/system/js/mootools.js"]=>
string(15) "text/javascript"
["/media/system/js/modal.js"]=>
string(15) "text/javascript"
}
["script"]=>
array(1) {
["text/javascript"]=>
string(231) "
window.addEvent('domready', function() {

SqueezeBox.initialize({});

$$('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


array(10) {
["title"]=>
string(7) "Katalog"
["description"]=>
string(33) "Giełda Staroci The Vintage Fayre"
["link"]=>
string(0) ""
["metaTags"]=>
array(2) {
["http-equiv"]=>
array(1) {
["content-type"]=>
string(24) "text/html; charset=utf-8"
}
["standard"]=>
array(2) {
["robots"]=>
string(13) "index, follow"
["keywords"]=>
string(133) "antyki, srebro, obrazy, zegary, starocie, stare meble, stare ramy, platery, antykwariat, zabytki, szklo, porcelana, malarstwo, sztuka"
}
}
["links"]=>
array(0) {
}
["styleSheets"]=>
array(2) {
["http://www.thevintagefayre.com/components/com_djcatalog/views/show/tmpl/style.css"]=>
array(3) {
["mime"]=>
string(8) "text/css"
["media"]=>
NULL
["attribs"]=>
array(0) {
}
}
["/media/system/css/modal.css"]=>
array(3) {
["mime"]=>
string(8) "text/css"
["media"]=>
NULL
["attribs"]=>
array(0) {
}
}
}
["style"]=>
array(0) {
}
["scripts"]=>
array(2) {
["/media/system/js/mootools.js"]=>
string(15) "text/javascript"
["/media/system/js/modal.js"]=>
string(15) "text/javascript"
}
["script"]=>
array(1) {
["text/javascript"]=>
string(231) "
window.addEvent('domready', function() {

SqueezeBox.initialize({});

$$('a.modal').each(function(el) {
el.addEvent('click', function(e) {
new Event(e).stop();
SqueezeBox.fromElement(el);
});
});
});"
}
["custom"]=>
array(0) {
}
}