/**
  * Returns an array that holds arrays of activated template information.
  * 
  * @since       unknown
  * @since       3           moved from the templates class.
  * @scope       public      It is accessed from the template loader class.
  */
 public function getActiveTemplates()
 {
     if (!empty(self::$_aActiveTemplates)) {
         return self::$_aActiveTemplates;
     }
     // The saved active templates.
     $_aActiveTemplates = $this->get();
     // Format the template array.
     foreach ($_aActiveTemplates as $_sID => &$_aActiveTemplate) {
         $_aActiveTemplate = $this->_formatTemplateArray($_aActiveTemplate);
         if (!$_aActiveTemplate) {
             unset($_aActiveTemplates[$_sID]);
         }
         if (!$_aActiveTemplate['is_active']) {
             continue;
         }
         // Backward compatibility for the v2 options structure.
         // If the id is not a relative dir path,
         if ($_sID !== $_aActiveTemplate['relative_dir_path']) {
             // Remove the old item.
             unset($_aActiveTemplates[$_sID]);
             // If the same ID already exists, set the old id.
             if (isset($_aActiveTemplates[$_aActiveTemplate['relative_dir_path']])) {
                 $_aActiveTemplates[$_aActiveTemplate['relative_dir_path']]['old_id'] = $_sID;
             } else {
                 $_aActiveTemplates[$_aActiveTemplate['relative_dir_path']] = $_aActiveTemplate['relative_dir_path'];
             }
         }
         $_aActiveTemplate['is_active'] = true;
     }
     // Cache
     self::$_aActiveTemplates = $_aActiveTemplates;
     return $_aActiveTemplates;
 }