Kolize tématu Pixture_reloaded, resp. modulu color a Domain Theme (Domain Access)
Dobrý den,
mám následující problém:
Na svém webu jsem zatoužil po subdoménách a při hledání narazil na výborně vypadající balík modulů Domain Access. Používám téma vzhledu Pixture reloaded, tak jsem si řekl (po úspěšné instalaci zmíněného modulu), že pro každou subdoménu vytvořím jinou barvičku pomocí modulu color. Spolupráci s ním zajišťuje součást balíku Domain Access nazvaná Domain Theme. Problém je v tom, že když se pokusím změnit barvu tématu pro konkrétní subdoménu (nedělá se standardně v úpravách tématu, ale právě skrze Domain Theme modul v nastavení konkrétní subdomény v Nastavení webu/Domain). Jako problém vidím zejména to, že barevné schéma se prostřednictvím modulu Domain Theme uloží do cesty zvolena_cesta_v_systemu_souboru/Domena_ID_subdomeny/color, přičemž obvyklá cesta v systému souborů je sites/default/files. Celá cesta s uloženým schématem pak vypadá nějak takhle: sites/default/files/domain4/color/pixture_reloaded-sd216fs. Ze zkušenosti vím, že modul color umí přečíst vytvořené schéma pouze přímo ze sites/default/files/color, ale netuším kde to změnit (buď v modulu Color nebo v Domain Theme).
Výsledkem všeho je, že když se pokusím změnit barevné schéma na subdoméně, nenačte se CSS (protože ty soubory to nenajde).
Možná, že to dělá i to téma, ale Garland se mi chová úplně stejně.
Nemáte někdo s tímto zkušenost?

Jedna z cest (nevím, jestli
Jedna z cest (nevím, jestli nejjednodušší, ale rozhodně košer – bez hacků typu „úpravy modulu“ :-)) by byla: vygeneruju si co potřebuju prostřednictvím modulu Color (css, obrázky), pak to všechno vezmu, udělám z toho regulérní podtéma a modul Color vypnu. A v Domain Access budu pracovat s těmi podtématy.
To jsem taky zkoušel, ale nějak to nende...
Dobrý den,
i to mě napadlo, ale tohle řešení ne tak úplně funguje – když překopíruju vygenerované obrázky a soubor style.css do původní složky tématu (ze které si pixture načítá základní barevné schéma) nějak to rozhodí layout.css, takže je tam jenom kus dynamiky. Samozřejmě bych to mohl přepsat ručně, ale nechci se s tím pachťat u cca 30 předpokládaných barevných schémat na stejném počtu subdomén.
Mimochodem, regulérní podtéma tématu pixture_reloaded lze udělat i s funkčním přístupem ke color modulu. Předpokládám, že to určitě víte, ale i třeba pro ostatní uvádím, že se pouze změní název tématu v .info souboru a v template.php se přepíšou všechny výrazy obsahující „pixture_reloaded“ na něco jiného (osobně užívám prefix – např. green_pixture_reloaded).
Obdobná věc se mi stala i když jsem zkoušel vytvářet subdomény ručně, bez domain access. Tam jsem to ale pořešil právě změnou cesty v systému souborů. Proto vím, kde je chyba…
Děkuji za reakci. Zdeněk
Regulérní podtéma lze udělat,
Regulérní podtéma lze udělat, ale u řady témat využívajících Color modul je ten problém, že jakmile uděláte změnu v CSS a pak úpravu přes Color, nový CSS soubor generovaný modulem Color ty změny přepíše.
Jinak předpokládám, že nic by se nemělo nakopírovat do „původní“ složky tématu. Vše, co se liší, má být v podtématu (a samozřejmě cesty, kudy si pro to Drupal sahá, musí odpovídat). Uznávám, že dělat to pro 30 podtémat může být trochu únavné ;-)
Ještě nabízím k úvaze, jestli by nestačilo nějak chytře využít $body_classes a pracovat jenom s jedním tématem.
To bych musel umět kód :-)
To už je pro mne, bohužel, španělská vesnice. Umím jen několik kousků, které jsem se naučil díky opakujícím se problémům při výrobě stránek v drupalu, ale jinak spíš spoléhám, že někdo jiný na webu napsal řešení. Nemám problém něco opsat :-) nebo i přizpůsobit, ale vymyslet… ee, to ještě ne. Problém je, že modul color používá příliš málo lidí na to, aby se problémy s ním někdo regulérně zabýval (to mi došlo po prohledání issues na drupal.org). S tím podtématem to tak bylo myšleno – mám podtéma s názvem green_pixture_reloaded. Už z názvu vyplývá, že by mělo být zelené, nicméně chtěl jsem mu zachovat funkcionalitu modulu color a proto jsem mu upravil template.php. De facto mám tedy podtéma formou kopie původního tématu. K tomu přepisování, u témat využívajících modul color se žádné css, myslím, nepřepisuje – jen se načítá jiné z odlišné složky (primární barevné schéma se načítá ze složky tématu, při změně se vytvoří nová složka v sites/default/files/color a odsud se načítají vygenerované obrázky a nově vygenerované css – v mém případě style.css).
Našel jsem, nicméně, tenhle postup, který by mi to mohl pomoci rozlousknout: http://drupal.org/node/288027. Pomohl by mi někdo s překladem do češtiny pro lamy? :-) Nějak tomu totiž úplně nerozumím (hlavně jak napojit ten .php soubor na to, co potřebuji, resp. navázat ho na domain theme module).
Děkuji. Zdeněk
„přepíše“ = přetíží (…
„přepíše“ = přetíží (… bohužel v češtině nemáme dobré slovo pro override). Podstatné je, a na tom se shodneme, že při použití modulu Color se při každé změně v nastavení generuje nové css (takže jakékoliv změny ve starém souboru, které případně ručně uděláte, jsou k ničemu). Některé téma má tuším přímo k tomu účelu zvláštní css soubor, kam můžete psát jen „vaše“ věci, a načítá se poslední, ale Pixture tuším ne (dá se to pořešit, ale už to prostě není klikací). Proto jsem psala nastavit Color, vygenerovat – použít css a obrázky – vypnout. Je to nejjistější, máte subtheme a můžete si tam dělat cokoliv. Přímo s tím napojeím na Domain Acces Vám bohužel v tuto chvíli nepomůžu, protože ho nepoužívám.
Tak už jsem zjistil, proč vygenerovaný style.css nepremává
Tak už jsem kápnul na to, proč (teda podle mé lamovské teorie) soubor style.css vygenerovaný modulem color po té, co s ním nahradím původní style.css ve složce tématu pixture_reloaded (nebo jeho podtémat), nefunguje.
Nový style.css totiž obsahuje šestiznakové definice barev psané malými písmeny (#ffffff, čísla jsou samozřejmě jen čísla) a původní style.css pouze tříznakové velkými písmeny (#FFF). Když to všechno poctivě přepíšu, funguje to. Celkem by mě zajímalo, proč to…
To se mi ale nechce (u 30 subdomén??? – to by mi trvalo měsíc, s mými schopnostmi :-)), takže jsem pátral a po opravdu úmorném snažení a zkoušení různých variací operací jsem objevil způsob, jak zpřístupnit funkce modulu color pro každé subtéma, a to, přátelé, bez nějakého přepisování a se zapnutým modulem color.
Tak tedy, je třeba postupovat takto:
Ta dá :-)
Ještě doplnění k Domain Access
Ještě doplňuji, že domain theme (tedy součást balíku Domain Access, která se stará o spolupráci subdomén s tématy vzhledu) vytváří subdomény trochu jinak, než když se to dělá ručně – využívá pouze jeden settings.php a pouze „vyrábí“ pro každé podtéma složku v sites default files (viz první příspěvek). Asi by stačilo do každé složky s podtématem, resp. do uvnitř vytvořené složky color dát mírně poupravenou verzi toho .php souboru, resp. nastavit symlink na sites/default/files. Nevím ale, čím nahradit prezentovanou proměnou $subtheme.
Poslat nový komentář