Drupal에서 차단 - 아무것도 인쇄하지 않습니다. 내 스크립트에 무슨 문제가 있나요?

StackOverflow https://stackoverflow.com/questions/3275429

  •  17-09-2020
  •  | 
  •  

문제

액세스 권한이 있는 사용자에게는 편집 및 삭제 버튼을 표시하고 나머지 사용자에게는 다른 버튼을 표시하려는 블록이 있습니다.업데이트 권한이 있는 사용자에게 사용하는 스크립트는 다음과 같습니다.

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

}}
?>

이것은 다른 블록의 블록 가시성을 위해 사용한 것과 동일한 스크립트이며 작동합니다.여기서는 왜 작동하지 않나요?

도움이 되었습니까?

해결책

Drupal 6 사이트에서 귀하의 코드를 테스트했는데 생성된 링크 URL을 제외하고는 정상적으로 작동하는 것 같습니다."편집"과 "삭제"라는 두 개의 링크가 표시됩니다.특정 지역에서 차단을 활성화했고 해당 지역이 page.tpl.php에 표시되어 있습니까?(동일한 지역에 다른 블록을 넣어서 나타나는지 확인할 수 있습니다.)

올바른 링크를 얻으려면 Drupal을 사용하는 것이 좋습니다. l() 다음과 같이 기능합니다:

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

참고로 저는 또한 t() "편집"과 "삭제"를 번역 가능하게 만드는 기능입니다.

다른 팁

블록은 print하지만 return를 사용하지 않아야합니다.그리고 배열을 반환해야합니다.

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

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

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top