Permessi Accesso per un campo CCK in base alla data di pubblicazione del nodo.

1 contenuto / 0 new
Permessi Accesso per un campo CCK in base alla data di pubblicazione del nodo.

Salve,

sto cercando un modo pulito per dare dei permessi di accesso ad un campo CCK in base alla data di pubblicazione del nodo.

In pratica mi serve impedire la visione di un campo per nodi pubblicati da meno di un anno.

Una soluzione l'ho trovata (ma non mi piace molto), ovvero;

Rendo il campo invisibile a tutti e dopo piazzo uno snippet

<?php
 $privato
;
?>
dopo il "content" che richiama la funzione "phptemplate_preprocess(&$vars)" nel tempalte.php, che contiene il seguente codice:

$node = node_load(arg(1));
global $user;
$dataoggi = time();
$creato = $node->created;
if ((in_array('Amministrazione', array_values($user->roles))) || (in_array('Iscritti', array_values($user->roles))) && ($dataoggi-$creato) < 31536000) {
$vars['$privato '] = $node->field_privato[0]['value'];}

In questo modo L'amministrazione vedesempre il campo e gli Iscritti lo possono vedere solo se il nodo è stato creato più di un anno fa.

Questo però ammazza una gestione del tema di questi campi tramite "Semantic CCK" (che nel mio caso è bella complessa), perche viene stampato solo il valore del campo CCK ma non il suo tema.

Esite un modo più pulito per ottenere il medesimo effetto?

Grazie, ciao!

P.S. ho provato il modulo Premium ma lavora solo su due livelli di utenza a me ne serviranno tre (uno non l'ho indicato ma avrà le stesse credenziali dell'amministratore e potrà sempre vedere il campo ).