public static function getInstance()
 {
     if (null === self::$instance) {
         self::$instance = new self();
     }
     return self::$instance;
 }
Ejemplo n.º 2
0
 protected function prepareRowArrayAutoMagicFields(&$row, $page_id, $language_id)
 {
     $auto_magic_fields = array();
     $auto_magic_data = array();
     foreach ($this->fields as $field) {
         if ($this->isFieldAutoMagic($field)) {
             $auto_magic_fields[] = $field;
             if (isset($row[$field['id']])) {
                 $auto_magic_data[$field['id']] = $row[$field['id']];
             }
         }
     }
     if (count($auto_magic_fields) > 0) {
         $fake_page_structure = array('autoMagic' => array('type' => 'datablock', 'caption' => 'autoMagic', 'fields' => $auto_magic_fields));
         $fake_parameters = array('pageId' => $page_id, 'languageId' => $language_id, 'pageFiles' => $this->getImageDir($row['id']), 'pageFilesUrl' => $this->getImageUrl($row['id']));
         $auto_magic_data = array('autoMagic' => $auto_magic_data);
         DataModifiers::applyAll($auto_magic_data, $fake_page_structure, $fake_parameters);
         foreach ($auto_magic_data['autoMagic'] as $field_id => &$field_value) {
             $row[$field_id] = $field_value;
         }
     }
 }
Ejemplo n.º 3
0
            $configuration_ok = false;
        } else {
            if (count($config['languages']['list']) < 1) {
                $configuration_ok = false;
            }
        }
    }
    if (!$configuration_ok) {
        Helpers::fatalError('The system is not properly configured (in /system/custom/config/main.config.php)', true);
    }
}
// Datenstruktur, Plugins, Module, Modifikatoren laden
DataStructure::load();
Plugins::load();
FrontendModules::load();
DataModifiers::load();
// Frontend-Controller-Klassen-Datei laden
$controller_file_name = Config::get()->frontendController->classFile;
if (!file_exists($controller_file_name)) {
    Helpers::fatalError('Frontend controller class file not found (' . $controller_file_name . ' doesn\'t exist)!', true);
}
require_once $controller_file_name;
// Klasse instanziieren
$controller_class_name = Config::get()->frontendController->className;
if (!class_exists($controller_class_name)) {
    Helpers::fatalError('Frontend controller class not found (class "' . $controller_class_name . '" doesn\'t exist in ' . $controller_file_name . ')!', true);
}
$controller = new $controller_class_name();
Registry::set('frontendController', $controller);
// Und los...
$controller->run();
 public function getArray($language_id = null, $smarty = null, $parameters = null)
 {
     // Wenn keine Sprache angegeben, Standard-Sprache annehmen
     if ($language_id === null) {
         $language_id = Config::get()->languages->standard;
     }
     // Die "rohen" Daten laden
     $input = $this->getArrayRaw();
     $output = null;
     if ($input !== null) {
         // Seiten-Eigenschaften laden
         $page_id = $this->loaded_page_id;
         $page_properties = $this->pages->getProperties($page_id);
         if ($page_properties === false) {
             return null;
         }
         // Daten-Struktur für diese Seite laden
         $pages_structure = DataStructure::pagesArray();
         if (!isset($pages_structure[$page_properties['template-id']]['structure'])) {
             Helpers::debugError('A page template with the ID "' . $page_properties['template-id'] . '" does not exist!');
             return null;
         }
         $page_structure = $pages_structure[$page_properties['template-id']]['structure'];
         // Der Pfad zu den zugehörigen Dateien (Bilder) einer Seite unterscheiden sich
         // je nachdem, ob die veröffentlichte oder die editierte Version der Seite angefragt wurde
         if ($this->isPublished()) {
             $page_files = $this->pages->getPageFilesPublishedFolder($page_id, $page_properties);
             $page_files_url = $this->pages->getPageFilesPublishedUrl($page_id, $page_properties);
         } else {
             $page_files = $this->pages->getPageFilesEditFolder($page_id, $page_properties);
             $page_files_url = $this->pages->getPageFilesEditUrl($page_id, $page_properties);
         }
         $page_url = $this->pages->getPageUrl($page_id, $language_id, $page_properties);
         // Die Parameter für die Plugins und Modifikatoren zusammenstellen
         // ggf. werden einige oder alle dieser Parameter über die Variable $parameters
         // wieder überschrieben
         if (!is_array($parameters)) {
             $parameters = array();
         }
         $standard_parameters = array('preview' => !$this->isPublished(), 'pageId' => $page_id, 'languageId' => $language_id, 'templateId' => $page_properties['template-id'], 'uniqueId' => $page_properties['unique-id'], 'pageUrl' => $page_url, 'pageFiles' => $page_files, 'pageFilesUrl' => $page_files_url);
         if ($smarty !== null) {
             $standard_parameters['smarty'] = $smarty;
         }
         $parameters = array_merge($standard_parameters, $parameters);
         // Das Ausgabe-Array wird ggf. durch Plugins und
         // höchstwahrscheinlich durch die Modifikatoren geändert
         $output = $input;
         if ($smarty !== null) {
             $this->pages->applyPluginsToDataFields(Plugins::ASSIGN_PAGE_DATA_FIELD, $parameters, $output, $page_properties);
         }
         DataModifiers::applyAll($output, $page_structure, $parameters);
     }
     return $output;
 }