Legegyszerûbb leírni a tiszta PHP smink készítését, ráadásul a PHPTemplate megértését segíti, ha elõször ezzel kezdem. Minden smink a themes alatt a saját könyvtárában lakik, és a neve megegyezik a könyvtárnévvel, a kiterjesztése pedig theme. Tehát az themes/sajatsmink könyvtárban van a sajatsmink.theme fájl.
Ezen belül, hasonlóan a modulokhoz, különbözõ hurkokat valósíthatunk meg. Ezek a hurkok a kézikönyvben theme_-al kezdõdnek, élesen elkülönülve a hook_ hurkoktól. Ez utóbbi csak egy jelölés, míg a smink hurkok ténylegesen meg is vannak valósítva a includes/theme.inc fájlban.
Például van egy theme_form_element smink hurok, amit a sajatsmink_form_element fájlban sajatsmink_form_element néven valósítunk meg. Ennek a függvénynek egy stringet kell visszaadni, amit aztán kiír majd a Drupal.
Minden tiszta PHP sminknek meg kell valósítania a theme_features hurkot, ez egy tömböt ad vissza. A tömb leírja, hogy ez a smink mire képes. Lehetséges elemei:
Például:
<?php
function chameleon_features() {
return array(
'logo',
'toggle_name',
'toggle_slogan',
'toggle_primary_links',
'toggle_secondary_links');
}
?>Az alap disztribúcióban ilyen típusú smink a chameleon. Angolul ezen az oldalon találhatjuk meg a smink hurkok listáját.
A theme-t sminknek forditani az meg egy dolog... usse ko megeszem, de a function-t huroknak???? Azt ugy hivjak tanyasi programozoek hogy fuggveny... Legalabb ha forditatok ertsetek mar hozza kicsit... teljesen erthetetlen pl ez a leforditott doksi igy... annak ellenere hogy hasznos lenne...
Aztan amikor meg megy a user a programozohoz, hogy hapsikam, azt irja a doksi hogy modositani kell azt a hurkot aminek valami formos t betus neve van, a programozo baratunk nagyokat nez hogy "Te meg mi a *rol beszelsz hapsikam???" Telleg nem leszolni akarom a forditot, de ha nem ert hozza, akkor legalabb kerdezzen meg valakit, telleg nem baj ha lelkes valaki, csak ne az legyen mar a vege, hogy egy rakas *t er a munkaja azoknak akik konyitanak a temahoz es itt keresnek infot szolajtok ha rosszul gondolom.
Vagy ha a sajat terminologia kidolgozasa a cel, es nem szamit, hogy ennek a szakmanak mar van terminusa az se baj, csak egyszeruen nem ertem... foleg ugy nem, hogy egyetlen helyen sikerult is fuggvenynek hivni...:)
Pifta
Nahjo lehet hogy hamar itelkeztem kicsit, mashol is hasznalatban van ez a terminus, de akkor csak szimplan nem ertem hogy honnan, vagy miert... De elso korben ugytunik hogy en voltam a *.:)
Pifta
A hurok (hook) a függvények egy speciális típusa a Drupal motorban.
Olvasgasd a Kézikönyv ide vágó fejezeteit magyarul vagy angolul.
Nah akkor jol ereztem én, hogy jelent ez valamit, miutan több helyen is olvastam, elnézést az elsõ destruktív kommentért, és köszönöm a választ.
Pifta
Mondjuk valaki elmagyarázhatná rendesen, hogy mi ez a hurok... ez gyakorlatilag függvény clone ?
Ha van hurok, az hívódik meg, ha nincs, akkor meg az eredeti függvény ?
Vagy hogy van ez ?
A smink hurkok pont így mûködnek.
Fejlesztesz egy modult, de kéne html kimenet. Ezt nem belegányolod a kódba, hanem készítesz egy függvényt, melyet 'theme_' szövegrészlettel kezdesz, pl: theme_modulneve_formazasneve. Ahol szükséged van erre a html kimenetre ott meghívod ezt a függvényt, de nem csak egyszerûen ahogyan php-ban tennéd, hanem a theme függvénnyel: theme('modulneve_formazasneve');
A theme függvény ugyanis az elsõ függvényt hívja meg amit megtalál a következõ sorból:
sminkneve_modulneve_formazasneve
sminkmotorneve_modulneve_formazasneve
theme_modulneve_formazasneve
Tehát ha meg akarod változtatni valamelyik modul html kimenetét(és jól írták azt meg) akkor nem kell más tenned, mint megkeresned a modulban a theme_ kezdetû függvényeket, és a neked megfelelõt(amelyik azt a tartalmat állítja elõ amit át akarsz sminkelni) egyszerûen bemásolod a template.php-ba. Aztán a theme helyett beírod a smink nevét és azt csinálsz az adatokkal "amit csak akarsz". (megenni nem tudod, úgyhogy akár kisgyerek kezébe is adhatod, hisz nem fogja felszippantani az apró darabkákat.)
remélem így már érthetõ.
pp
Igen. Most már tiszta.
Köszönöm.
hú, ez baromi hasznosnak tûnik, így már vili, hogy miért írják, hogy drupals theme system is very strong. :) én eddig csak úgy 'sminkeltem' [ezek után már csak így idézõjelbe :], hogy cck, fieldek, tartalom típusok, aztán mindegyiknek van szépen node-akarmi.tpl.php -ja, ott meg már csinálhatom a dolgom. najó, meg persze view -k, az is szuper azért, megértem, hogy a továbbiakban próbálnak is amit csak lehet cck -val meg view -sal megcsinálni.
most a hírlevél kapcsán szaladtam elõször abba, hogy ez kevés, valójában egy modul kimenetét kellene bántani, ha jól értem ez pont erre való!
[én teljesen autodidakta programozó vagyok, de mindig leakadok rajta, hogy mennyire okos is a drupal.. :]
jó lenne errõl a hurkos template.php -s sminkelésrõl valami konkrét példán végigmenõ 'HOW TO' magyarul is talán. na, majd írok egyet, ha végleg megértettem és használni is rendesen tudom végre. már csak hetek kérdése. :D
Szia!
Sikerült kitapasztalni a sminkelés rejtelmeit? Sokaknak jól jönne az a HOW TO, köztük nekem is ugyanis most sokminden kavarog a fejemben a témával kapcsolatban, de nem áll össze :(
Lépésrõl lépésre leírás lenne jó, nem akarsz egyet csinálni? :)