Question

J'ai un bloc que je veux montrer, modifier et supprimer des boutons pour les utilisateurs avec un accès, et d'autres boutons pour le reste des utilisateurs.C'est le script que j'utilise pour les utilisateurs avec autorisation de mise à jour:

    <?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>';

}}
?>

C'est le même script que j'ai utilisé pour bloquer la visibilité sur d'autres blocs, et il fonctionne.Pourquoi n'est-il pas de travail ici?

Était-ce utile?

La solution

J'ai testé votre code sur un site Drupal 6 et il semble bien fonctionner, sauf pour le lien url qu'il crée.Je ne vois deux liens nommé "modifier" et "supprimer".Êtes-vous sûr que vous avez activé le bloc dans une région, et que la région est affiché dans page.tpl.php?(Vous pouvez le vérifier en mettant un bloc dans la même région et de voir si il s'affiche.)

Pour obtenir les liens corrects, je recommande l'utilisation de Drupal l() fonction comme ceci:

<?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");
  }
}
?>

A noter que je suis aussi à l'aide de la t() la fonction de faire "modifier" et "supprimer" traduisible.

Autres conseils

Un bloc ne devrait pas print mais return.Et il doit retourner un tableau:

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

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

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top