--=REKLAMA=--
Ta strona objaśnia, w jaki sposób unowocześnić lub przekształcić szablon opracowany dla Joomla 1.5 do wykorzystania w nowszych wersjach Joomla. Powstała z informacji zwrotnych od osób, które już dokonywały takiej aktualizacji.
Jeśli przytrafił Ci się problem podczas aktualizacji szablonu albo masz jakiekolwiek informacje, które mogą pomoc innym, umieść je na stronie dyskusji. Po zweryfikowaniu tych informacji włączymy je do poradnika.
Chris Davenport przygotował slides na JoomlaDay 2010 w Wielkiej Brytanii prezentację, która objaśnia zmiany w szablonach dla Joomla 1.6+.
W pliku templateDetails.xml istotne są dwie zmiany:
<?xml version="1.0" encoding="utf-8"?> <!DOCTYPE install PUBLIC "-//Joomla! 1.6//DTD template 1.0//EN" "http://www.joomla.org/xml/dtd/1.6/template-install.dtd"> <extension version="2.5" type="template" client="site">
Zwróć uwagę na nowy atrybut client, który w przypadku szablonu witryny przyjmuje wartość site, a w przypadku szablonu zaplecza administrator.
Pamiętaj również o tym, aby końcowy znacznik </install> zastąpić znacznikiem </extension>.
Parametry szablonów definiowane są w pliku manifestu - templateDetails.xml. W wersji 1.5 parametry definiowane są jako część sekcji <params> i każdy parametr definiowany jest jako <param>. W wersji 1.6+ parametry zawarte są w sekcji <config> i traktowane jako <field> zagnieżdżone w <fieldset> oraz w tagach <field> tak jak to pokazano poniżej
<config> <fields name="params"> <fieldset name="basic"> <field name="" type="" default="" label="" description=""> <option value="1">On</option> <option value="0">Off</option> </field> <field name="" type="" default="" label="e" description="" /> </fieldset> </fields> </config>
Znacznik <fieldset name="">otacza grupę elementów. Zastosowanie atrybutu name=basic definiuje opcje podstawowe, a atrybutu name="advanced" opcje rozszerzone.
W definicjach parametrów nadal obowiązują atrybuty name="", type="", default="", label="" i description="".
Poza głównymi plikami szablonów dostęp do tych parametrów można uzyskać za pomocą klasy JApplication. Wcześniej wartości parametrów przechowywane były w postaci zwykłego tekstu w plikach params.ini. Aby uzyskać dostęp do tych wartości spoza szablonu trzeba było zapoznać się z plikiem .ini i ładować dane do JRegistry lub obiektu JParameters. Teraz ustawienia parametrów zapisywane są w bazie danych wraz z innymi informacjami o szablonie. Obecnie możemy załadować parametry przekazująć prawdziwą zmienną do metody getTemplate obiektu JApplication. Jest ona dostępna tak:
$app =& JFactory::getApplication(); $template = $app->getTemplate(true); $params = $template->params; $variable = $params->get('variable');
Pozwala to uzyskiwać dostęp do parametrów szablonów we własnych zamiennikach układów dla innych komponentów i modułów (w nadpisywaniu szablonów).
<?php echo $mainframe->getCfg('sitename');?>
zastąpiono teraz $app->getCfg('sitename');
gdzie $app = JFactory::getApplication();
Jeśli gdzieś na początku na początku pliku 'index.php' masz wywołanie biblioteki javascript Mootools, jak poniżej:
JHTML::_('behavior.mootools');
zmień na następujące wywolanie
JHTML::_('behavior.framework', true);
Pliki językowe są używane do tłumaczenia napisów umieszczonych w szablonie i wyświetlanych na stronie. W szablonach dla Joomla 2.5 w porównaniu z szablonami dla Joomla 1.5 musimy uwzględnić kilka zmian:
Ponadto na pliki językowe najlepiej stworzyć odpowiedni folder, a w nim podkatalogi.. W pliku templateDetails.xml zmieniamy odwołania do plików językowych.
<languages folder="language"> <language tag="en-GB">en-GB/en-GB.tpl_ nazwaszablonu.ini</language> <language tag="en-GB">en-GB/en-GB.tpl_ nazwaszablonu.sys.ini</language> <language tag="pl-PL">pl-PL/pl-PL.tpl_nazwaszablonu.ini</language> <language tag="pl-PL">pl-PL/pl-PL.tpl_nazwaszablonu.sys.ini</language> </languages>
W strukturze katalogu szablonu pliki językowe należy umieścić w odpowiednich podkatalogach, np. polskie pliki językowe w katalogu szablon/language/pl-PL/
Najpierw popraw nagłówek i wiersze, w których zamieszczone są komentarze. W Joomla 1.5 stosowano na ich oznaczenie znak # albo znaki /*. W szablonach dla Joomla 2.5 powinny to być znaki średnika, np. nagłówek może wyglądać tak:
; @copyright Copyright (C) 2012 Polskie Centrum Joomla ; http://www.joomla.pl ; @license GNU/GPL ; Cudzysłowy w napisach muszą być sformatowane jako "_QQ_" ; komentarz
Następnie popraw wszystkie klucze językowe (teksty po lewej stronie znaku =. W plikach szablonów dla Joomla 1.5 były one zapisywane wielkimi literami, wolno było stosować znaki spacji, nawiasy i inne. W plikach szablonów dla Joomla 2.5 i wyższych nie wolno stosować spacji ani innych znaków specjalnych (np. nawiasów), klucz musi się zaczynać od litery.
W taki sam sposób należy poprawić tłumaczone teksty w pliku index.php (i innych, jeśli szablon zdefiniowano w wielu plikach php). Jeżeli w tekście tłumaczonego napisu znajdują się znaki cudzysłowu, należy je zastąpić ciągiem "_QQ_", np. Przykład
Joomla! 1.5
TLUMACZONY NAPIS =<p class="wyroznij">Tłumaczony napis</p>
Joomla! 2.5
TLUMACZONY_NAPIS =”<p class="_QQ_"wyroznij"_QQ_">Tłumaczony napis</p>”
Zdarza się niekiedy, że przekształcony szablon nie jest widoczny na liście szablonów, mimo że kodowanie wydaje się poprawne. Upewnij się, że pliki szablonów znajdują się w katalogu szablonu /templates/nazwa_szablonu. Upewnij się, że jest tam plik templateDetails.xml z poprawnie wpisana nazwą szablonu. Następnie uruchom proces wykrywania.
Jeśli korzystałeś z nadpisywania szablonem Beez lub - w swoim szablonie - z kodu nadpisującego układy pochodzącego z szablonu Beez, możesz się spotkać z komunikatem błędu: JHtml::icon not supported. File not found. podczas migracji szablonu do nowszych wersji Joomla. Aby to naprawić, wystarczy dodać następującą instrukcję w górnej części szablonu HTML, w pliku html/com_content/article/default.php file:
JHtml::addIncludePath( JPATH_COMPONENT . '/helpers' );
Rozpocznij od podstawowego szablonu, który działa w aktualnej wersji Joomla. W przykładzie poniżej posłużono się szablonem Atomic.
Porównaj system plików w głównym katalogu nowego szablonu z systemem plików w głównym katalogu starego szablonu. Konieczne może się okazać skopiowanie kilku starych plików do katalogu nowego szablonu. Na przykład trzeba będzie skopiować do katalogu nowego szablonu plik favicon.ico.
Usuń z katalogu nowego szablonu folder /html z plikami pochodzącymi z szablonu wzorcowego, skopiuj w ich miejsce pliki z katalogu /html ze swojego starego szablonu.