在Drupal 6中,我的模块有下一个函数,它将javascript插入页面的页脚,但在Drupal 7中,内容已经改变了。我如何在drupal 7中执行下一个代码?
function myfunc_footer()
{
if(variable_get('myvar',1) && !drupal_match_path(drupal_get_path_alias($_GET['q']),
'admin/*'))
{
if ($somevar = variable_get('somevar',''))
{
return '<script src="'.$somevar.'" type="text/javascript"></script>';
}
else
{
drupal_set_message(t('something is wrong.'));
}
}
}
提前致谢
答案 0 :(得分:1)
你的代码中没有任何内容从Drupal 6改为7 ......所有函数都是有效的,如果这对Drupal 6有效,那么它就没有理由不适用于Drupal 7。
我真的不明白为什么你在路径别名上运行drupal_match_path
,你应该在路由器路径上运行它,而不是URL路径:
if(variable_get('myvar',1) && !drupal_match_path($_GET['q'], 'admin/*')) {
尝试一下,看看它是否能解决您的问题,如果没有,您能否稍微了解一下您所遇到的错误?
修改
感谢您的更新,您的下面第二条评论几乎是正确的,您只需要为渲染数组提供一个密钥:
function myfunc_page_alter(&$page) {
$page['page_bottom']['my_extra_element'] = array(
'#markup' => '<div><h3> testingthisout</h3> </div>',
'#weight' => 25
);
}
您无需指定'#type' => 'markup'
,因为markup
是默认值。
然后确保您的模块(名为myfunc
)已明确安装,并清除缓存。你不应该有任何问题