Drupal 使用第页的节点菜单
我想在Drupal中使用页面上的节点菜单(见图)Drupal 使用第页的节点菜单,drupal,menu,Drupal,Menu,我想在Drupal中使用页面上的节点菜单(见图) 这可能吗?如果可能,如何实现?好的;节点页面通常具有这些“查看”和“编辑”选项卡。所以我的下一个问题是想知道为什么它们没有出现在你的节点页面上。您是否碰巧为此节点类型创建了自定义页面模板并删除了打印选项卡的代码?或者,您是否有可能以没有权限编辑此类型节点的用户身份登录 你没有得到这些标签肯定是有原因的;默认情况下,它们应该在那里 如果确实有此节点类型的自定义页面模板,请查找类似以下内容的代码: <?php if ($tab
这可能吗?如果可能,如何实现?好的;节点页面通常具有这些“查看”和“编辑”选项卡。所以我的下一个问题是想知道为什么它们没有出现在你的节点页面上。您是否碰巧为此节点类型创建了自定义页面模板并删除了打印选项卡的代码?或者,您是否有可能以没有权限编辑此类型节点的用户身份登录 你没有得到这些标签肯定是有原因的;默认情况下,它们应该在那里 如果确实有此节点类型的自定义页面模板,请查找类似以下内容的代码:
<?php if ($tabs): ?>
<div class="tabs"><?php print $tabs; ?></div>
<?php endif; ?>
如果您没有看到这样的代码,请尝试添加它
如果您确实看到这样的代码,请尝试隔离此内容类型与您确实看到这些选项卡的其他内容类型的不同之处。如果您所指的页面是来自模块的自定义页面输出,并且“mymodule/page”是该页面的路径,您希望选项卡“查看”和“编辑”然后,您应该使用类似于以下代码的代码实现
hook_menu()
:
function mymodule_menu() {
$items = array();
$items['mymodule/page'] = array(
'page callback' => 'mymodule_page_view',
'access arguments' => array('view mymodule page'),
);
$items['mymodule/page/view'] = array(
'title' => 'View',
'type' => MENU_DEFAULT_LOCAL_TASK,
'weight' => -10,
);
$items['mymodule/page/edit'] = array(
'title' => 'Edit',
'page callback' => 'mymodule_page_edit',
'access arguments' => array('edit mymodule page'),
'weight' => 0,
'type' => MENU_LOCAL_TASK,
);
return $items;
}
如果您所指的页面是example.com/mymodule/page上显示的页面,并且应该显示example.com/node/7上的内容,那么您可以在Drupal 7中实现以下代码:
function mymodule_url_inbound_alter(&$path, $original_path, $path_language) {
if (preg_match('|^mymodule/page|', $path)) {
$path = 'node/7';
}
}
Drupal 6的等效功能是在settings.php文件中编写以下代码:
function custom_url_rewrite_inbound(&$result, $path, $path_language) {
if (preg_match('|^mymodule/page|', $path)) {
$result = 'node/7';
}
}
我没有为
hook\u url\u outbound\u alter()
和custom\u url\u rewrite\u outbound()
编写对称代码,因为我想您对重写example.com/node/7使其显示为example.com/mymodule/page不感兴趣,但是你有兴趣让example.com/mymodule/page与example.com/node/7相同。你的意思是你想有一个新的选项卡吗?不,我想在一个没有显示的地方添加这个点击……你可以使用hook_菜单()添加选项卡。它是节点页面还是其他类型的页面(如视图)?是的,我确实使用了hook_菜单()
,链接显示在/node/7
上,但不显示在自定义生成的我的个人资料上。。。如何修复此问题?此页面是custum URL页面。因此,您刚才描述的$tabs
-是存在的,但是由于某些原因,这些选项卡没有显示在页面上。谢谢!这是一个非常有用的解决方案!