Pregunta

Tengo un bloque que quiero mostrar botones de editar y eliminar para los usuarios con acceso, y otros botones para el resto de usuarios.Este es el script que estoy usando para los usuarios con permiso de actualización:

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

}}
?>

Este es el mismo script que utilicé para la visibilidad de bloques en otros bloques y funciona.¿Por qué no funciona aquí?

¿Fue útil?

Solución

Probé su código en un sitio Drupal 6 y parece funcionar bien, excepto por las URL de enlace que crea.Veo dos enlaces llamados "editar" y "eliminar".¿Está seguro de haber habilitado el bloqueo en una región y de que la región se muestra en page.tpl.php?(Puedes comprobarlo colocando otro bloque en la misma región y ver si aparece).

Para obtener los enlaces correctos, recomiendo utilizar Drupal. l() funcionar así:

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

Tenga en cuenta que también estoy usando el t() función para hacer que "editar" y "eliminar" sean traducibles.

Otros consejos

Un bloque no debe generaracodicEtCode sino print.Y debe devolver una matriz:

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

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

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top