Ho installato il modulo Context, senza l'ausilio del modulo jQuery_ui.
Funziona magistralmente, anzi direi che uno si domanda come abbia fatto a non usarlo prima... risolve tantissimi problemi.
Nel mio sito di test, nonostate abbia rimosso TUTTI blocchi situati nelle regions, dal menu blocks, mi ritrovo che all'interno delle regions indicate in un qualunque Context ci siano dei blocchi preinseriti e non gestibili (quindi non rimuovibili) che non hanno alcun effetto nel context creato.
Praticamente si tratta della rispettiva collocazione blocchi presente, nella pagina Blocks, sia prima di ripulire la pagina che dopo averli disabilitati tutti. Non riesco a capire come rimuoverli. Ho anche controllato la tabella Context all'interno del DB.
Come fare ad evitare che ci siano queste Collocazioni "Fantasma" di Blocchi? Oppure, come fare a rimuoverle?
mi vengono in mente solo soluzioni "banali"
- pulire tutte le cache (
drush cc [1]
)- controllare che i blocchi siano disabilitati anche negli altri temi (vedi: http://www.drupalitalia.org/node/10250#comment-32937 )
- controllare di non avere variabili "forzate" ad esempio da features, PURL o strongarm
Certified to Rock
Sono andato sul DB ed ho rimosso tutte le associazioni dei temi all'interno della tabella Blocks.
Il risultato è che adesso è tutto pulito e su Context non sono + presenti collocazioni di blocchi immutabili.
Nella tabella Blocks sono presenti le associazioni dei blocchi fatte su tutti i temi, compresi quelli non + attivi o inesistenti, non credo che questo sia una cosa buona, manteniamo roba nel DB che è inutile.
Ma a questo punto sorge una domanda:- "Come fare a gestire le Sections differenziadole anche per tema?"
http://www.sanisapori.eu
Sto sperimentando con Context e mi sono accorto che il sistema ha una sua ereditarietà dei context.
Però noto anche che questa ereditarietà non è manipolabile.
Io ho creato un context che mostri determinati moduli su tutte le pagine ed ho indicato come attributo il termine "section".
Successivamente ho creato un nuovo context che mostrasse, sempre su tutte le pagine, un dato blocco e disabilitasse una regione che invece è abilitata nel primo context.
Il risultato è stato che il primo context era pienamente attivo con una regione disabilitata ed un blocco in +.
Questo dimostra una particolare ereditarietà. Però non è possibile dare in modo che un context venga prima di un'altro.
Qualcuno può indicarmi degli esempi per un utilizzo corretto di Namespace, Attribute e Value, proprio per una migliore gestione delle "eredità", dei gruppi, ecc ecc ?
http://www.sanisapori.eu
Sono passato da Context 2 a Context 3.
All'inizio non capivo xkè non funzionasse nulla impostazione. Poi ho installato jquery_ui ed ha funzionato tutto (non so se questa era la soluzione).
Quando imposto un context che operi su qualsiasi pagina, quindi imposto sitewide context come condition, cioè voglio che i blocchi nelle sidebar si vedano ovunque, succede che il context agisce su tutti i temi in uso, sia quello utilizzato per il front che il tema di amminsitrazione.
Come fate ad evitare che la Sitewide Context Condition abbia effetto anche sul tema di amministrazione?
Se non c'è un modo per gestire questa cosa, che condition settate per avere i blocchi nelle sidebar attivi su qualsiasi pagina (salvo eccezioni definite tramite un'altro context) ?
Una soluzione interessante sarebbe impostare come path TUTTO tranne le pagin admin...ma questo non si può fare :|
http://www.sanisapori.eu
Al modulo Context manca una cosa, secondo me molto importante, cioè la possibile di creare un context che possa, per determinate condizioni, rimuovere qualcosa che è già collocata da un'altro context.
faccio presente il mio caso.
Io ho bisogno che vengano mostrati dei blocchi su tutte le pagine (tranne quelle di amministrazione), dei blocchi validi per tutti.
Poi ho alcuni blocchi (la pubblicità) che dovrebbero essere visibili solo per gli utenti anonimi e per gli utenti autenticati (con peso minore, utenti generici)
I blocchi visibili (la pubblicità) per gli utenti anomi e autenticati, non dovrebbero essere mostrati agli utenti autenticati che sono blogger.
Con i context gestire questa cosa (senza l'ausilio di fuznioni specifiche in template.php) sembra non essere possibile, proprio perchè non è previsto creare context che rimuoveno oggetti presenti in altri context, come anche non è possibile gestire a tal fine gli oggetti all'interno dei context.
Mancano i Trigger di Deactivation del context.... o forse no!
http://www.sanisapori.eu
Nuova scoperta!!
Se applico una funzione in php in un blocco, ai fini di impedire la visione ad un dato tipo di utente (tipo i blogger), se questi blocchi vengono mostrati attraversi un Context, la funzione non ha effetto!
Nel mio caso ho una funzione che impedisce la visione di alcuni blocchi ad utenti autenticati con maggiori privilegi rispetto all'utente autenticato semplice, mentre tutti gli altri tipi possono vederlo. Questa funzione non da alcun problema usando il metodo classico di drupal per collocare i blocchi. Invece quando il blocco è in un context, la funzione è come se non esistesse! :-S
http://www.sanisapori.eu
Non è che context usa un suo sistema di check, saltando a pie' pari quello di drupal ?
M.
--
Michel 'ZioBudda' Morelli -- [email protected]
Sviluppo applicazioni CMS DRUPAL e web dinamiche -- Corsi Drupal -- Amministrazione Drupal -- Hosting Drupal