|
Siječanj
27
2010
|
Predlošci |
| Tutorijali > Za developere Autor: Erik Roznbeker, a-web.hr | |
Ili važno je biti originalan
Ovaj tutorijal obrađuje umirovljenu Joomlu 1.0 UvodU ovom tutorijalu pozabaviti ćemo se predlošcima. Sama funkcija predložaka je, u biti, jednostavna: odvojiti vizualne elemente (HTML) od programskog dijela (PHP). Stručnije bi to rekli da odvajamo poslovnu logiku od layouta i sadržaja, tj. prezentacijskog dijela.
U konkretnom slučaju Joomla modula postoje dva rješenja: ili ćemo sav HTML, PHP, Javascript i CSS kod ugurati u jednu datoteku ili ćemo koristiti predloške. Kao i uvijek, sve ima svoje dobre i loše strane. Opcija da sve strpamo zajedno je jednostavnija i brža za izvesti, ali ako nam 'male sive stanice' dozvole vidjeti par koraka dalje shvatiti ćemo da će nam korištenje predložaka pružiti jednostavnije i ugodnije održavanje, lakši timski rad i pružanje mogućnosti da daljni developeri i korisnici mogu napraviti vlastiti dizajn bez kopanja po našem kodu. Korištenjem predložaka više nećemo miješati HTML i PHP. patTemplate predlošciPostoje mnogi načini i oblici rada sa predlošcima, ali developeri Joomla! CMSa su se odlučili za jednu "knjižnicu skripti" imenom patTemplate i tu su knjižnicu ugradili u Joomlu. Ako je njima to rješenje dobro, vjerovati ćemo im te ćemo ga i mi iskoristiti. A što bi bio taj predložak? To je obična HTML datoteka u kojoj su mjesta namjenjena prikazivanju nekakvog sadržaja posebno obilježena i, kada pustimo stvar u pogon, te oznake će biti zamjenjene nekim sadržajem. Evo i mali primjer: Imamo modul koji ispisuje koliko je sati. Napraviti ćemo predložak: -- predložak početak -- Umjesto {VRIJEME} prikazati će se sati i minute. I sada ako neki "Štef"TM koji se ne razumije baš u php poželi promjeniti tekst "Sada je ... sati" neće morati kopati kroz našu php datoteku modula nego samo otvoriti datoteku predloška i urediti je bez straha da će "zeznuti stvar" i srušiti site. Primjer predloška po patTemplate sintaksi bi bio ovako nešto: @version 1.0 $
@package Zdravo Svijete
@copyright (C) 2008 Pero Perić
@license http://www.gnu.org/copyleft/gpl.html GNU/GPL
<strong>Zdravo Svijete</strong>
<br />
Sada je {VRIJEME} sati.
Na vrhu između tagova <mos:comment> i </mos:comment>, koji označavaju početak i kraj komentara, nalaze se informacije o datoteci i modulu kojem pripada. Nešto slično smo radili i u .php datoteci. Između tagova <mos:tmpl name="zdravosvijete"> i </mos:tmpl> nalazi se naš predložak. Ovi tagovi označavaju početak i kraj bloka predloška, a atribut "name" je ime preloška, u ovom slučaju "zdravosvijete". TestIdemo raditi. Za početak potrebno je imati instaliran modul zdravosvijete. Ako ga nemate to možete napraviti po uputama iz prvog tutorijala iz ove serije. Ako već imate instaliran modul onda možete otvoriti zdravosvijete.xml i zdravosvijete.php datoteke i maknuti višak koda da nam sada ne smeta. Datoteka zdravosvijete.xml treba izgledati ovako, kao u prvom tutorijalu: <!--l version="1.0" encoding="iso-8859-1-->
Zdravo Svijete
Pero Perić
pero@pero.hr
www.pero.hr
January 2008
(C) 2008 Pero Perić
http://www.gnu.org/copyleft/gpl.html GNU/GPL
1.0
Modul koji će pozdraviti svijet.
mod_zdravosvijete.php
A datoteka zdravosvijete.php ovako: }<!--p
/**
* @version 1.0 $
* @package Zdravo Svijete
* @copyright (C) 2008 Pero Perić
* @license http://www.gnu.org/copyleft/gpl.html GNU/GPL
*/
/** pobrinimo se da će ova datoteka biti pozvana samo iz Joomle */
defined( '_VALID_MOS' ) or die('Direktni pristup nije dozvoljen.');
-->
Kada smo spremili izmjene u zdravosvijete.xml i zdravosvijete.php datotekama idemo napraviti novu mapu (folder) unutar mape "modules". Novu mapu nazovimo "mod_zdravosvijete". Unutar te nove mape napravimo jednu html datoteku. Sadržaj te datoteke biti će predložak kojeg smo maloprije napravili, a datoteku ćemo nazvati "prvi.html". Spremimo izmjene i naš predložak je pripremljen za upotrebu. Nakon što smo ga pripremili red je i da ga upotrijebimo. Otvorite datoteku zdravosvijete.php i unesite kod za upravljanje predlošcima, pa će php datoteka zdravosvijete.php sada izgledati ovako: <!--p
/**
* @version 1.0 $
* @package Zdravo Svijete
* @copyright (C) 2008 Pero Perić
* @license http://www.gnu.org/copyleft/gpl.html GNU/GPL
*/
/** pobrinimo se da će ova datoteka biti pozvana samo iz Joomle */
defined( '_VALID_MOS' ) or die('Direktni pristup nije dozvoljen.');
// učitavanje patTemplate knjižnice skripti
require_once( $mosConfig_absolute_path . '/includes/patTemplate/patTemplate.php' );
// napravi objekt predloška, tj. pripremi predložak
$tmpl =& patFactory::createTemplate( '', false, false );
// definiraj mapu sa predlošcima
$tmp-->setRoot( dirname( __FILE__ ) . '/mod_zdravosvijete' );
// učitaj predložak
$tmpl->readTemplatesFromInput( 'prvi.html' );
// dodaj dinamički tekst
$tmpl->addVar( 'zdravosvijete', 'VRIJEME', date( 'H:i:s' ) );
// prikaži / ispiši predložak sa dinamičkim tekstom, tj. "output"
$tmpl->displayParsedTemplate( 'zdravosvijete' );
?>
Gornji dio koda nam je poznat pa ga nećemo ponovno objašnjavati, a novi kod: 01Prva linija novoga koda služi nam da pozovemo i da se učita knjižnica skripti potrebna za rad sa patTemplate predlošcima: require_once( $mosConfig_absolute_path . '/includes/patTemplate/patTemplate.php' ); 02U drugoj liniji stvaramo objekt, tj. predložak s kojim ćemo raditi: $tmpl =& patFactory::createTemplate( '', false, false ); 03Treći redak služi da definiramo mapu gdje se nalaze html datoteke predlošci: $tmpl->setRoot( dirname( __FILE__ ) . '/mod_zdravosvijete' ); 04U četvrtom retku učitavamo predložak iz datoteke, u ovom slučaju "prvi.html": $tmpl->readTemplatesFromInput( 'prvi.html' ); 05Peti je redak ono što smo čekali: ubacivanje dimačkog teksta na određeno mjesto u predlošku. Tu se nalaze tri parametra: naziv predloška, naziv varijable iz predloška i tekst koji želimo ubaciti u predložak: $tmpl->addVar( 'zdravosvijete', 'VRIJEME', date( 'H:i:s' ) ); 06Šesti redak nam služi za prikaz modula tj. obrađenog predloška: $tmpl->displayParsedTemplate( 'zdravosvijete' );
Čestitam! Napravili ste svoj prvi modul sa predloškom. U sljedećem nastavku proširiti ćemo znanje o predlošcima i prvi put se susresti sa bazom podataka. Izvor: help.joomla.org/content/view/775/60/. Samo za utra geekove: proučite službenu patTemplate dokumentaciju: trac.php-tools.net/patTemplate/wiki/Docs. Ovdje možete napraviti download datoteka iz ovog tutorijala cetvrta_lekcija.zip |
|
Joomla developer blog • Teme o: Joomla CMS, PHP, MySql, softver otvorenog koda (open source) te web radu i radnicima općenito