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:
- logo
- Megadhatunk egy logót. A sminknek ellenőriznie kell a default_logo (logikai) és logon_path (string) változók értékeit.
- toggle_logo
- A logó ki-be kapcsolható.
- toggle_name
- A weboldal neve ki-be kapcsolható.
- toggle_search
- A keresés doboz ki-be kapcsolható.
- toggle_slogan
- A jelmondat ki-be kapcsolható.
- toggle_mission
- A misszós üzenet ki-be kapcsolható.
- toggle_primary_links
- Az elsődleges hivatkozások ki-be kapcsolhatóak.
- toggle_secondary_links
- A másodlagos hivatkozások ki-be kapcsolhatóak.
- toggle_node_user_picture
- A smink meg tudja jeleníteni a felhasználók képét a tartalmai mellett.
- toggle_comment_user_picture
- A smink meg tudja jeleníteni a felhasználók képét a hozzászólásai mellett.
Például:
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.
Hozzászólások
eldobom az agyam - function=hurok?
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
hmm...
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
function != hurok
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.
Értem... thx
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
hurok
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 ?
smink hurkoknál igen
A smink hurkok pont így működnek.
igen, ez bennne a zseniális
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
Palócz István
https://palocz.hu | https://tanarurkerem.hu
igen
Igen. Most már tiszta.
Köszönöm.
ez nagyon hasznos!
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
-
clear: both;
HOW TO
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? :)
Támogatom
Gondolom sok embernek jönne jól egy ilyesféle leírás. Szeretnék én is készíteni saját sminket, de eléggé bonyolultnak tűnik. (Nem a CSS átírása érdekel, mert azt bárki megoldja.)
Előre is köszönjük!