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
A name érték kötelező mező, bármilyen nevet adhatsz a saját sminkednek
core = 7.x
A core érték kötelező érték, itt tudod megadni mely drupal verzióhoz szertenél alsminket készíteni. Mi esetünkben most ez nem fontos, de később ennek jelnetőssége lesz.
base theme = danland
A 'danland' érték itt a smink gépi(!sic) neve, megeggyezik a szülő smink info fájljának nevével(danland).
Itt megadtuk hogy a saját sminkünknek hogy minek lesz a gyereke, azaz a danland és a danlandclone sminkek között szülő -> gyerek kapcsolat lesz.
description = Ez a smink a Danland gyermeke.
A description érték bár nem kötelező, elég hasznos lehet, ha magadnak akarsz üzenni, mi is ez a smink.
version = 1.0
A version mező nem kötelező mező.
engine = phptemplate
Az engine Drupal 7-ben ez a mező már nem szükséges.
stylesheets[all][] = danlandclone.css
A stylesheets értékben tudod megadni az alsminkedhez/smindkedhez használt saját css fájlokat. A danlandclone sminkben igaz nincs benne sok minden, de itt azt definiálhatsz amit szeretnél.
Update: Hozzáadhatsz ezzel a módszerrel további saját css fájlt is, de figyelj arra hogy ha ugyanazt a nevet adod neki mint ami a szülő sminkben is szerepel, a gyereké lesz érvényben.
Példa: nem tetszik neked a danlandclone.css név, legyen inkább style.css, akkor a "Danland clone" smink style.css -e lesz érvényben, és nem veszi figyelembe a szülő ugyanezzel a névvel létező, és az oldalnak stílust adó fájlt.
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 |
Hozzászólások
Regions
Ha a smink nem jelenik meg megfelelően, és esetleg hasonló figyelmeztetést kapsz az alsmink használatakor:
Akkor ellenőrizd, hogy az alsmink danlandclone.info fájlja tartalmazza-e a szülő smink összes régióját, amit a saját danland.info fájljában találsz. Például:
Zen és a Drush
„Alsminket készíteni a Drupalban elég egyszerű.”
Ezt a gondolatot megerősítve: a nagyon jól összerakott Zen sminkkel és Drush használatával még egyszerűbb a dolog:
drush zen "Csodaszep Zen alsmink" csodaszepzenalsmink --without-rtl
Ez máris elkészíti a
sites/all/themes
könyvtárban acsodaszepzenalsmink
alkönyvtárat és az egész alsminket, mindenhol acsodaszepzenalsmink_
előtagot felhasználva. Az olvasható név értelemszerűen a "Csodaszep Zen alsmink" lesz. A--without-rtl
kapcsoló segítségével azt érhetjük el, hogy a sminkbe ne kerüljenek a bele a jobbról-balra írós (RTL) nyelvek számunkra esetleg felesleges stílusfájljai (pl. ha valaki magyar, angol és német nyelvű honlapot szeretne, annak nyilván ezek feleslegesek).A Zen számára a kiindulási pont ennek elkészítésekor egyébként a Zen könyvtárban lévő
STARTERKIT
könyvtár, aminek a fájljaiban mindenhol aSTARTERKIT_
előtagot használja fel (ezt cseréli le az alsmink elkészítésekor).Ez még azt az 5 percet is megspórolja nekünk, ami egyébként szükséges lenne egy alsmink elkészítéséhez egy Zen alapsminkből. :)
igen, amint lesz időm, Zen
igen, amint lesz időm, Zen-ről is érkezik egy könyvlap ide, meg a drush és SASS használatáról..
Drupal full-stack developer at Wunderman Thompson Budapest
Zenophile
Ha valaki a drush használatát még nem ismeri, akkor először is tanulja meg :), de használhatja a Zenophile modult is, ami lényegében a
drush zen "Csodaszep Zen alsmink" csodaszepzenalsmink
parancshoz hasonló feladatot lát el.Írj rám, ha érdekel a Győri Drupal Használói Találkozó.