/** * @brief Filtring message wall data and spliting it to parents and childs * * @param Title $title title object instance * @param array $res a referance to array returned from recent changes * * @return array | boolean returns false if ArticleComment class does not exist * * @author Andrzej 'nAndy' Åukaszewski */ public function wikiActivityFilterMessageWall($title, &$res) { wfProfileIn(__METHOD__); $item = array(); $item['type'] = 'new'; $item['wall'] = true; $item['ns'] = $res['ns']; $item['timestamp'] = $res['timestamp']; $item['wall-comment'] = $res['rc_params']['intro']; $item['article-id'] = $title->getArticleID(); $wmessage = new WallMessage($title); $parent = $wmessage->getTopParentObj(); if (!in_array(true, array($wmessage->isAdminDelete(), $wmessage->isRemove()))) { $item['wall-title'] = $wmessage->getArticleTitle()->getPrefixedText(); $owner = $wmessage->getWallOwner(); $item['wall-owner'] = $owner->getName(); $item['wall-msg'] = ''; if (empty($parent)) { // parent $metaTitle = $wmessage->getMetaTitle(); if (!empty($metaTitle)) { $item['title'] = $metaTitle; } else { $wmessage->load(); $metaTitle = $wmessage->getMetaTitle(); $item['title'] = empty($metaTitle) ? wfMessage('wall-no-title')->escaped() : $metaTitle; } $item['url'] = $wmessage->getMessagePageUrl(); $res['title'] = 'message-wall-thread-#' . $title->getArticleID(); $item['wall-msg'] = wfMessage('wall-wiki-activity-on', $item['wall-title'], $item['wall-owner'])->parse(); } else { // child $parent->load(); if (!in_array(true, array($parent->isRemove(), $parent->isAdminDelete()))) { $title = wfMessage('wall-no-title')->escaped(); // in case metadata does not include title field if (isset($parent->mMetadata['title'])) { $title = $wmessage->getMetaTitle(); } $this->mapParentData($item, $parent, $title); $res['title'] = 'message-wall-thread-#' . $parent->getTitle()->getArticleID(); $item['wall-msg'] = wfMessage('wall-wiki-activity-on', $item['wall-title'], $item['wall-owner'])->parse(); } else { // message was removed or deleted $item = array(); } } } else { // message was removed or deleted $item = array(); } wfRunHooks('AfterWallWikiActivityFilter', array(&$item, $wmessage)); wfProfileOut(__METHOD__); return $item; }