Elérhető Earl Miles Drupal 6 sminkelésről szóló bemutatójának videója

Hojtsy Gábor képe

Earl Miles egy a negyedik napon üresnek látszó előadás helyre a barcelonai konferencia harmadik napján nyújtott be előadás javaslatot, és ahhoz képest, hogy a programban eredetileg nem szerepelt, rendkívül komoly részvétellel zajlott az előadás. A figyelemre való tekintettel Earl úgy döntött, hogy egy Drupal Dojo bemutatóként is átadja az információkat, ezért a múlt héten meg is tartotta előadásának ismétlését ezúttal képernyő rögzítéssel. A Drupal Dojo felvétele elérhető a http://drupaldojo.com/lesson/new-stuff-in-drupal-6-theming címen (sok más korábbi felvétel mellett). A Drupal 6-ban végre lehetővé vállt, hogy mindenféle PHP smink tudás nélkül, csupán CSS sminkeket készíthessünk a Drupal alap HTML kódjára építve. Egy ilyen smink látható a http://colorovfire.com/ címen.

Kategóriák: 

Hozzászólások

Illyés Edit képe

A Drupal 6-ban végre lehetővé vállt, hogy mindenféle PHP smink tudás nélkül, csupán CSS sminkeket készíthessünk a Drupal alap HTML kódjára építve.

Erre eddig is volt lehetőség, bármelyik meglévő smink CSS fájljainak módosításával. A CSS designereket az riasztja el – és a profi themereket az idegesíti –, hogy nem kapnak szabad kezet a CSS struktúra kialakításakor. Mindenkinek megvan a kedvenc módszere arra, hogy hogyan rétegezze egymásra a stíluslapokat úgy, hogy a kód egyszerűen fejleszthető és karbantartható legyen:

  1. browser-reset.css (böngésző alapbeállítások lenullázása)
  2. layout.css
  3. typography.css
  4. colors.css
  5. ... stb.

Én a következő módszert használom:

  1. browser-reset.css
  2. basic.css (általános stílusok HTML elemekre – p, a, blockquote, fieldset, stb.)
  3. tpl.css (stílusok a .tpl.php fájlokban szereplő HTML elemekre – időnként tpl.php fájlonként szétbontva, hogy könnyebben átlátható legyen, főleg CCK-Views sminkelése esetén)
  4. drupal.css (CMS funkciókhoz – admin interfész – szükséges stílusok)
  5. sminkneve.css (a maradék, azaz egyéni blokkok és az összes alsóbb szintű, specifikus stílus)

Ezzel szemben a Drupal rákényszerít arra, hogy modulok szerint szervezzük a stíluslapokat:

  1. system.css
  2. aggregator.css
  3. book.css
  4. ... stb.

Első ránézésre van benne logika, csak aki napi 8 órában CSS-szel foglalkozik, az tudja, hogy egy ilyen módon szervezett CSS megírása és karbantartása dupla munkát jelent.

Az egyetlen ésszerű munkamódszer az, hogy első körben lenullázzuk a böngészőket, utána pedig valamilyen logika szerint az általánostól (p, a, blockquote) haladunk a specifikus (#wrapper #container .sidebar .block p) felé.

Az pedig, hogy ki milyen logika szerint szeret dolgozni, egyénileg eltérő. A lényeg, hogy a fenti, általános -> specifikus irányba menjen, akkor 5 perc alatt kiigazodom egy másik tervező fájljaiban.

Ha jól értem, a Drupal 6-ban annyival lesz jobb a helyzet a mostaninál, hogy például a Drupal által adott system.css-t lecserélhetem a sajátomra, nem kell a felülírni. Ez egy félmegoldás, én biztos nem fogom használni. Maradok a régi jól bevált gányolásnál, és a page.tpl.php-ben kikapcsolom az összes beépített stíluslapot.

Az egyébként nagyszerű, hogy a template fájlok (.tpl.php) nagyobb figyelmet kapnak és könnyebben kezelhetővé válnak.

Paal képe

Ez a "lenullázás" érdekelne. Hogyan lehet ezt megcsinálni a legegyszerűbben?

Köszi, Pali

Ps.: valami hasonlóra kell gondolni?
http://meyerweb.com/eric/thoughts/2007/05/01/reset-reloaded/

--
Palócz Paal Pál, a drupal.hu admin csoportjának tagja
Ajánlott olvasmány: Eric Steven Raymond - Hogyan kérdezzünk okosan

tolmi képe

Az egész arról szól, hogy a különböző böngészők különböző alapbeállításait egységesítsük (pl. img tag-nek a padding-jét egységesen 0-ra állítsuk). Semmi másról.

A legegyszerűbb pedig ha egy előre elkészített CSS-t betöltesz. :) Pontosan ahogy írod.

--
Tolmács Márk
Drupal bandita

Edit képe

Igen, ezt használom.

Hojtsy Gábor képe

Erre eddig is volt lehetőség, bármelyik meglévő smink CSS fájljainak módosításával.

Nem egészen. Ha egy meglévő sminkhez készítettél leszármazott sminket, akkor ott lehetett csak stíluslapot használni. A Drupalhoz magához nem lehetett csak CSS stíluslapot adni, mert page.tpl.php-t várt, hogy az alap phptemplate sablonokat használja, vagy .theme fájlt, hogy annak sminkjét használja.

Ami a CSS szervezést illeti, nem kell a page.tpl.php-ben gányolni, mert az .info fájlból felülírhatóak a rendszer és modulok CSS fájljai saját stíluslapokkal. Ha ezek a stíluslapok nem léteznek, vagy üresek, akkor olyan, mintha törölted volna azokat a stíluslapokat. Ugyanígy az .info fájlból adhatsz hozzá saját CSS-t, amit úgy szervezel, ahogy akarsz. (Magyarul végülis a csak CSS alapú smink azzal együtt értendő, hogy .info fájlok azért kellenek :)

Edit képe

Ha egy meglévő sminkhez készítettél leszármazott sminket,

Igen, erre gondoltam.

Ha ezek a stíluslapok nem léteznek, vagy üresek, akkor olyan, mintha törölted volna azokat a stíluslapokat.

Ha nem léteznek, akkor gondolom a Drupal teleírja a rendszernaplót hibaüzenetekkel (most nem tudom kipróbálni, de este megnézem).

Ha üres fájlokat töltök fel – mondjuk bekapcsolom az összes core modult, meg telepítek hozzá még egy pár kiegészítőt, máris 10-12 üres stíluslapot kell kerülgetnem a sminkmappában. Hát, ízlés dolga...

Akit érdekel a téma:

Én továbbra is nagyon várom a Drupal 7-et :)

Hojtsy Gábor képe

Ha nem léteznek, akkor gondolom a Drupal teleírja a rendszernaplót hibaüzenetekkel (most nem tudom kipróbálni, de este megnézem).

Szerintem nem írja tele, maximum több file_exists() hívás fut majd. Végülis úgyis CSS aggregációt használsz, ha könnyíteni akarod a szerver dolgát, akkor pedig teljesen mindegy, hogy mennyi nem létező CSS volt.

Én továbbra is nagyon várom a Drupal 7-et :)

Biztos érdemes. De az első link, amit küldtél Drupal 6-ban benne van, a második pedig az első duplikátumaként van most megjelölve (bár én ezzel nem értenék egyet, de ez van).

Illyés Edit képe

Szerintem nem írja tele

Tényleg nem írja. :) Régebben, talán még a 4.7-es, 4.6-os időkben volt olyan, hogy ha nem találta a style.css-t, akkor hagyott egy hibaüzenetet a logban.

Akkor ez így egy teljesen korrekt megoldásnak tűnik – mindenesetre sokkal szebb, mint láncfűrésszel hadonászni a page.tpl.php-ben. Köszi az infót. :)

Hojtsy Gábor képe

Egy sima CSS alapú új smink: http://jeff.viapositiva.net/node/539

pp képe

Úgy látszik sikerült egy hatalmas akadályt elhárítani a Drupal útjából ;)
Tenger smink fog itt folyni kéremszépen!
hazaértem kipróbálom ;)

pp

pp képe

vagy csak lassú ;)))

pp

Illyés Edit képe

Kipróbáltam, és sokkal jobb, mint amire számítottam. Bár nem tudni, Earl Miles mennyi munkát tett bele...

Ahogy várható volt, sok helyen nem illeszkednek pixelpontosan a dolgok, kiegészítő modulok bekapcsolása után elég hamar elkezd az oldal erodálódni... Összetettebb honlap esetén kb. a munkának a 20-30 százaléka spórolható meg ezzel a módszerrel, úgyhogy szerintem még egy ideig nem fognak a Drupal themerek éhenhalni ;)

A fő gondot az jelentheti, hogy az ilyen ingyenes template-ekhez általában nem adják oda a grafikai forrást, tehát a látvány színvonalas, pontos adaptálása időnként elég nehézkes, ha nem lehetetlen.

nevergone képe

Kérdezek egy olyat, amely biztos mindenkinek triviális, csak nekem nem az... előre is elnézést érte.
Egy pusztán CSS alapú sminknél (vagyis ahol nincs semmilyen .tpl.php fájl) honnan lehet tudni, hogy milyen CSS kiválasztókat és osztályokat lehet használni az egyes tartalomrészek formázására?
Mert míg pl. a Garland sminkben ott van az a rész page.tpl.php fájlban, hogy <div id="header">, addig egy olyan sminkben, amely nem használ template fájlokat, ilyen nincs megadva sehol... vagy tévedek, esetleg rosszul értelmezem az egészet?

Illyés Edit képe

A page.tpl.php átköltözött a system modul mappájába. Ha a Drupal nem talál a sminkben page template-et, akkor azzal dolgozik.

Hasonlóképpen, a node.tpl.php a node modul mappájában van, stb.

nevergone képe

Köszönöm a választ!
Utánanéztem (egybevetettem a Drupal 5 és a Drupal 6 adott könyvtárait), és így a hozzászólásod alapján már értem, hogyan működik egy ilyen "csak CSS -t" használó smink.