块在drupal-打印什么,我的脚本有什么问题?
-
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>';
}}
?>
这是我在其他块上用于块可见性的相同脚本,它可以工作。为什么不在这里工作?
解决方案
我在Drupal6站点上测试了你的代码,它似乎工作正常,除了它创建的链接url。我确实看到两个名为"编辑"和"删除"的链接。您确定在某个区域中启用了该块,并且该区域显示在页面中。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 array(
'subject' => t('i am an optional title'),
'content' => 'i am the content');
.
不隶属于 StackOverflow