在这里完成初学者。我想在每个具有自定义操作的页面上创建一个新选项卡。单击时,它会将您带到一个新页面,其中包含自定义HTML以及文本或原始文章。
到目前为止,我可以创建一个新标签,并可以为其提供自定义操作mycustomaction
。我正在粘贴到目前为止我所做的事情。如果我使用正确的挂钩等,请告诉我。什么是实现这一基本功能的更好方法。
到目前为止,他们的文档已经完成了这个:
#Hook for Tab
$wgHooks['SkinTemplateContentActions'][] = 'myTab';
#Callback
function myTab( $content_actions) {
global $wgTitle;
$content_actions['0'] = array(
'text' => 'my custom label',
'href' => $wgTitle->getFullURL( 'action=mycustomaction' ),
);
return true;
}
#new action hook
$wgHooks['UnknownAction'][] = 'mycustomaction';
#callback
function mycustomaction($action, $article) {
echo $action;
return true;
}
这给了我错误:
没有这样的行动
网址指定的操作无效。您可能输入了错误的URL,或者输入了错误的链接。这也可能表示yourplugin
答案 0 :(得分:1)
我做错了什么:
$content_actions[‘0’]
应该只是$content_actions[]
(次要挑剔)
$content_actions
是通过引用传递的,它应该是函数myTab( &$content_actions ) {}
mycustomaction()
应该按照
if ( $action == ‘mycustomaction’ ) {
do stuff; return false;
}
else {
return true;
}
应使用$wgOut->addHTML()
代替echo
非常感谢大家的帮助!