2009-12-09 35 views
2

我在Drupal中构建网站,我只想在使用我创建的视图的 页面上显示次要链接。我尝试在views-view.tpl.php中使用$ secondary_links变量 ,但变量为空。我怎样才能做到这一点?仅在视图中显示次要链接

回答

0

您是否从主题设置中激活了辅助链接?这将是:

http://example.com/admin/build/themes/settings/name_of_your_theme

我相信一旦你激活的选项,变量将被填充。

编辑:思考秒多,我也评论说,我不知道,如果第一和第二链路传递到视图模板。我相信这些文件将被传递给page.tpl.php文件。如果我是正确的,并且出于某种原因,您希望将该变量添加到传递给视图模板的变量,那么您将不得不使用预处理函数,如解释here

编辑#2:事实上,如果您只需要在特定视图模板中使用二级菜单,另一种方法是从模板中简单呼叫menu_secondary_links()。这并不是最优雅的解决方案,因为它放置了一个应该属于其他位置的主题元素,但是视图中的菜单是核心功能还是样式元素,由您来决定。

HTH!

+0

你好。是的,你是正确的,因为看起来我只能在page.tpl.php中使用$ secondary_links变量,但我只想在我的视图中使用它。我想我可能不得不使用预处理功能,但是因为我对此很陌生,所以我认为我会确保没有更简单的选项。 – screenm0nkey 2009-12-09 15:37:28

+0

我更新了我的答案,提示了一种更简单的方法来获取菜单在模板中。 – mac 2009-12-09 15:41:15

+0

嗨,Mac,你的第二个答案工作得很好。起初,我不知道如何让menu_secondary_links()打印出来,然后我意识到我可以使用'print theme()'函数来使它工作。它显示很棒。 非常感谢你的确。 – screenm0nkey 2009-12-09 16:20:34

1

辅助链接正如mac正确写入只在page.tpl.php中可用,但如果我正确理解你,最好的解决方案是没有获得辅助链接到你的视图。

随着你的主题,次要链接将很可能被打印出他们应该在哪里,无论显示什么,无论是你的意见,节点,头版等等。视图被显示,你呈现的一切,包裹在页面模板中,控制菜单的位置,区域和其他有趣的东西。

现在,如果你不想改变这个,菜单的位置,他们的样式和这些东西,你不应该在你的视图模板中打印二级菜单,你不应该做任何事情它根本就没有。

解决方法很简单
它使用的东西,MAC提及,但以不同的方式:预处理功能。这些函数用于你的template.php文件中,为你的变量添加一些逻辑。你可以改变变量或完全删除它们。我想要做的只是删除主链接,将$primary_links的值设置为空的文本字符串。
这将有效地删除主链接,因此只显示辅助链接。您也可以将辅助链接显示为主要链接,但这可能会导致用户感到困惑。您只需添加一些逻辑来控制何时发生这种情况并设置好。

+0

嗨googletorp,我只想在我的视图页面显示辅助导航,但Mac的建议在views.tpl.php中使用menu_secondary_links()完美工作,目前它比使用预处理函数更容易,因为我刚刚开始使用Drupal。非常感谢您的帮助。 – screenm0nkey 2009-12-09 16:25:19

0

您可以使用下面的代码显示在任何视图

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