Přeskočit přímo na text


Context na základě termínů přidaných Rules

Kategorie: Jak na to?
Týká se verze: Drupal 6.x

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:

  1. Použít jako reakci PHP kód, kterým bych vyvolal znovunačtení? Pokud ano, jak to správně udělat?
  2. 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.
  3. 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.

  • Budoucnost – kalendář a přehled dalších brzkých akcí
  • Minulost – navigační přehledové bloky, generované modulem Faceted Search

u budoucnosti se vyprdni na

  • u budoucnosti se vyprdni na nejaky termíny taxonomie – nebo neco nechapu.
  • minulost nechapu pojem „navigacni prehledove bloky“

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 budoucnosti

Akce v minulosti: 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ář

Obsah tohoto pole je soukromý a nebude veřejně zobrazen.
  • You can use Texy! to format and alter entered content.
  • Povolené HTML značky: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <p> <br> <b> <i> <h2> <img> <pre> <sup> <sub> <pre class="php"> <span class="php-keyword1"> <span class="php-var"> <span class="php-num"> <img class="screenshot"> <p class="beginner"> <a class="greybox"> <h3> <h4>

Více informací o možnostech formátování

Type the characters you see in this picture. (verify using audio)
Type the characters you see in the picture above; if you can't read them, submit the form and a new image will be generated. Not case sensitive.

Hledat

Přihlášení

Bezpečnost Drupalu

Z hlediska bezpečnosti je Drupal na velmi vysoké úrovni, díky propracovanému systému hlášení, prověřování a řešení možných problémů.

Čtěte více a odebírejte bezpečnostní aktuality

Poslední komentáře

Kdo je online

Momentálně je online 0 uživatelů a 0 hostů.