我在Drupal中构建网站,我只想在使用我创建的视图的 页面上显示次要链接。我尝试在views-view.tpl.php中使用$ secondary_links变量 ,但变量为空。我怎样才能做到这一点?仅在视图中显示次要链接
回答
您是否从主题设置中激活了辅助链接?这将是:
http://example.com/admin/build/themes/settings/name_of_your_theme
我相信一旦你激活的选项,变量将被填充。
编辑:思考秒多,我也评论说,我不知道,如果第一和第二链路传递到视图模板。我相信这些文件将被传递给page.tpl.php
文件。如果我是正确的,并且出于某种原因,您希望将该变量添加到传递给视图模板的变量,那么您将不得不使用预处理函数,如解释here。
编辑#2:事实上,如果您只需要在特定视图模板中使用二级菜单,另一种方法是从模板中简单呼叫menu_secondary_links()
。这并不是最优雅的解决方案,因为它放置了一个应该属于其他位置的主题元素,但是视图中的菜单是核心功能还是样式元素,由您来决定。
HTH!
辅助链接正如mac正确写入只在page.tpl.php中可用,但如果我正确理解你,最好的解决方案是没有获得辅助链接到你的视图。
随着你的主题,次要链接将很可能被打印出他们应该在哪里,无论显示什么,无论是你的意见,节点,头版等等。视图被显示,你呈现的一切,包裹在页面模板中,控制菜单的位置,区域和其他有趣的东西。
现在,如果你不想改变这个,菜单的位置,他们的样式和这些东西,你不应该在你的视图模板中打印二级菜单,你不应该做任何事情它根本就没有。
解决方法很简单
它使用的东西,MAC提及,但以不同的方式:预处理功能。这些函数用于你的template.php文件中,为你的变量添加一些逻辑。你可以改变变量或完全删除它们。我想要做的只是删除主链接,将$primary_links
的值设置为空的文本字符串。
这将有效地删除主链接,因此只显示辅助链接。您也可以将辅助链接显示为主要链接,但这可能会导致用户感到困惑。您只需添加一些逻辑来控制何时发生这种情况并设置好。
嗨googletorp,我只想在我的视图页面显示辅助导航,但Mac的建议在views.tpl.php中使用menu_secondary_links()完美工作,目前它比使用预处理函数更容易,因为我刚刚开始使用Drupal。非常感谢您的帮助。 – screenm0nkey 2009-12-09 16:25:19
您可以使用下面的代码显示在任何视图
function YourTheme_preprocess_views_view(&$vars)
{
$menu_sec = menu_navigation_links('menu-secondary');
$vars['custom_menu'] = theme('links__menu-secondary', array('links' => $menu_sec));
}
二级菜单中,你甚至可以使用其他预处理功能,这取决于你的需求。
此外,你可以打电话给.tpl。php文件使用:
<?php
$menu_sec = menu_navigation_links('menu-secondary');
print theme('links__menu-secondary',
array(
'links' => $menu_sec,
'attributes'=>array(
'class' => array('nav', 'nav-pills', 'p-f-subfilter'),
)
)
);
?>
- 1. 访问显示链接仅
- 2. 不要在链接中显示$ stateParams值
- 3. Angular.js - 根据视图显示链接
- 4. 仅在首次发布时显示视图 - Swift 3
- 5. 仅在没有链接时才使用ColdFusion显示链接?
- 6. 显示两次drupal视图
- 7. 在ASP.Net MVC视图中显示/隐藏链接
- 8. 图像从链接图像中显示?
- 9. 仅在月视图中显示工具提示并在日视图上隐藏
- 10. 在应用程序第一次运行时仅显示一次视图
- 11. 第二次显示父视图时,Marionette不显示子视图
- 12. 仅显示超链接文字而不显示整个链接网址
- 13. 要显示网格视图
- 14. 显示图片链接
- 15. Java套接字:如何仅在DataInputStream中显示消息一次
- 16. 仅在IE中链接图像上的不需要的填充
- 17. PivotViewer无法显示集合 - 仅显示链接到cxml文件
- 18. 链接不是在ASP MVC3 Razor视图正确显示
- 19. 链接未在Facebook上显示图像
- 20. 图像未显示在WhatsApp链接
- 21. JsqMessageViewController视图仅显示单行文本
- 22. 弹出显示仅一次
- 23. 让C#列表视图仅在需要时才显示缩略图
- 24. WPF按钮图像仅显示在上次控件中
- 25. 仅显示目录中的缩略图,但链接到全尺寸图像
- 26. 如何仅在odoo中的窗体视图中显示按钮?
- 27. 想要在图表中显示一次单页重复图表
- 28. URL链接不会显示在Facebook上链接的缩略图
- 29. DIV视频仅在第一次加载首页时显示
- 30. Android-没有显示多个视图(仅显示第一个视图)
你好。是的,你是正确的,因为看起来我只能在page.tpl.php中使用$ secondary_links变量,但我只想在我的视图中使用它。我想我可能不得不使用预处理功能,但是因为我对此很陌生,所以我认为我会确保没有更简单的选项。 – screenm0nkey 2009-12-09 15:37:28
我更新了我的答案,提示了一种更简单的方法来获取菜单在模板中。 – mac 2009-12-09 15:41:15
嗨,Mac,你的第二个答案工作得很好。起初,我不知道如何让menu_secondary_links()打印出来,然后我意识到我可以使用'print theme()'函数来使它工作。它显示很棒。 非常感谢你的确。 – screenm0nkey 2009-12-09 16:20:34