Пример #1
0
 /**
  * This function returns information about the versions on this topic.
  * - Version permissions: unreleased, preview, or released
  * - Version age: older, latest, or newer
  * Since a Topic can have multiple versions, it's possible for a single topic to be in unreleased, preview, released, older, 
  * latest, AND newer versions AT THE SAME TIME!
  * This information can be used by skins to change UI based on the version features.
  *  
  * @return array
  */
 public function getVersionClasses()
 {
     $productName = PonyDocsProduct::getSelectedProduct();
     $versionClasses = array();
     $releasedVersions = PonyDocsProductVersion::GetReleasedVersions($productName);
     // Just the names of our released versions
     $releasedNames = array();
     foreach ($releasedVersions as $ver) {
         $releasedNames[] = strtolower($ver->getVersionName());
     }
     $previewVersions = PonyDocsProductVersion::GetPreviewVersions($productName);
     // Just the names of our preview versions
     $previewNames = array();
     foreach ($previewVersions as $ver) {
         $previewNames[] = strtolower($ver->getVersionName());
     }
     $latestVersion = PonyDocsProductVersion::GetLatestReleasedVersion($productName);
     foreach ($this->versions as $version) {
         $versionName = strtolower($version->getVersionName());
         // Is this version released, preview, or unreleased?
         if (in_array($versionName, $releasedNames)) {
             $versionClasses['released'] = TRUE;
         } elseif (in_array($versionName, $previewNames)) {
             $versionClasses['preview'] = TRUE;
         } else {
             $versionClasses['unreleased'] = TRUE;
         }
         // Is this version older or later or equal to the current version?
         if ($latestVersion) {
             if (PonyDocs_ProductVersionCmp($version, $latestVersion) < 0) {
                 $versionClasses['older'] = TRUE;
             } elseif (PonyDocs_ProductVersionCmp($version, $latestVersion) > 0) {
                 $versionClasses['newer'] = TRUE;
             } else {
                 $versionClasses['latest'] = TRUE;
             }
         }
     }
     return array_keys($versionClasses);
 }