public static function getInstance() { if (null === self::$instance) { self::$instance = new self(); } return self::$instance; }
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; } } }
$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; }