我正在使用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可以使用钩子,但文档是不够的。如果有人知道更好的实施指导我。我的标签将是动态的。
答案 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代码将无法成功隐藏或显示正确的标签。