public function updateAction()
 {
     $id = Request::postParam('pageId');
     $jsonData = Request::postParam('jsonData');
     $preview = $this->sanitizeBoolean(Request::postParam('preview'));
     $preview_language_id = Request::postParam('previewLanguageId');
     // �berpr�fen, ob die Lebenswichtigen Parameter gesetzt sind
     if ($id === null || $jsonData === null || $preview === null || $preview_language_id === null) {
         $this->error(self::RESULT_ERROR_BAD_REQUEST);
         return;
     }
     // �berpr�fen, ob die Seite �berhaupt (noch) existiert
     $properties = $this->pages->getProperties($id);
     if ($properties === false) {
         $this->error(self::RESULT_ERROR_DOES_NOT_EXIST);
         return;
     }
     // Nutzerrechte �berpr�fen
     if (!$this->helpers->canAccessPage($id, Acl::ACTION_EDIT)) {
         $this->error(self::RESULT_ERROR_NOT_AUHTORIZED);
         return;
     }
     // Daten der gew�nschten Seite speichern
     if ($this->pages->setData($id, $jsonData) === false) {
         $this->error();
         return;
     }
     // �nderungs-Datum setzen
     $properties = array('last-change-date' => time(), 'last-change-user-id' => Auth::getUserId(), 'last-change-user-name' => Auth::getScreenName());
     $this->pages->setProperties($id, $properties);
     $properties = $this->pages->getProperties($id);
     // Wenn das die Seite mit den globalen Elementen ist,
     // muss sie sofort ver�ffentlich werden und der Cache muss geleert werden,
     // da die �nderungen potenziell die Ausgabe aller Seiten betreffen k�nnte
     if ($properties['template-id'] == Pages::GLOBAL_ELEMENTS) {
         $this->pages->publish($id);
         PageCache::invalidateAll();
     }
     // R�ckgabe
     $res = array('preview' => $preview);
     // Wenn Vorschau-Modus, dann Frontend-URL zur Vorschau-Version der gespeicherten Seite zur�ckgeben
     if ($preview) {
         $res['previewUrl'] = $this->pages->getPageUrl($id, $preview_language_id, $properties) . '?pixelmanager-preview=true';
     }
     // Yo.
     $this->success($res);
 }
예제 #2
0
 public function clearcacheAction()
 {
     PageCache::invalidateAll();
     $this->success();
 }