Ciao a tutti,
volevo sapere se è possibile, tramite le funzioni di drupal, realizzare un controllo di accesso per ogni campo di un form inserito.
Mi spiego: devo fare una pagina con dati estratti da un db, dove a seconda del proprio permesso di accesso gli utenti possono leggere oppure modificare gli stessi dati.
Inoltre:
quali sono funzioni apposta per avere listing di tabelle con intestazioni cliccabili che provvedono a fare l'ordinamento dei risultati? Ho visto che anche su drupaldocs quasi tutte le pagine hanno questa feature, quando mostrano elenchi.
Grazie,
Panathos
Con la 4.7 puoi usare:
function nomemodulo_nomeform_validate($form_id, $form_values) {
quì metti il codice di validazione e l'errore da stampare
}
function nomemodulo_nomeform_submit($form_id, $form_values) {
quì metti il codice di inserimento
}
Tabelle:
// Costruisci i titoli da mostrare
$header = array(
array('data' => t('Nome/Ragione Sociale'), 'field' => 'nome', 'sort' => 'desc'),
array('data' => t('Citta\''), 'field' => 'citta'),
array('data' => t('P.IVA/Cod. Fiscale'), 'field' => 'codicefiscale'),
t('Mostra'),
t('Elimina'),
);
// Costruisci la query
$sql = 'SELECT
id,
nome,
citta,
codicefiscale
FROM {gest_soggetto}
'.$condition.tablesort_sql($header);
// Applica la query (paginata)
$result = pager_query($sql, 50);
while ($soggetto = db_fetch_object($result)) {
$rows[] = array(
$soggetto->nome,
$soggetto->citta,
$soggetto->codicefiscale,
l(t('Dettaglio'), '/soggetto/'.$soggetto->id.'/modifica/anagrafica', NULL ),
l(t('Cancella'), '/soggetto/'.$soggetto->id.'/modifica/cancella', NULL ),
);
}
// Temizzazione della tabella e titoli
$output .= theme('table', $header, $rows);
// Temizzazione della pagina
$output .= theme('pager', NULL, 10, 0, tablesort_pager());
return $output;
}