Zobacz pełną wersję : Dodawanie plików z grafiką do templateDetails.xml - co robię nie tak??
Witam,
walczę z przygotowaniem szablonu dla niewielkiej strony opartej na Joomla! 3.3. Początek był dość prosty- konstrukcja pliku templateDetails.xml, dodanie css, ustawienia pozycji modułów itd.. Dotarłem do miejsca, gdzie chciałbym wstawić kilka plików .jpg i tutaj pojawił się problem. Czytałem opisy na wiki, szukałem, ale jednak nadal coś robię nie tak. Sytuacja jest taka:
pliki:
images/banner_01.jpg
images/banner_02.jpg
fragment templateDetails.xml:
(...)
<files>
<folder>images</folder>
<folder>css</folder>
<folder>js</folder>
<filename>index.php</filename>
<filename>templateDetails.xml</filename>
<filename>images/favicon.png</filename>
<filename>images/banner_01.jpg</filename>
<filename>images/banner_02.jpg</filename>
<filename>css/core.css</filename>
</files>
(...)
i kod na stronie:
<ul>
<li><img src="images/banner_01.jpg" /></li>
<li><img src="images/banner_02.jpg" /></li>
</ul>
Na stronie zamiast obrazków slider_01.jpg i slider_02.jpg pojawia się tylko domyślna ikonka przeglądarki symbolizująca grafikę. Podpowiedzcie czego nie zrobiłem, albo co zrobiłem źle :)
zwiastun
16-06-2014, 13:04
Niepotrzebnie umieszczasz nazwy plików
W pakiecie instalacyjnym tworzysz foldery z plikami, w pliku manifestu deklarujesz jedynie folder. Instalator umieszcza w folderze wszystkle pliki, które się w nim znajdą.
Czyli, że powinno być tak:
<files>
<folder>images</folder>
<folder>css</folder>
<folder>js</folder>
<filename>index.php</filename>
<filename>templateDetails.xml</filename>
<filename>images/favicon.png</filename>
<filename>css/core.css</filename>
</files>
??
I teoretycznie Joomla powinna sobie z folderu "images" odczytać pliki? Bo jeśli o to chodzi, to tak już też sprawdzałem (znalazłem to na wiki), ale bezskutecznie. Niezależnie czy zdefiniuję tylko folder images, czy wypiszę w <filename></filename> jego zawartość, i tak nie wyświetlają się grafiki. Jakieś inne pomysły?
- - - Updated - - -
OK.. mam nowy "trop". Zajrzałem w źródło strony, i w miejscu gdzie w kodzie mam
<img src="images/banner_01.jpg">
jest:
<img src="/joomla33/images/banner_01.jpg">
wszystko edytuję lokalnie, więc adres Joomli to http://localhost/joomla33 czyli w tym momencie Joomla szuka grafiki w http://localhost/joomla33/joomla33/images/ co jest oczywiście bzdurą. Właściwa ścieżka to http://localhost/joomla33/images. Tylko jak ją osiągnąć?
zwiastun
16-06-2014, 13:41
Masz albo błędne odwołania do grafik w css, albo w index.php.
Plik manifestu nie ma tutaj żadnego znaczenia, jest jedynie instrukcja dla instalatora.
No właśnie- błąd jest w kodzie tak jak mówisz. Pytanie- gdzie?? Kod wygląda tak:
<img src="images/banner_01.jpg" />
i z punktu widzenia html jest poprawny. Odwołuje się do pliku banner_01.jpg w folderze images. Czyli teoretycznie jest OK. Joomla jakoś inaczej musi interpretować ten kod (??). CSS nic nie ma do ścieżki do grafik, nie ma tam żadnej konfiguracji przecież.
zwiastun
16-06-2014, 14:09
A nie tak to powinno wyglądać?
<img src ="<?php echo '/templates/' . $this->template . 'images/banner_01.jpg' />
albo
<img src="<?php echo $this->baseurl ?>/templates/<?php echo $this->template; ?>/images/banner_01.jpg"
Zwiastun- możliwe że tak. Sprawdzę jak tylko siądę do właściwego kompa i dam znać :)
Sprawdziłem, nieco poprawiłem i ostatecznie kod powinien wyglądać tak:
<img src ="<?php echo $this->baseurl.'/templates/' . $this->template . '/images/banner_01.jpg';?>" />
I w takiej postaci działa poprawnie :)
Dzięki za pomoc Zwiastun.
Kolejny problem- powiązany z poprzednim więc napiszę dalej w tym temacie. Chciałem użyć pliku .jpg jako tła elementu div. Normalnie robi się to przez arkusz CSS, mniej więcej tak:
div {
background: url(images/tlo.jpg);
}
i taką też informację znalazłem na stronie wiki. Wpisałem w mój arkusz css i... oczywiście nie działa :) Tłe elementu jest białe, czyli domyślne. Plik oczywiście istnieje. Zgaduję, że samo background: url(images/tlo.jpg); nie zadziała. Czy ktoś może podpowiedzieć co z tym zrobić dalej?
tomaszek83
24-06-2014, 14:40
Czy ktoś może podpowiedzieć co z tym zrobić dalej?
Tak, zainstalować sobie Firebug'a i sprawdzić ścieżki. To na początek. A w wolnej chwili przerobić jakiś dobry kurs CSS-a.
zwiastun
24-06-2014, 19:15
jeśli masz tę deklaracje w pliku css, to ścieżka do katalogu images powinna prawdopodobnie wyglądać tak :
../images/tlo.jpg
Tak, zainstalować sobie Firebug'a i sprawdzić ścieżki. To na początek. A w wolnej chwili przerobić jakiś dobry kurs CSS-a.
wow.. cóż za niesamowicie merytoryczna pomoc. Tak mniej więcej na poziomie gimnazjum.
Tak na przyszłość- zanim będziesz się silił na ironie, zastanów się czy warto się wygłupiać, czy może lepiej pomóc- jak Zwiastun. A.. i jeszcze co do Twojej "rady"- dzięki, ale firebug nie potrafi zmienić ścieżki na poprawną (chyba że zmienia tylko ja nie wiem gdzie i jak to zrobić), a co do mojej znajomości CSS to nie musisz się martwić- moglibyśmy długo porozmawiać na temat CSS i jego komend.
Tyle klikania tylko po to, żeby odpowiedzieć na głupi post..
- - - Updated - - -
jeśli masz tę deklaracje w pliku css, to ścieżka do katalogu images powinna prawdopodobnie wyglądać tak :
../images/tlo.jpg
Ponownie dziękuję za pomoc. Faktycznie, brakowało '../' na początku. Na przyszłość będę wiedział jak poprawnie deklarować tło dla Joomli.
tomaszek83
25-06-2014, 10:17
Kolego @modzel czy deklarujesz tło dla Joomla, Wordpressa czy dla jakiejkolwiek innej witryny napisanej w jakiejkolwiek technologii to wpisywanie ścieżek w CSS zawsze jest takie same i zależy od struktury katalogów na serwerze. I niestety to są podstawy języka CSS. Podpowiedź @Zwiastuna w 99% jest trafna ale kiedy masz inną strukturę katalogów niż domyślna w Joomla (a tak już może być w mocno rozbudowanych szablonach i frameworkach) to już ścieżka może wyglądać inaczej i do tego jak ją poprawić służy np. Firebug plus trochę myślenia.
BTW. Skoro zadajesz pytanie na poziomie gimnazjum to odpowiedź powinna być adekwatna do pytania.
vBulletin® v4.2.5, Prawa przedruku © 2024 vBulletin Solutions, Inc. Wszystkie prawa zastrzeżone.
Tłumaczenie: Polskie Centrum Joomla!