Context na základě termínů přidaných Rules
Snažím se zobrazovat různé bloky v sidebaru na základě data zobrazované události (políčko CCK typu date). Protože modul Context neumí použít hodnotu CCK date políčka jako podmínku, vytvořil jsem si pomocný slovník s termíny „budoucnost“ a „minulost“, které obsahu přiřazuji za pomocí modulu Rules. Problém je v tom, že pokud testuji „přechod z budoucnosti do minulosti“ v okamžiku „Content is going to be viewed“, Context nepoužije nově aplikované termíny při prvním načtení (při reloadu je pak vše v pořádku). Nemohu použít Rules Scheduler, protože používám argumenty (abych mohl přistupovat k políčku CCK), ani spouštění CRONem (ze stejného důvodu).
Napadají mne tři způsoby řešení. Měl bych:
- Použít jako reakci PHP kód, kterým bych vyvolal znovunačtení? Pokud ano, jak to správně udělat?
- Použít integraci s modulem Views Bulk Operation a spouštět pravidlo (Rule) CRONem? Pokud ano, jak to udělat správně? Slyšel jsem, že operace se provádějí s oprávněním anonymního uživatele.
- Použít něco úplně jiného?
Předem děkuji za všechny rady, tipy a postřehy. Pokud ode mne potřebujete více informací, dejte mi prosím vědět (jen předesílám, že používám stabilní verze modulů).
nevim jestli to uplne spravne
nevim jestli to uplne spravne chapu, ale nebylo by jednodussi nastavit ve view proste jeden blok ktery vybere z budoucnosti a jiny blok ktery vybere z minulosti? ve filtru lze porovnavat hodnotu CCK fieldu s NOW()
Domnívám se, že ne. O této
Domnívám se, že ne. O této možnosti porovnávání v rámci Views vím a používám ji. Pro ilustraci přidávám náčrtek, zachycující situaci:
no, a co presne ma byt teda
no, a co presne ma byt teda v tech sidebarech?
Bloky. Budoucnost – kalendář
Bloky.
u budoucnosti se vyprdni na
podle me objevujes ameriku, ale mozna se mylim a cele to nejak nechapu.
Ujasnění použití termínů
Ještě jednou – ty termíny „budoucnost“ a „minulost“ používám proto, že modul Context neumí (na rozdíl od modulu Rules) pracovat přímo s hodnotami CCK políčka typu Date. Proto aplikuju termíny na obsah pomocí Rules a tyto termíny pak používám jako podmínky (Conditions) modulu Context. Je to takto jasné?
Jinak není důležité, jaké bloky používám – to není součást problému.
Ještě nějaký nápad?
Nemáte ještě nějaký nápad? Nechce se mi moc věřit, že by podobný problém dosud nikdo neřešil…
skus
skus popisat co vlastne chces na jednoduchsich ale konkretnych prikladoch bod po bode.
Konkrétní příklad
Zkusím tedy přiložit konkrétní příklad – náčrtek připravované stránky. Věřím, že teď je zřejmé, čeho potřebuji dosáhnout.
Akce v budoucnosti:
Akce v minulosti:
Jasně, takže jde o to
Jasně, takže jde o to zobrazit zcela jiný bloky na základě hodnot v date field zobrazenýho uzlu.
Varianta bez Context, která mě napadá je mít dva regiony pro stejný sidebar – sidebar past, sidebar future a v šabloně je zobrazovat na základě podmínky, která si vytáhne datum z pole date u zobrazeného uzlu.
Případně si totéž ošetřit v nastavení viditelnosti bloku pomocí php
Varianta s contextem – kdyby se vám termín taxonomie podařilo řešit schedulerem, tak by to neměl být problém. Přiznám se, že přesně nechápu, proč ho nemůžete použít. Chce to do Scheduled evaluation date dostat hodnotu z pole date, což by snad mělo jít pomocí vložení potřebného data pomocí tokenu.
Scheduler
Předně, děkuji za radu. Nápad s podmíněnými regiony je pěkný, jen se tím poněkud maže výhoda Contextu. Problém se Schedulerem je v tom, že umí používat jen ty Rule Sety, které nepoužívají Argumenty, které mimo jiné slouží také k vkládání hodnot z CCK.
Tomu s argumenty moc
Tomu s argumenty moc nerozumím.
V rule setu nepotřebujete nastavit nic jiného, než Node – Editovat termíny taxonomie příspěvku. Tam si nastavíte změnu termínu.
Ruleset pak spustíte tak, že si vytvoříte normální rule – After saving new content a jako akci zvolíte Rule Scheduler – Schedule „název vašeho rulesetu“. tam si jako identifier zvolíte např. token [node:nid] (asi nejlepší varianta) a do Scheduled evaluation date: vložíte token s datem vašeho date field. Dají se použít i varianty jako [vášdatefieldtoken] + 1 day apod.
V tu chvíli se vždy po vytvoření nového node nastaví scheduler pro tento node podle data nastaveného v Scheduled evaluation date.
Problém může být date field s možností zadat více hodnot – v tu chvíli jsem nedokázal do scheduled evaluation date vložit poslední datum(neví někdo jak?), vzalo mi to vždy první hodnotu – pokud však máte v node vždy pole s jednou povolenou hodnotou, tak by to neměl být problém.
To zní zajímavě
ale bohužel se mi nedaří nastavit akci Node – Editovat termíny taxonomie příspěvku, o níž píšete. Pokud nepoužiji žádné argumenty, mám k dispozici jen Node – Load content by id. Dělám něco špatně?
Při tvorbě rule setu by měl
Při tvorbě rule setu by měl být v Arguments jako data type zvolena položka Obsah(Content v anglické verzi), pak by při tvorbě rule v tomto rulesetu měla být i možnost Editovat termíny taxonomie příspěvku – kromě jiných. Nic dalšího mě nenapadá, tak snad by to mohlo být ono.
Poslat nový komentář