Zamknij
Marcin

Głuchowski Marcin

Konin, Poznań
godziny pracy: 8:00 - 17:00
+48 63 307 02 32
+48 061 641 71 05
10 63 15 83
madver
mail
Dawid

Szczepaniec Dawid

Tychy, Katowice
godziny pracy: 9:00 - 18:00
+48 517 18 16 13
+48 061 641 71 05
121 83 09
dawididek
mail

Siedziba firmy MADVER znajduje się w Koninie. Mobilnego przedstawiciela na Śląsk posiadamy także w Tychach.
Kontakt


Madver.pl Joomla - rozwiązania Czytaj więcej, czytaj dalej - Template Overrides

Kategorie:

Dotacja via PP

Amount: 

Czytaj więcej, czytaj dalej - Template Overrides
Wpisany przez idek | piątek, 20 marca 2009 17:34   

Postanowiłem zapoczątkować serię artykułów, w których za pomocą tutoriali przedstawię Wam tajniki Template Overrides.W tym artykule postaram się szybko wyjaśnić czym jest Template Overrides, oraz jak to wykorzystać, aby zmienić wygląd odnośnika "Czytaj więcej"...

Template Overrides - to po polsku "nadspisywanie szablonów". Jest wykorzystywane w różnych przypadkach, i przy różnego rodzaju skryptach. Nas z racji zainteresowania CMS'em Joomla! będzie interesowało wykorzystanie Template Overrides własnie w tym przypadku.

Co nam daje Template Overrides?
Załóżmy, że chcemy zmienić odnośnik "Czytaj więcej" i zastąpić go stworzonym przez siebie obrazkiem. Nie znając techniki nadpisywania szablonów zaczęlibyśmy od wyszukania pliku, który odpowiada za wyświetlanie tego fragmentu, a następnie dokonalibyśmy w nim odpowiedniej korekty. Zakładając, że wprowadzone zmiany działają prawidłowo - odnieślibyśmy sukces. Po kliku miesiącach wychodzi nowa wersja Joomla!, nie chcąc mieć wizyty hackerów na stronie czym prędzej aktualizujemy wersje do najnowszego wydania. Odświeżamy stronę, patrząc czy aktualizacja się powiodła.. i..? Nie ma naszych obrazków kierujących do dalszej części artykułu. Zamiast nich ponownie widzimy link "Czytaj więcej".

Dlaczego tak się stało? W paczce aktualizującej znalazł się plik, w którym zmieniliśmy kod wyświetlający odnośnik do dalszej części artykułu. W momencie aktualizacji nadpisaliśmy nasz plik plikiem z łatki. Co nam teraz pozostaje? Dokonanie ponownej zmiany. Jednak historia lubi się powtarzać i przy ponownej aktualizacji możemy mieć ponowną niespodziankę...

Jak uniknąć takich sytuacji?
Korzystać z nadpisywania szablonów, czyli z Template Overrides. Nie jest to trudna technika, jednak może nam przynieść sporo korzyści w postacie między innymi zaoszczędzonego czasu i nerwów ;)

Jak zmienić link "Czytaj więcej" na obrazek z wykorzystaniem Template Overrides?
Musimy odszukać plik, jaki chcemy modyfikować. W naszym przypadku jest to plik /components/com_content/views/section/tmpl/blog_item.php.

Kolejnym krokiem jest otworzenie pliku, oraz odszukanie miejsca, które odpowiada za wyświetlanie kodu linka kryjącego dalszą część artykułu. Poniżej prezentuję kod, jaki za to odpowiada w Joomla! 1.5.9 (około 130 linijki)

01.   
02.   <?php if ($this->item->params->get('show_readmore') && $this->item->readmore) : ?>
03.   <tr>
04.    <td  colspan="2">
05.    <a href=" echo $this->item->readmore_link; ?>" 
06.    class="readon echo $this->item->params->get('pageclass_sfx'); ?>">
07.    <?php if ($this->item->readmore_register) :
08.    echo JText::_('Register to read more...');
09.    elseif ($readmore $this->item->params->get('readmore')) :
10.    echo $readmore;
11.    else :
12.    echo JText::sprintf('Read more...');
13.    endif; ?></a>
14.    </td>
15.   </tr>
16.   <?php endif; ?>
17.   

Teraz musimy odpowiednio ten kod zmodyfikować, celem wyświetlenia podlinkowanego obrazka. Kod będzie zatem wyglądał tak:

01.   
02.    <?php if ($this->item->params->get('show_readmore') && $this->item->readmore) : ?>
03.    <tr>
04.    <td  colspan="2" align="right">
05.    <a href=" echo $this->item->readmore_link; ?>"
06.    class="readon echo $this->item->params->get('pageclass_sfx'); ?>"  title="Czytaj dalej">
07.    <img src="templates/madver_pl/images/czytaj_dalej.png" alt="Czytaj dalej" />
08.    </a>
09.    </td>
10.    </tr>
11.    <?php endif; ?>
12.    

Wytłuszczonym drukiem zaznaczyłem align="right" dzięki czemu nasz obrazek będzie wyrównany do prawej krawędź (tak się przyjęło, że linki i obrazki odnoszące się do dalszej części artykułu znajdują się z prawej strony).

No i na koniec ostatnie zadanie - musimy wgrać plik na serwer. Normalnie wrzucilibyśmy go tam, skąd pochodzi, czyli do /components/com_content/views/section/tmpl/blog_item.php, jednak nie tym razem...

W katalogu templates znajduje się katalog z naszym szablonem. W nim musimy stworzyć następujące katalogi: html/com_content/section i do tego ostatniego (section) wgrywamy nasz zmodyfikowany plik blog_item.php

/templates/madver_pl/html/com_content/section/blog_item.php

Jeśli nie popełniliśmy żadnego błędu, to zamiast wcześniejszego linku "Czytaj więcej" powinniśmy zobaczyć nasz obrazek. Technikę Template Overrides wykorzystałem tworząc na tym blogu obrazek w miejscu "Czytaj więcej".

W kolejnych artykułach pokażę jak zmienić inne elementy wyglądu Joomla! z pomocą nadpisywania szablonów.

Dodaj do:

Deli.cio.us    Digg    reddit    Facebook    Wykop    Gwar

 
Komentarze (10)
zamiast art błąd 404
10 poniedziałek, 09 sierpnia 2010 10:54
czy kod jest poprawny, bo zamiast do art button prowadzi do strony 404
a mi nie działa :/
9 poniedziałek, 09 sierpnia 2010 10:33
a mi nie działa :/ czy aby na pewno działa do artykułów?
a bezpieczeństwo?
8 środa, 03 lutego 2010 21:40
alertgre
Sposób jest w sumie świetny, ale czy aby nie zagraża bezpieczeństwu? No bo skoro instalując łatki bezpieczeństwa są podmieniane jakieś pliki to zapewne jest w nich coś poprawionego, w innym przypadku dołączanie wraz łatką plików niezmienionych nie miało by sensu. Więc jeśli ja dla własnej wygody będę stosował technikę Template Overrides to czy nie narażam się nieświadomie na niebezpieczeństwo? Jestem bardzo ciekaw co na to "idek", jakie jest jego stosunek do tego problemu i w jaki sposób można go w łatwy sposób rozwiązać. Zapewne taki sposób musi istnieć, bo jak by nie patrzeć Template Overrides ma ułatwiać a nie komplikować i szkodzić. Pozdrawiam autora i dziękuję za wiedzę którą zechciał się podzielić.
.
7 czwartek, 02 kwietnia 2009 18:57
To nie byl tekst na prima aprimis :)
poprawka
6 środa, 01 kwietnia 2009 17:21
bart
Ok rozgryzlem to, masz blad w 5 linijce A HREF= echo a powinno byc A HREF= php echo - no i oczywiscie znaczki tylko w komentarzu je zjada. Tak samo zjadlo ci to w oryginalnym pliku (1 kod).

Napisalbym Ci PW na forum ale ten idiota zwiastun mnie zbanowal.

A zeby alternatywny tekst wyswietlal sie w operze musi byc TITLE= w IE musi byc ALT= anjlepiej wpisac w obydwu znacznikach to samo.

pozdro kerios83
.
5 sobota, 28 marca 2009 22:32
tekst align="right" nie powinien byc bez znacznikow STRONG ? No i pojawia sie problem bo gdy klikne read more pisze ze dostep zabroniony. Gdy nie uzyje podmiany templatki wszystko gra gdy klikne na teks czytaj wiecej... Nie wiecie co moze byc nie tak ?

by idek:
oczywiście STRONG wkradł się przez 'głupote' edytora, a ja tego nie zauważyłem, dziękuje za uwagę!
a jeśli podmiesz oryginalny plik to będziesz miał dostęp zabroniony? czy Ci wejdzie normalnie.. swoją drogą i tak dziwna sprawa... :|
do bazyla
4 środa, 25 marca 2009 12:05
Faktycznie bazyl.. dzieki za uwagę, chyba z rozpędu się pomyliłem :P
czyli...
3 środa, 25 marca 2009 11:15


powinno byc zamienione na

jezeli komus na tym zalezy
Jest miodzio...
2 środa, 25 marca 2009 10:53
...ale brakuje tekstu alternatywnego obrazka. ;)
dziala ?
1 wtorek, 24 marca 2009 21:40
Swietny art ale czy na 100% dziala ? Mam serwer postawiony na xamppie robie wszystko dokladnie wedlug instrukcji i jakos mi sie obrazek nie pojawia....

Napisz swój komentarz

Nick:
Twoja strona:
Tytuł:
Comment:
  Kod weryfikujący składa się z małych liter, bez spacji.
Kod weryfikujący:

Zaufali nam:

  • An Image Slideshow
  • An Image Slideshow
  • An Image Slideshow
  • An Image Slideshow
  • An Image Slideshow