Visualizzazione nodi

5 contenuti / 0 new
Ultimo contenuto
Visualizzazione nodi

Salve a tutti
ho una domanda da farvi.
Mi occorre far visualizzare un determinato nodo, del mio sito sviluppato in drupal 7, soltanto per alcuni utenti con determinate caratteristiche.
Mi spiego meglio, ho degli utenti inscritti al mio sito con il ruolo Business ad alcuni di questi utenti vorrei far visualizzare un nodo e ad altri no, in base ad una determinata caratteristica espressa in fase di iscrizione, quindi la discriminante non è il ruolo ma una caratteristica diversa.
Come posso fare?
Esiste un modulo che mi potrebbe aiutare oppure dovrei scendere a codice se si dove devo fare questa modifica?

Grazie mille

Drupal Version:

Ciao, a livello di codice potresti provare TAC, ma la T sta per Taxonomy, quindi forse non fa al caso tuo.

Via codice lo puoi fare tranquillamente modificando la funzione di accesso ai nodi tramite hook_menu_alter(). Io l'ho fatto per una situazione simile alla tua. E' una cosa simile a questa:

function CUSTOM_menu_alter(&$items) {
  $items['node/%node']['access callback'] = 'CUSTOM_check_access_node';
  $items['node/%node/edit']['access callback'] = 'CUSTOM_check_access_node';
}

e la funzione di controllo prende due parametri:

$type: il tipo di accesso (view, update,...)
$node: il nodo che si vuole controllare

La funzione deve tornare TRUE o FALSE e se per caso vuoi eseguire il controllo originale di drupal devi eseguire :
node_access($type,$node);

Ad esempio:

function CUSTOM_check_access_node($type,$node) {
    if (in_array('ruoloprova',$user->roles)) return node_access($type,$node);
    if ($node->field_foo[LANGUAGE_NONE][0]['value'] == 'foo') return true;
    return false;
}

Spero di esserti stato utile.

M.

--
Michel 'ZioBudda' Morelli -- [email protected]
Sviluppo applicazioni CMS DRUPAL e web dinamiche -- Corsi Drupal -- Amministrazione Drupal -- Hosting Drupal

Ah scusa, c'è anche la soluzione alternativa: al momento della iscrizione tramite RULES setti il ruolo di appartenenza "business" a seconda del valore del campo di cui parli. In questo modo l'utente rientra o meno in un RUOLO e puoi usare i permessi di drupal senza andare a scrivere nulla di PHP.

M.

--
Michel 'ZioBudda' Morelli -- [email protected]
Sviluppo applicazioni CMS DRUPAL e web dinamiche -- Corsi Drupal -- Amministrazione Drupal -- Hosting Drupal

Ciao grazie mille per le risposte
riguardo la seconda che mi hai data non credo che vada bene,mi spiego meglio gli utenti quando si scrivono possono scegliere se farlo con il ruolo Private o Business, poi attraverso il modulo content access riesco a fargli vedere diversi contenuti a seconda di che tipologia di utente si logga.
Quello che mi occorre è una sorta di sotto gruppo di Ruoli da far funzionare al momento dell' inscrizione in modalità Business, ma soltanto per una pagina(nodo).
Riguardo la prima risposta, dove scrivere il codice dell'esempio in modulo da me creato?? oppure dove??
Grazie mille per la pazienza.

Meggis (non verificato)
Ritratto di Anonimo

E' buona norma non complicarsi la vita!

--> quello che mi occorre è una sorta di sotto gruppo di Ruoli?
https://www.drupal.org/project/subs_roles

--> ma soltanto per una pagina
https://www.drupal.org/project/node_privacy_byrole

--> al momento dell'iscrizione
https://www.drupal.org/project/registration_role oppure autoassignrole

Spero che facciano per te!
Ciao