A Drupal sminkrendszere rendkívül rugalmas, sok utat biztosít az egyedi oldalak kialakítása felé. Lehetőségünk van új sminket (stílust) építeni meglévő sminkre, új sminket írni egy sablonkezelő (leggyakrabban a PHPTemplate) segítségével, vagy közvetlenül a Drupal smink függvényeivel PHP alapokon.
style.css
nevű stíluslapunkat, és esetleg egyedi képeinket, más média állományainkat. A smink neve a most nyitott könyvtár lesz.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:
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.
Alsminket készíteni a Drupalban elég egyszerű. Általában azért, illletve akkor van rá szükség ha a drupal.org-ról, vagy máshonnan letöltött sminkbe szeretnénk belenyúlni, mert nem tetszik a link színe, vagy a menü mögötti háttérkép stb. Persze megtehetjük hogy belenyúlunk a letöltött sminkbe, de akkor emlékezned kell mit módosítottál, és ha frissül a smink, ezeket a módosításokat újra és újra alkalmaznod kell. Elég macerás ugye?
Erre nyújt segítséget az a lehetőség az úgynevezett alsmink (angolul sub-theme) ahol magadnak készítesz egy sminket, ami gyerek szülő kapcsolatban lesz. Vegyünk egy konkrét példát:
Tegyük fel hogy tetszik nekünk a Danland smink, de az már nem tetszik hogy a menüpont színe fehér, jobban szeretnénk ha ez piros lenne, hover állapotra (azaz ha ráviszed az kurzort) pedig sárga.
Készíts egy mappát a sites/all/themes mappába, legyen a neve mondjuk 'danlandclone'. Ami feltétlen szükséges egy alsmink készítéséhez az egy .info fájl, amiben leírod a smink adatait, illetve esetünkben, mivel csak a menüpont színét szeretnénk megváltoztatni, kell egy css fájl is.
name = Danland clone
core = 7.x
base theme = danland
description = Ez a smink a Danland gyermeke.
version = 1.0
engine = phptemplate
stylesheets[all][] = danlandclone.css
danlandclone.info tartalma:
name = Danland clone description = Ez a smink a Danland gyermeke. version = 1.0 core = "7.x" engine = phptemplate base theme = danland stylesheets[all][] = danlandclone.css scripts[] = myscript.js ; továbbá összes danland régió, lásd a csatolt zipben lévő info fájlt
danlandclone.css tartalma:
#nav li a { color:red; } #nav li a:hover { color:yellow; }
Nincs más dolgunk mint lementeni az info fájlt a sites/all/themes/danlandclone mappába. Az info fáj nevének meg kell egyeznie a mappa nevével amiben szerepel, azaz most danlandclone.info fájl lesz belőle, karakter kódolása pedig UTF-8.
Ezt kell látnod majd a sminkek közt ha jól csináltad:
További angol nyelvű olvasivaló az info fájlról: http://drupal.org/node/171205
Csatolmány | Méret |
---|---|
danlandclone.zip | 704 byte |
Most hogy már tudjuk hogy kell alsminket készíteni, akár módosíthatjuk a készített alsminkünket kicsit, hogy a mi szájunk íze szerint működjön/nézzen ki.
Első feladatunk legyen hogy a menüt szeretnénk áthelyezni a slideshow alá, második feladatként pedig a slideshow-t minden oldalon szerepeltetni szeretnénk!
Első feladatként a látványos mutatvány ugye csak a főoldalon lesz elsőre látható, hogy jelenleg az aloldalakon nincs slideshow a sminkünkben.
<?php if($page['preface_first'] || $page['preface_middle'] || $page['preface_last']) : ?>
sor fölé).Eredmény: a menü a slideshow alá került, midnenki döntse el maga: ez így szép-e. :)
Második feladat (ha még emlékszünk): a slidehow minden oldalon jelenjen meg, ne csak a főoldalon.
if($is_front):
, itt azt vizsgálja hogy a főoldalon vagy-e, ha igen, kiírja a div#slideshow-wrapper elemet, ha nem, nem ír ki semmit. if($is_front):
elemet, és ne felejtsd el a endif;
elemet is törölni a div#menu elem fölül.Összegzés: fenti két kis feladattal azt próbáltam hangsúlyozni, hogy ha már egy alsminked van, bármit bátran módosíthatsz benne.
Csatolmány | Méret |
---|---|
Módosított Danland smink | 104.51 KB |