Sziasztok van egy D7-es oldalam, amin engedélyezem a sminket változtatni, a global beállításokban szeretném megadni a logo-t és a favikon-t és azt szeretném, hogy minden téma ezt használja, vagyis a téma ne használja a sajátját, és nem szeretném a témákként külön-külön beállítani a logo-t és favicon-t.
Tudom, h nem minden téma támogatja a global settings adatait.
Hogyan lehet egy olyan egységes módszert kialakítani arra, hogy minden téma, még az is ami alapértelmezetten nem támogatja, a global beállításokból vegye a logo-t és a favicont?
Melyik modulhoz, modulokhoz kapcsolódik a téma?:
Drupal verzió:
Fórum:
Mondanál egy példát azok
Mondanál egy példát azok közül, amiket használni szeretnél, és nem támogatja?
Illetve: az adminfelületen ennél/ezeknél is megváltoztatható a logó, csak a globálisat nem szeretik?
/admin/appearance/settings <-- itt lehet beállítani a globálisat.
/admin/appearance/settings/foo_theme <-- itt lehet beállítani a smink-specifikusat.
Ha a globálist megadod, és ezeknél a smink-specifikus beállításoknál meghagyod a pipát a "Use the default logo" mellett, akkor - a globálisan beállított helyett - a saját defaultját használja?
Míg ha megadsz ott valami egyedit, akkor meg azt? Hogy van ez a dolog?
Illetve, még egyszer, egy link egy ilyen d.o-s sminkre segíthet.
Röviden
Azt szeretném elérni, hogy az /admin/appearance/settings megadott logo, és favikon képet jelenítse meg az összes téma, ami fent van az oldalon.
Vagyis ne kelljen állítgatnom minden egyes téma oldalán a dolgokat.
De nem minden téma támogatja azt, hogy innen szedje a dolgokat:/admin/appearance/settings vagyis ezeknél a saját beállításai között kell megadni a képeket.
ezek többnyire megvásárolt symphony themes.
itt azt írja az illető, h nem minden téma támogatja ezt:
http://www.inmotionhosting.com/support/edu/drupal-7/customize-theme/uplo...
mini
Ha megvásárolt, akkor támogatás?
Csak egy óvatos tipp, hogy nem lehetne kérni a beszállítótól a saját termékei apró fejlesztését, mint a global settings támogatása? Bár más világ, de nekem a Magentós éveimben csak pozitív tapasztalatom volt az ilyen esetekben, êrdemes lehet Drupalos szolgáltatôknál is rákérdezni, nem?
írtam
írtam nekik is de semmi válasz
mini
módosítás
nem ismerem jól a sminkek működését, melyik file miért felelős, csak azon gondolkodtam el, h a logo és favikon megjelenítését nem lehet szabályozni valamilyen változón keresztül.
ha a változó értéke ez, akkor figyelembe veheti a global settings-et, ha más az értéke akkor csak a saját beállításait vegye?
mini
$logo variable a page.tpl.php-ban
A globális vs. smink-specifikus beállítás támogatása (és felülbírálhatósági lehetőségei) közötti különbséget nem ismerem, mert nem kellett még egyszerre egy oldalhoz több sminket is alkalmaznom.
A következőket már tegnap este leírtam, mielőtt aztán inkább visszakérdeztem, de most úgy látom, hogy mégiscsak tudnád hasznát venni, így ideteszem:
Logó (lehetséges) elhelyezése a sminkben:
A logó egy kicsit egyértelműbbnek tűnik mint a favicon.
Szóval nincs sok tapasztalatom mindenféle sminkekkel, mert inkább magam szeretem elkészíteni azokat, vagy standalone módon, vagy a Zen gyermekeként. Emiatt nem tudom, hogy melyik smink milyen formában nem támogatja. Viszont magamból kiindulva esetleg tudok egy tippet adni.
Előfordul, hogy nem szeretném lehetővé tenni, hogy a beállításokban elállítható legyen a logó, amit alkalmazok (se globális setting, se smink-specifikus, se semmi).
Ezt úgy érem el, hogy a template_preprocess_page()-ben (smink template.php file-jában) megadok egy
$variables['my_hardcoded_logo'] = 'foo';
-t, és utána a sminkemben használt page.tpl.php suggestionben pedig kiíratom, hogyprint $my_hardcoded_logo;
. Ez tehát nem az adminfelületen beállított, hanem a preprocess_page-ben statikusan megadott érték. (Mondjuk én nem a tömegeknek szánt sminkekben teszek ilyet, hanem egyedi megrendelésre készülőkben.)Ha most egy ilyen sminkemet szeretnéd rávenni, hogy használja az adminfelület beállítását, akkor azt tudnád csinálni, hogy készítesz hozzá egy gyereksminket, és override-olod a page.tpl.php-ját azzal, hogy kimásolod az enyémből, beteszed a gyerekbe; mikor megvan a másolat, akkor, ha megtalálsz benne konkrétan valamilyen
$my_hardcoded_logo
-szerűséget (mindegy, csak nem sima$logo
), és kicseréled azt egy$logo
-ra, valószínűleg az elég is lehet.A
$logo
variable a page.tpl.php file-ban használva az adminfelületen beállított logo-t jelenti.Ha van logo-ra utaló variable benne, de nem pontosan a $logo, akkor - magamból kiindulva - gyanítanám, hogy a hardkódolt megoldást takarja, tehát azt cserélném le $logo-ra.
Amúgy a legeredetibb logo-elhelyezést a drupal gyári page.tpl.php-jából lehet ellesni, bár nem biztos, hogy szükség volna rá:
Ezt a file-t magad is megtalálhatod a /modules/system/ könyvtárban, és benne ezt a részletet. Ha mégis módosítanád a HTML wrappereket, akkor némi .css-t is be kéne tenni a gyereksminkbe, hogy a változtatások következményeit helyre lehessen igazítani.
Faviconról:
A favicon a html.tpl.php file-ban kerül be, így:
<?php print $head; ?>
A html.tpl.php-t először az overrideolni szándékozott sminkedben keresd, vagy ha ott nincs, akkor a /modules/system/ -ben van a leg-eredetibb.Ez annyiban komplikáltabb, hogy a
$head
variable az többmindent egyszerre tárol, ha tehát a favicont továbbra is meghagyták abban, de mégis manipuláltak rajta valamit, akkor feltehetően a smink template.php-jában a template_preprocess_html()-ben tehették, azt kéne megnézni, hogy van-e valami trükközés.EDIT: Van olyan, hogy
hook_html_head_alter()
, az sokkal inkább alkalmas a favicont manipulálni, inkább azt nézném, hogy van-e, és ha igen, akkor mi.Egyéb favicon parák:
A favicon az nagyon szeret "belegyógyulni" a böngészőkbe, avagy ha a böngésző egyszer eltárolt egyet, akkor nagyon nehezen hajlandó felismerni, ha esetleg új van, és lehet hogy eredményesen megváltoztattad már, csak a böngésződ nem mutatja.
Emiatt én, ha változtatok a faviconon, akkor nem csak felülírom a régi favicon.ico-t, hanem mindenképpen új file-névvel látom el, pl favicon-2.ico. Ettől jobb az esélye, hogy a böngészőnek "leesik a tantusz".
Emellett te otthon fejlesztés közben azt is meglépheted, hogy forráskód nézetre váltasz, kikeresed a favicon likjét, megnyitod, látod a favicont, és nyomsz rá egy shift-frissítést. Ez is segíthet a böngészőnek észrevenni. Viszont, ezt csak te tudod megtenni, meg a kollégáid, akiknek elmondod ezt, rendes userektől ezt nem várhatod, ha tehát a honlap már túl van az élesítésen, és kiért a látogatók böngészőibe, akkor marad a favicon átnevezése.
Összefoglalva:
template_preprocess_html()
éstemplate_preprocess_page()
átnézése (EDIT:hook_html_head_alter()
is), hogy csinálnak-e valami favicon- illetve logo-specifikusat bennük,Megjegyzés:
template_preprocess_html()
vagytemplate_preprocess_page()
(EDIT: vagyhook_html_head_alter()
) függvényeiben, akkor az komplikáltabb lehet, mert ott ezek a preprocessek továbbra is meghívódnak (és továbbra is meglépik, aminek esetleg te nem örülsz), míg a gyereksminkedben implementált ugyanilyen nevűek pedig ráadásként hívódnak meg, még egyszer lehetőséget teremtve a beavatkozásra. Lehet, hogy olyankor nem birkózni kéne próbálni az eredeti smink-készítőkkel, hanem a saját (utólag, kiegészítésként meghívódó) preprocesseidben inkább implementálni valamilyen más megközelítést (és a$variables
tömbbe felvenni az eredményét), és utána a .tpl.php-k saját, másolati példányaiban azt a változót használni. Vagy nem tudom. Ilyet se kellett még csinálnom.Mindez talán lehetett volna sokkal egyszerűbb is, ha nem vaktában kell találgatni. :)
Olvasmány: "About overriding themable output" https://drupal.org/node/173880
EDIT 2:
nagyon köszi
köszike szépen, nagyjából sejtem mit is hogyan kellene, de azért kell rá időt szánnom.
ha megoldódik a probléma mindenképpen visszaírok és nagyon köszike
mini
A smink mappájában lévő logo
A smink mappájában lévő logo.png fájl a smink alapértelmezett logoja
Geva
----- Számítások - Kalkulátorok