private function filterOne($res)
 {
     wfProfileIn(__METHOD__);
     if ($res['type'] == 'log') {
         $this->filterLog($res);
     } else {
         if (empty($res['pageid'])) {
             $title = Title::newFromText($res['title']);
         } else {
             $title = Title::newFromID($res['pageid']);
         }
         if ($title && $title->exists()) {
             if ($title->isRedirect()) {
                 if ($this->proxyType == self::WL) {
                     $this->filterRedirect($res, $title);
                 }
             } else {
                 $res['rc_params'] = MyHome::unpackData($res['rc_params']);
                 if (isset($res['rc_params']['rollback'])) {
                     $this->invisibleRevisions[] = $res['rc_params']['revId'];
                 } else {
                     if (!in_array($res['revid'], $this->invisibleRevisions)) {
                         $hidenewpages = !empty($this->parameters['flags']) && in_array('hidenewpages', $this->parameters['flags']);
                         //do not show hidden categories (see RT#32015)
                         if (isset($res['rc_params']['categoryInserts'])) {
                             $res['rc_params']['categoryInserts'] = $this->filterHiddenCategories($res['rc_params']['categoryInserts']);
                         }
                         if ($res['type'] == 'new' && !$hidenewpages) {
                             $this->filterNew($res, $title);
                         } else {
                             if ($res['type'] == 'edit') {
                                 $this->filterEdit($res, $title);
                             }
                         }
                     }
                 }
             }
         }
     }
     wfProfileOut(__METHOD__);
 }
Exemple #2
0
 function testUnpackData()
 {
     $in = MyHome::customDataPrefix . '{"foo":"bar"}';
     $out = array('foo' => 'bar');
     $this->assertEquals($out, MyHome::unpackData($in));
 }