Mediawiki-PHP: 检查文章是否属于某个类别
Mediawiki-PHP: Check if an article belongs to a category
我正在编辑 Mediawiki 扩展程序 (PageCreationNotif),以便在将页面添加到特定类别时发送邮件。
扩展原始代码在这里:https://phabricator.wikimedia.org/diffusion/EPCN/browse/master/
我正在处理的函数(PageCreationNotif.hooks.php 中的 onArticleInsertComplete)将 ( &$article ) 作为输入参数。
我只想在 $article 属于已创建的 "Project" 类别时执行函数代码。
您能否提供正确的代码片段来执行此操作?
就像(伪代码):
public static function onArticleInsertComplete(&$article){
if( $article.belongsTo(Category.Project) ){
//do stuff
}
}
提前致谢。
WikiPage class 中没有类似 belongsTo()
的方法,因此您必须自己遍历类别,检查成员资格:
public function onArticleInsertComplete( WikiPage &$article ) {
$inCat = false;
foreach ( $article->getCategories() as $cat) {
if ( $cat->getText() === "Project" ) {
$inCat = true;
}
}
if ( $inCat ) {
// Send email etc.
}
}
(代码未经测试。)
更新: 实际上,重新阅读你的问题,我认为你最好挂钩 CategoryAfterPageAdded:
Hooks::register( 'CategoryAfterPageAdded', function( Category $category, WikiPage $page ) {
if ( $category->getTitle()->getBaseText() === 'Project' ) {
// Send email.
}
} );
我正在编辑 Mediawiki 扩展程序 (PageCreationNotif),以便在将页面添加到特定类别时发送邮件。 扩展原始代码在这里:https://phabricator.wikimedia.org/diffusion/EPCN/browse/master/
我正在处理的函数(PageCreationNotif.hooks.php 中的 onArticleInsertComplete)将 ( &$article ) 作为输入参数。 我只想在 $article 属于已创建的 "Project" 类别时执行函数代码。
您能否提供正确的代码片段来执行此操作?
就像(伪代码):
public static function onArticleInsertComplete(&$article){
if( $article.belongsTo(Category.Project) ){
//do stuff
}
}
提前致谢。
WikiPage class 中没有类似 belongsTo()
的方法,因此您必须自己遍历类别,检查成员资格:
public function onArticleInsertComplete( WikiPage &$article ) {
$inCat = false;
foreach ( $article->getCategories() as $cat) {
if ( $cat->getText() === "Project" ) {
$inCat = true;
}
}
if ( $inCat ) {
// Send email etc.
}
}
(代码未经测试。)
更新: 实际上,重新阅读你的问题,我认为你最好挂钩 CategoryAfterPageAdded:
Hooks::register( 'CategoryAfterPageAdded', function( Category $category, WikiPage $page ) {
if ( $category->getTitle()->getBaseText() === 'Project' ) {
// Send email.
}
} );