Készsítettem egy módosított garland sminket. Az egyik lényeges momentuma az, hogy a felső színátmenet helyén egy background képet jelenítek meg. Ennek a beállítása alapból a style.css-ben van. Onnan kiemeltem, és behelyeztem a page.tpl.php megfelelő div tagjába a style propertybe. Azt szeretném megoldani, hogy ezt az értéket (url-t) egy belső változóból tudjam kiolvasni a page.tpl.php-ban, valamint a smink adminisztrációs beállító oldalán változtatni lehessen az értékét.
Tehát hol hogyan tudok a smink adminisztrációs oldalhoz egy új blokkot definiálni, esetleg egy meglévőt kibővíteni néhány mezővel? Valamint a definiált mezők értékeit egy belső változóba helyezni? Egyáltalán, merre keresgéljek?
Előre is köszönök bármilyen segítséget, még nagyon láma vagyok a drupalban különben.
garland módosítása
Fórum:
Drupal 6
Ha jól értem, akkor cserélgetni szeretnéd a fejléc háttérképét. Ezt egyelőre csak a style.css módosításával lehet elérni. Kerülő megoldás, ha a headerbe teszel egy blokkot, ami tartalmazza a fejléced összes szövegét, és annak a hátterét módosítgatod kézzel a blokk beállítás oldalán, ekkor nem kell hozzáférés a fájlokhoz.
Valahol mintha olvastam volna, hogy a Drupal 6-ban lehet majd smink változókat definiálni és a smink admin oldalon beállítani. Lásd a HEAD verziót a Drupal.org-on.
Ha van valami rendszer abban, ahogyan a háttérképek változnak, akkor lehet a sminkbe programozott megoldást beépíteni – pl. minden kedden a piros pettyes kép legyen a háttér, stb. – ez sminkben megoldható.
Ha jól értem, akkor
Ha jól értem, akkor cserélgetni szeretnéd a fejléc háttérképét.
Igen, de nem programozottan, hanem admin felületből.
Valahol mintha olvastam volna, hogy a Drupal 6-ban lehet majd smink változókat definiálni és a smink admin oldalon beállítani. Lásd a HEAD verziót a Drupal.org-on.
Az szomorú, hogy "még nem lehet" programozás nélkül. De gondolom ahol a mostani smink admin oldal tartalma felépül azt a részt át tudom kicsit írni, ha már ez a fixa ideám. A bajom leginkább az, hogy nem találom hogyan és miből állítódik elő az adminisztrációs form. Nincs tipped, hogy merre keresgéljem?
system_theme_settings()
Az includes/theme.inc fájlban van egy theme_get_settings() függvény, ahhoz hozzá tudod adni a beállítást alapértékkel. A hozzá tartozó űrlap kialakításához pedig a modules/system/system.module fájlban található system_theme_settings() függvény módosítása szükséges.
Én mondjuk nem állnék neki a motort hekkelgetni egy megjelenítési probléma miatt, de ez a te dolgod...
pici trükk vagy form alter
Kérdezném, hogy a sitelogo-t használod-e? (az alapból egy drupalicon) Mert ha nem akkor kár vesződni, egyszerűen azt kell a háttérképnek beállítani, és akkor már meg is oldottuk a problémát, színes szagos feltöltős formmal egyetemben.
Ha ez nem elég, akkor én azt csinálnám, hogy létrehoznék egy modult, ebben a hook_form_alter függvénnyel kibővíteném a smink beállító formot. Beletennék egy fájlfeltöltő inputot, a fájl nevét pedig beletenném egy drupal változóba, majd ezt a változót a sminkben hozzárendelném egy smink változóhoz.
pp
Palócz István
https://palocz.hu | https://tanarurkerem.hu
nem értem
Ezt nem értem :( Megadja a style.css-ben, hogy a header háttere legyen a smink admin oldalon keresztül feltöltött hatter.jpg fájl. Aztán ezt a hatter.jpg-et cserélgeti. De ez nem fog látszani, mert a böngészők betárazzák a hatter.jpg első verzióját. Vagy valamit figyelmen kívül hagyok?
nem értem mit nem értesz ;)
Akkor azt mondod, hogy ha kicserélem a logo-t akkor az sem fog változni?
A kérdező eleve a page.tpl.php-ba tette bele a hátteret, gondolom így:
Ettől fogva, ha a kicseréli a "logo"-t akkor kicseréli a header hátterét. (most vonatkoztassunk el attól, hogy a logo egy aranyos kis kerek valami, hisz lehet az egy nagy benga téglalap is;))
Persze ez csak akkor jó megoldás, ha nem használja a logo-t, ha használja akkor is meg tehet annyit, hogy erre a háttérképre szépen ráteszi, csak ezt már nem biztos, hogy olyan egyszerű elmagyarázni a júzernek ;))
pp
Palócz István
https://palocz.hu | https://tanarurkerem.hu
OK
OK, így már világos, írja is a kérdező, hogy page.tpl.php-ba tette. Egyébként a logó képet simán bele lehet hardkódolni a sminkbe, és akkor felszabadul a $logo változó.
A megoldás
Telibe találtad! Így csináltam.
Sajnos a logót használom kis kerek valamire, tehát nem jó megoldás. Bár gondoltam rá, de az ugye nem background, tehát ki tud lógni a header részből nagyon :(
De megoldottam! :) A megoldás az lett, hogy a colorból kiindulva készítettem egy saját modult a hangzatos hdbg néven. Nem tesz mást (még) mint kirak a módosított garland theme admin oldalára egy editboxot, amelybe be lehet írni a háttérkép path-ját. Majd a page.tpl.php-ban ezt kiolvasom. (A saját modullal sikerült elkerülni, hogy a system-ben keljen nyúlkálni.) Ez a kiolvasás az egyetlen nekem nem tetsző része a kódnak. Így fest:
Hogyan tudnám ezt az értéket csak egyszerűen variable_get nélkül meghivatkozni? Mint ahogyan pl a logo-t meghivatkozza a template a $logo -val? Hogyan kéne elmentsem a modulomban?
változik?
És ez állandóan változik?
Nem változik.
Jogos a meglátás a logo-nem változik, tehát a $logo változó tartalmát fel tudtam volna használni, de hát most már van saját változóm, meg modulom. Már csak arra akarok rájönni, hogyan definiálhatok könnyebben elérhető változót mint pl a $logo.
_phptemplate_variables
A változók alapvetően egyformák, csak vannak olyanok, amelyeket sminkből is elérhetővé tettek. Ezek sorát lehet bővíteni:
Making additional variables available to your templates
ezaz
Igen köszönöm erre volt szükségem.