/**
  * @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;
 }
 static function validateProjectField($value, $alldata, $form)
 {
     if (empty($value) && !ApprovedRevs::isAssignedToProject($form->getTitle())) {
         return wfMessage('approvedrevs-form-error-noproject')->parse();
     }
     return true;
 }
 protected function isPageAssignedToProject()
 {
     return ApprovedRevs::isAssignedToProject($this->getTitle());
 }