/** * factory method, create either Item or List object from title * * @author ADi * @param Title $title * @return TopListBase */ public static function newFromTitle(Title $title) { $object = null; if ($title->getNamespace() == NS_TOPLIST) { if (!$title->isSubpage()) { $object = TopList::newFromTitle($title); } else { $object = TopListItem::newFromTitle($title); } } return $object; }
/** * Add a vote for the item * * @author ADi * */ public static function voteItem() { global $wgRequest; $result = array('result' => false); $titleText = $wgRequest->getVal('title'); if (!empty($titleText)) { $item = TopListItem::newFromText($titleText); if ($item instanceof TopListItem && $item->getList() instanceof TopList && $item->getList()->exists() && $item->getList()->userCanVote()) { $result['result'] = $item->vote(); $result['votedId'] = $item->getTitle()->getSubpageText(); $result['message'] = wfMsg('toplists-list-item-voted'); $result['listBody'] = TopListParser::parse($item->getList()); } } $json = json_encode($result); $response = new AjaxResponse($json); $response->setContentType('application/json; charset=utf-8'); return $response; }
/** * @author ADi */ public function removeItems() { foreach ($this->mTitle->getSubpages() as $subpageTitle) { $item = TopListItem::newFromTitle($subpageTitle); $item->remove(); } }