仅在视图中显示辅助链接

时间:2009-12-09 15:10:46

标签: drupal drupal-views

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

3 个答案:

答案 0 :(得分:1)

辅助链接正如mac正确写入仅在page.tpl.php中可用,但如果我理解正确,最好的解决方案是不将辅助链接放入您的视图中。

使用您的主题,次要链接,很可能会打印出来,无论显示什么,无论是您的视图,节点,首页等。视图显示和您呈现的其他内容,是包含在页面模板中,控制菜单所在的位置,区域和其他有趣的东西。

现在,如果你不想改变它,菜单的位置,它们的样式和这些东西,你不应该在你的视图模板中打印二级菜单,你不应该用它做任何事情一点都不。

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

答案 1 :(得分:0)

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

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

我相信一旦你激活了这个选项,就会填充变量。

编辑:再考虑一下,我还会评论我不确定主要和次要链接是否传递给视图模板。我相信这些文件会被传递到page.tpl.php文件。如果我是对的,并且出于某种原因你想将该变量添加到传递给视图模板的变量,则必须使用预处理函数,如解释here

编辑#2:的确,如果您只需要在特定视图模板中使用的辅助菜单,另一种方法是从模板中简单地调用menu_secondary_links()。这不是有史以来最优雅的解决方案,因为它在主题元素中放入了应该属于其他地方的东西,但是由您来决定视图中的菜单是核心功能还是样式元素。

HTH!

答案 2 :(得分: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'),
            )
        )
    );
?>
相关问题