protected function getForm()
 {
     if (!$this->isPageAssignedToProject()) {
         throw new ErrorPageError('ar-approvalform-generalerror', 'ar-approvalform-pageunassigned');
     }
     if (!$this->userCanApprovePage()) {
         throw new ErrorPageError('ar-approvalform-badaccess', 'ar-approvalform-badaccess-group', ApprovedRevs::getGroupName($this->getTitle()));
     }
     if (ApprovedRevs::isLatestRevisionApproved($this->getTitle())) {
         throw new ErrorPageError('ar-approvalform-generalerror', 'ar-approvalform-alreadyapproved', ApprovedRevs::getGroupName($this->getTitle()));
     }
     return parent::getForm();
 }
 /**
  * @param ParserOutput $parserOutput
  *
  * @return true
  *
  */
 public static function onContentAlterParserOutput($content, $title, $parserOutput)
 {
     if (ApprovedRevsHooks::$categoryAdded === true || $title === null || !ApprovedRevs::isAssignedToProject($title)) {
         return true;
     }
     // Add tracking categories, one general for all assigned pages and another for (un?)approved
     $trackingCat = 'approvedrevs-tracking-category';
     $parserOutput->addTrackingCategory($trackingCat, $title);
     $trackingCat .= ApprovedRevs::isLatestRevisionApproved($title) ? '-approved' : '-unapproved';
     $parserOutput->addTrackingCategory($trackingCat, $title);
     //ApprovedRevsHooks::$categoryAdded = true;
     return true;
 }