Ejemplo n.º 1
0
 function run()
 {
     //get a page history ?
     $oPage = null;
     $oPageGroup = null;
     $oPageGroup = $this->getPageGroupForHistory();
     if (!$oPageGroup) {
         // did we requested a page history?
         $oPage = $this->getPageForHistory();
     }
     //page title
     if ($oPage) {
         $sTitle = $this->t_("history_t", array("pagename" => $oPage->getName()));
     } else {
         if ($oPageGroup) {
             $sTitle = $this->t_("history_pagegroup_t", array("pagegroupid" => $oPageGroup->getId()));
         } else {
             $sTitle = $this->t_("title");
         }
     }
     $this->setTitle($sTitle);
     //filter change types
     $amAllChangeTypes = AnwChange::getChangeTypes();
     $amDisplayChangeTypes = array();
     foreach ($amAllChangeTypes as $mChangeType) {
         if (AnwEnv::_GET("ct_" . $mChangeType)) {
             $amDisplayChangeTypes[] = $mChangeType;
         }
     }
     if (count($amDisplayChangeTypes) == 0) {
         $amDisplayChangeTypes = $amAllChangeTypes;
         if (!$oPage) {
             $amDisplayChangeTypes = AnwUtils::array_remove($amDisplayChangeTypes, AnwChange::TYPE_PAGE_EDITION_DEPLOY);
             $amDisplayChangeTypes = AnwUtils::array_remove($amDisplayChangeTypes, AnwChange::TYPE_PAGE_UPDATELINKS);
         }
     }
     //initialize filters
     list($asAllLangs, $asDisplayLangs) = $this->filterLangs(array("view"), true);
     list($asAllClasses, $asDisplayClasses) = $this->filterContentClasses();
     $nDefaultDisplayModeGrouped = 1;
     //disable filters if a page is selected
     if ($oPage || $oPageGroup) {
         $asDisplayLangs = $asAllLangs;
         $asDisplayClasses = $asAllClasses;
         $nDefaultDisplayModeGrouped = 0;
         //show in detailled mode by default
     }
     //display mode
     $bGrouped = AnwEnv::_GET("fg", $nDefaultDisplayModeGrouped);
     //limit
     $nLimit = $this->cfg(self::CFG_LIMIT);
     if ($bGrouped) {
         $nLimit *= 2;
     }
     //TODO
     $nStart = (int) AnwEnv::_GET("s", 0);
     $nStartPrev = $nStart - $nLimit;
     $nStartNext = $nStart + $nLimit;
     //get last changes
     $aoChanges = AnwStorage::getLastChanges($nLimit, $nStart, $asDisplayLangs, $asDisplayClasses, $amDisplayChangeTypes, $oPage, $oPageGroup);
     if ($bGrouped) {
         $aoChanges = AnwSimilarChanges::groupSimilarChanges($aoChanges);
     }
     //check permissions
     foreach ($aoChanges as $i => $oChange) {
         if ($oChange->getPage() && !$oChange->getPage()->isActionAllowed("view") || !AnwCurrentSession::isActionAllowed($oChange->getPageName(), "view", $oChange->getPageLang())) {
             unset($aoChanges[$i]);
         }
     }
     if (AnwEnv::_GET("feed")) {
         $this->showFeed($aoChanges);
     } else {
         $this->showHtml($aoChanges, $amAllChangeTypes, $amDisplayChangeTypes, $asAllLangs, $asDisplayLangs, $asAllClasses, $asDisplayClasses, $nStartPrev, $nStartNext, $sTitle, $bGrouped, $oPage, $oPageGroup);
     }
 }