Logo és favicon global beállítás nem működik minden témára.

lili_ képe

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ó: 
eager képe

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.

0
0
lili_ képe

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

0
0

mini

Balu Ertl képe

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?

0
0
lili_ képe

írtam nekik is de semmi válasz

0
0

mini

lili_ képe

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?

0
0

mini

eager képe

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, hogy print $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á:

  1. <?php if ($logo): ?>
  2. <a href="<?php print $front_page; ?>" title="<?php print t('Home'); ?>" rel="home" id="logo">
  3. <img src="<?php print $logo; ?>" alt="<?php print t('Home'); ?>" />
  4. </a>
  5. <?php endif; ?>

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:

  1. Overrideolandó sminkben a template.php-ban a template_preprocess_html() és template_preprocess_page() átnézése (EDIT: hook_html_head_alter() is), hogy csinálnak-e valami favicon- illetve logo-specifikusat bennük,
  2. Overrideolandó sminkben a html.tpl.php és page.tpl.php ellenőrzése ugyanerre,
  3. Gyereksmink létrehozása,
  4. template.php létrehozása, az érintett preprocess függvények implementálása,
  5. És/vagy az érintett tpl.php-k átmásolása, érintett részek módosítása
  6. Esetleg egy .css file létrehozása a kiegészítő-szabályoknak, ha HTML wrappereken is módosítottál.

Megjegyzés:

  • Ha .tpl.php file-okat átmásolással overrideolsz, az egyértelműbb annyiban, hogy akkor az override-olandó smink eredeti .tpl.php-ja mintegy kikerül a folyamatból, nem zavar vizet, mert a file-nak csak azt az egy példányát használja a drupal, amit a gyereksminkedbe tettél.
  • Ha viszont "vissza kéne csinálni" valamit, amit már megléptek az overrideolni szánt smink template_preprocess_html() vagy template_preprocess_page() (EDIT: vagy hook_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:

2
0
lili_ képe

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

0
0

mini

Geva képe

A smink mappájában lévő logo.png fájl a smink alapértelmezett logoja

0
0