Domanda

Ho un blocco in cui desidero mostrare i pulsanti di modifica ed eliminazione per gli utenti con accesso e altri pulsanti per il resto degli utenti.Questo è lo script che sto utilizzando per gli utenti con autorizzazione di aggiornamento:

    <?php
if(arg(0) == 'node' && is_numeric(arg(1))){
    //load $node object
    $node = node_load(arg(1));
    //check for node update access
    if (node_access("update", $node)){
print '<p><a href=\"./edit\">edit</a> <a href=\"./delete\">delete</a></p>';

}}
?>

Questo è lo stesso script che ho usato per la visibilità dei blocchi su altri blocchi e funziona.Perché non funziona qui?

È stato utile?

Soluzione

Ho testato il tuo codice su un sito Drupal 6 e sembra funzionare bene, ad eccezione degli URL dei collegamenti che crea.Vedo due collegamenti denominati "Modifica" e "Elimina".Sei sicuro di aver abilitato il blocco in una regione e che la regione sia visualizzata in Page.tpl.php?(Puoi verificarlo mettendo un altro blocco nella stessa regione e vedi se si presenta.)

Per ottenere i collegamenti corretti, consiglio di utilizzare la funzione l() di Drupal come questa:

<?php
if (arg(0) == 'node' && is_numeric(arg(1))) {
  //load $node object
  $node = node_load(arg(1));
  //check for node update access
  if (node_access("update", $node)){
    $nid = $node->nid
    print l(t('edit'), "node/$nid/edit") .' '. l(t('delete'), "node/$nid/delete");
  }
}
?>
.

Nota che sto anche utilizzando la funzione t() per rendere "modifica" e "Elimina" traducibile.

Altri suggerimenti

Un blocco non dovrebbe print Ma return.E dovrebbe restituire un array:

return array(
  'subject' => t('i am an optional title'),
  'content' => 'i am the content');

http://api.drupal.org/api/function/hook_block/6

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top