új alsmink létrehozása?

belulo képe

Megtetszett nekem a Black Mamba smink. Természetesen itt-ott át akarom alakítani. Tudom, hogy célszerű alsminket létrehozni, hogy a smink esetleges frissítéseikor ne íródjanak felül az általam megejtett módosítások.

Ha alsmink létrehozása helyett én ezt az eredeti Black Mamba sminket átnevezem, átírom az .info fájlt, a stíluslapokban módosítok, akkor valójában ezzel egy új saját sminket kapok. Az eredeti smink frissítése ezt nem érinti.

A kérdésem a következő: van-e ennek valami hátulütője? Szól-e valami ez ellen?

Drupal verzió: 
Fórum: 
pp képe

Azért még érdemes a template.php-ba is belekukkantanod, ha van!

Alsminket tipikusan akkor érdemes létrehozni, hogy ha csak pár kisebb változtatást hajtasz végre. Ha az összes sablont módosítod akkor nyílván érdemes már azt csinálni amit Te is teszel éppen.

pp

0
0
Atyla képe

Igazán akkor lenne pazar ez az alsmink dolog, ha csak azok a file-ok szerepelnének az alsmink mappában, amelyekben módosításokat végeztem az eredetihez képest, tehát ha. pl. csak a style.css-t változtattam, akkor az, meg az .info file, amiben megadom a szükséges dolgokat.

Ki is próbáltam, lett belőle egy üres semmi, tehát a többi file-t nem tettem át, abban a reményben, hátha az alap sminkből veszi majd a többi dolgot (php, többi css, stb.)

Mivel nem sikerült, rákerestem a file-okra, melyikben van utalás az eredeti sminkre.

Csak a template.php-ban volt, de ott sem olyan, ami pl. egy útvonalat adott volna meg.

Ezer szerint nem lehet ezt így megcsinálni?

0
0
hosszu.kalman képe

Az alsmink úgy működik, ahogy leírtad. Létrehozol egy mappát az alsminknek, beleteszed az info fájlt, abban jelzed hogy mi a fősmink, és mondjuk megadod neki az új css elérésér:

name = Alasminkem neve
description = Leírása
core = 6.x
version = VERSION
engine = phptemplate
 
stylesheets[all][] = uj_css_neve.css
 
base theme = fosmink_neve

Ekkor behúzza az eredeti smink css-eit tpl-jeit és a Te új css-edet is. Fontos hogy más legyen a neve mint az eredeti sminkben, mert akkor felülírod és csak a Tiéd fog bekerülni.

A template.php-ban pedig úgy működik, hogyha phptempalte_themehook() a fgv prefixek akkor az alsminkre is végrehajtódnak, hapedig sminkemneve_themehook() akkor azokon nem...ha jól emlékszem.

0
0
aboros képe

dokumentáció: http://drupal.org/node/225125
alsmink struktúra és öröklődés

több alsminkem is van egy rendszerbe, egyesek egymás gyerekei, mások azok gyerekei, megint mások azok gyerekei. szóval olyan is van, hogy egyik smink dédanyukája egy másiknak. az öröklődés még a dédszülő szintről is megvan szépen.

mutasd az alsminked .info fileját és milyen más fileok vannak még benne?

tessék itt egy garland alsmink, legyen a neve mondjuk zaphod.
zaphod.info:

name = Zaphod Beeblebrox
core = 6.x
base theme = garland
 
stylesheets[all][] = zaphod.css

zaphod.css:
a:hover {
color: red;
}

ez pont egy garland lesz piros linkekkel. van amit (logikus okokból) nem örököl és olyan is van, amit csak bizonyos feltételek esetén örököl, de erre van szép magyarázat a dokumentációban.

0
0

-
clear: both;

Atyla képe

Megpróbálom még egyszer, tehát csak az .info file kell az alsmink mappába, semmi, de semmi más. Ha sikerült, akkor nem írok :-)

Aboros: nem semmi lehet követned a dédanyákat :-)

0
0
Jenő képe

Kell még egy css fájl is, de a neve más legyen, mint az alapsmink css-ének.

0
0
Atyla képe

Két file van az alsmink mappában:

1. alsmink.info
2. alsmink.css (egyelőre üres)

Viszont a régiókat be kellett tennem az .info fileba, különben nem jelennének meg.

0
0
aboros képe

a régiók pont nem öröklődnek sajnos.
más dolgok sem öröklődnek még, le van írva a linken korábban mutattam. érdemes elolvasni, hogy ne lepődj meg később, hogy valami miért nem megy. ;) például a tplek öröklődése is trükkös.

0
0

-
clear: both;

Atyla képe

Elolvastam, amennyire tudok angolul (a google fordítóval sokszor még nehezebb megérteni...).

Észrevettem viszont valamit, ráadásul erre számítottam is: nyilván, ha kicsit is, de lassítja a megjelenítést, hogy előbb betölti a rendes sminket, majd a változtatásokkal felülírja. Ezt úgy lehet érzékelni, ha a böngésző frissítő gombját gyorsan nyomkodom: amíg az alapsminket használva akármilyen gyorsan is csinálom, nincs semmi probléma, az alsmink esetében néha-néha, úgy minden 10-15-dik kattintásra a sima szöveges, illetve hiányos megjelenítés ugrik be egy pillanatra, ami aztán persze felépül rendesen.

Ez viszont egy nagy honlapon, ahol a forgalom se kicsi biztos érzékelhetőbben jelentkezik.

Ha nem alsminkelnénk, hanem bűnös módon az eredetibe piszkítanánk bele, akkor ez nem lenne.

És igaz, hogy frissítéskor ez probléma forrása, de arra sincs garancia, hogy azok a css hivatkozások, amiket az alsmink css file-jába beteszünk megmaradnak később, azokat át kell majd néznünk egyenként, ha nem akarunk meglepetést.

0
0
aboros képe

előbb betölti a rendes sminket, majd a változtatásokkal felülírja.

az alsminked akkor is működik, ha a szülő sminket nem is engedélyezed egyátalán. nincs ilyen, hogy "betölti a sminket" akkor se, ha nincs alsminked.

az alsmink annyi, hogy a smink regisztrációs tárban az alsminked megkapja a szülő file- és függvénybejegyzéseit a regisztrációs tár felépítésekor.. ami jobb helyeken nem történik meg minden oldalletöltésnél. :)

a csst aggregáljuk, az oldalakat cacheljük. nagyjából semmi köze a sebbességhez annak, hogy alsminked van e vagy nincs.

a bekapcsolt sminkek száma lassíthatja az oldalt, de ez akkor is igaz, ha egyikse gyereke a másiknak.

0
0

-
clear: both;

Laza képe

Mondjuk, szerintem tök logikus, hogy nem öröklődnek, ha a CSS-t akarom csak buherálni, arra ott egy .info fájlban definiálandó mondjuk local.css, felesleges az alsmink.
Ha már régiókat és tpl.php-kat akarok túrni, azért már pont érdemes. Szerintem.

0
0
hosszu.kalman képe

Contrib sminkekbe nem szokás beleírni, úgyhogy szerintem ha csak css-t akarsz buherálni akkor is csinálj alsminket.

0
0
Atyla képe

Nekem tetszik az alsmink megoldás, mert tiszta, látom, mi az, amit változtattam, hiszen csak azok a dolgok vannak ott, amik mások, csak kár, hogy pl. a régiók nem öröklődnek, vagyis azt meg kell adni az info dokumentumban ismét. Mintha nem lenne teljesen felkészítve a rendszer az alsminkeléshez.

Már korábban írtam volna, de próbáltam meggyőzni magam, hogy tévedek: olyan érdekes dolgok vannak: 99%, hogy jól emlékszem: ugyan azokat a beállításokat csinálom, és nem mindig az az eredmény.

Itt van pl. ez:

fieldset .top {
background: url(images/fieldset_top_ornament.png) 100% -10px no-repeat;
}

Nem akarom, hogy megjelenjenek ezek a kis ábrák, ezért ezt betettem az alsmink css-ébe és kikommenteztem a background részt a ";" jelig és el is tűnt. Aztán csináltam pár próbát egyéb dologban és, hogy ne legyen tele szeméttel a drupalom, kidobtam a sminket és újból betettem, megcsináltam ugyan úgy az alsminket: és most nem tűnik el.

Most biztos azt fogjátok mondani, hogy valamit mégis máshogy csináltam...

Megtehetném, hogy ezeket a png-ket Photoshopban átlátszóra alakítom, de szeretnék intelligens megoldást, tehát eleve kizárni css-ben ezeket az ábrákat.

Korábban barmoltam, mindenhová belepiszkáltam, de olvasom itt egyesek hozzászólását és meggyőztek: mindent szakszerűen kell csinálni. Igaz, így lassabban haladok, de hosszabb távon ez a nyerő.

0
0
aboros képe

a megfelelő direktívát újra kell használnod.
pl tegyük fel, hogy ez a szabály van valamelyik cssbe (tökmindegy melyikbe, lehet akár a coreba is)

fieldset .top {
background: url(images/fieldset_top_ornament.png) 100% -10px no-repeat;
}

ha nem szeretnéd ezt, akkor a saját cssedbe nem elég felvenni a fieldset .top célzást és üresen hagyni, hanem "törölnöd kell" a hátteret, így ni:

fieldset .top {
background: transparent none;
}

de most már kezdünk nagyon eltérni az eredeti témától amúgy.. ;)

0
0

-
clear: both;

szantog képe

Nem akarom, hogy megjelenjenek ezek a kis ábrák, ezért ezt betettem az alsmink css-ébe és kikommenteztem a background részt a ";" jelig és el is tűnt.
Hát az elég furcsa lenne, ha ettől tűnt volna el, ugyanis attól, hogy kikommentezed, attól még az eredetileg behúzott css-ben benne van.
Ha el akarod tüntetni, nem kikommentezni kell, hanem felülírni az adott deklarációt:
fieldset .top {
background:none;
}

0
0

----
Rájöttem, miért kérdezek olyan ritkán a drupal.hu-n. Amíg szedem össze az infokat a kérdéshez, mindig rájövök a megoldásra.

Atyla képe

Mondjuk azt, hogy nem off, azaz ideillik a téma, mert végülis arról van szó, hogy miként lehet az alsminkes megoldással változtatást eszközölni egy megjelenésben.

Szóval: ezt már én is kipróbáltam, a kommentezés helyett "background: none;", de sem akkor, sem most nem vezetett eredményre. Ahogy sajnos a "background: transparent none;" kód sem.

Igen, tudom, hogy nem lehetséges, hogy ugyan azt csináltam és mégsem ugyan az lett (hacsak valami ettől függetlenül meg nem változott), mivel a számítástechnika egzakt tudományág.

Van valahol már leírás erről (magyarosul :-), hogyan fésüli össze kód szinten az alapsminket az alsminkkel?

Tehát eljön pl. a style.css file feldolgozása és megkeresi az alsmink info dokumentumában, hogy ugyanarra az eszközre, (pl. monitor) melyik css file van beállítva és akkor összehasonlítja soronként és ahol ugyan az a deklaráció van, ott egyszerűen az alsminkben lévőt teszi be az összefésült programsorba?

0
0
hosszu.kalman képe

Először behúzza a fősmink css-eit aztán az alsminkét. Emiatt az alsmink css-ei töltődnek be utoljára így ha egy osztályt felülírsz abban, az lesz érvényben. Attól lehet hogy mégsem sikerült hogy a fősmink alaposabban írta le a környezetet ezért az szigorúbb. Pl a #left ul.valami a.piroslink az szigorúbb mint a .piroslink, ezért az első fog teljesülni rá. Ha megnézed firebug-ban akkor pontosan látod hogy milyen css hivatkozik rá, azt hozd létre az alsmink css-ében és úgy írd felül a hátteret, akkor működni fog.

0
0
rendszereto képe

Javaslat: próbáld ki egy másik sminkkel, hogy alsminket készítesz és ezeket a változtatásokat megcsinálod. Ha nem működik, akkor valamit rosszul csinálsz mégis, ha működik, akkor a sminkben kell keresgélni a megoldást (uram bocsá, hibát).

0
0