Egyszerű alsmink készítése

csakiistvan képe

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.

Info fájl elemei:

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ányMéret
Csomag ikon danlandclone.zip704 byte

Hozzászólások

Germán Zsolt képe

Ha a smink nem jelenik meg megfelelően, és esetleg hasonló figyelmeztetést kapsz az alsmink használatakor:

Notice: Undefined index: search_box include() függvényben

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:
regions[search_box] = Search region
Sk8erPeter képe

„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 a csodaszepzenalsmink alkönyvtárat és az egész alsminket, mindenhol a csodaszepzenalsmink_ 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 a STARTERKIT_ 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. :)

csakiistvan képe

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

zionduc képe

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ó.