以编程方式创建quicktabs drupal

时间:2014-11-17 08:02:02

标签: drupal tabs drupal-7

我正在使用Drupal 7& quicktab。我试图从代码创建quicktabs。 假设我使用钩子菜单创建了一个测试URL。

$items['MyModule/test'] = array(
        'title' => 'Test Tabs',
        'type' => MENU_CALLBACK,
        'page callback' => 'test',
        'page arguments' => array(2),
        'access arguments' => array('access content')

    );

在测试功能中,

function test(){

    $name = "Test tabs";
    $settings = array(
        'ajax' => 0 ,
        'hide_if_empty' => 1,
        'default_tab' => 0,
        'title' => 'Test quicktabs',
        'rendered' => 'quicktabs',
        'style' => 'Basic',
    );
    $custom_tabs = array(
        array(
            'title' => 'Test tab1',
            'path' => 'test-tab1',
            'contents' => "Test tab1",
            'weight' => 0
        ),
        array(
            'title' => 'Test tab2',
            'path' => 'test-tab2',

            'contents' => "Test tab2",
            'weight' => 0
        ));
return drupal_render(quicktabs_build_quicktabs($name, $settings, $custom_tabs));
}

通过使用上面的代码,我成功地能够创建quicktabs,但它在两个选项卡上显示相同的(测试选项卡1)内容。内容不会改变。我也清除了缓存。 另外,如何编辑标签的路径?上面的路径不起作用。它显示出像(http:[baseUrl]/test?qt-my_custom_quicktab=3&qt-Test%20tabs=0#qt-Test%20tabs)

这样丑陋的道路

有没有更好的方法来实现quicktabs.May可以使用钩子,但文档是不够的。如果有人知道更好的实施指导我。我的标签将是动态的。

2 个答案:

答案 0 :(得分:0)

如果您的问题只是丑陋的查询字符串?qt-my_custom_quicktab=...,则可以通过禁用切换标签面板的链接的默认点击操作来阻止使用javascript。

示例:

jQuery(function() {
    jQuery('#your-quicktab-link-selector').click(function(evn) {
        evn.preventDefault();
    });
});

答案 1 :(得分:0)

这是一个非常古老的问题,但我想我会回答那些偶然发现同样问题的人(就像我一样)。

问题是你的变量$ name(或者quicktabs_build_quicktabs()的第一个参数)不应该有空格。因此,如果您执行以下操作,它将起作用。

$name = "Test-tabs";

问题是quicktabs将该字符串指定为选项卡上div包装器ID的一部分。如果它中有空格,则javascript代码将无法成功隐藏或显示正确的标签。