public function publish($id) { $properties = $this->getProperties($id); if ($properties === false) { return false; } $res = true; if ($properties['status'] != self::STATUS_PUBLISHED) { $published_folder = $this->getPagePublishedFolder($id, $properties); $edit_folder = $this->getPageEditFolder($id, $properties); if (file_exists($edit_folder)) { if (file_exists($published_folder)) { FileUtils::deleteFolder($published_folder); } FileUtils::rename($edit_folder, $published_folder); } $new_properties = array('status' => self::STATUS_PUBLISHED, 'last-publish-date' => time()); $res = $this->setProperties($id, $new_properties); } $parameters = array('pageId' => $id); $data = null; Plugins::call(Plugins::PUBLISH_PAGE, $parameters, $data); return $res; }
protected function saveImage($row_id, &$data, $field, $language_id) { $orig_data = $data; $edit_data = null; $image_dir = $this->getImageDir($row_id); $this->ensureImageDirIsAvailable($row_id); if (isset($data['action'])) { // ******************************************************************** // Daten wurden verändert / durch "getData" des Plugins bearbeitet // ******************************************************************** if ($data['action'] == 'none') { if (isset($data['overwriteOccured'])) { if ($data['overwriteOccured'] == true) { $data['action'] = 'overwrite'; } } } // Wenn Bild gelöscht oder überschrieben werden soll, // die alte(n) Datei(en) in die Liste der zu löschenden Dateien aufnehmen if ($data['action'] == 'remove' || $data['action'] == 'overwrite') { if (isset($data['existingImage'])) { if (trim($data['existingImage']) != '') { if (file_exists($image_dir . $data['existingImage'])) { $this->image_files_to_delete[] = basename($data['existingImage']); } } } if (isset($data['existingAdditionalSizes'])) { if (is_array($data['existingAdditionalSizes'])) { foreach ($data['existingAdditionalSizes'] as $additional) { $this->image_files_to_delete[] = basename($additional); } } } } // Wenn ein neues Bild eingesetzt werden soll, // die neue(n) Datei(en) in den Bilder-Ordner dieses Elements verschieben // und in die Liste der zu erhaltenden Dateien aufnehmen if ($data['action'] == 'overwrite') { if (isset($data['newImage'])) { if (trim($data['newImage']) != '') { $orig_file = APPLICATION_ROOT . $data['newImage']; if (file_exists($orig_file)) { $new_image_name = $this->getRandomFilename($orig_file); FileUtils::rename($orig_file, $image_dir . $new_image_name); $this->image_files_to_keep[] = basename($new_image_name); $edit_data = array('imageRelativePath' => $new_image_name, 'additionalSizes' => null); if (isset($data['originalImage'])) { $edit_data['originalImage'] = $data['originalImage']; } if (isset($data['customSettings'])) { $edit_data['customSettings'] = $data['customSettings']; } } if (isset($data['newAdditionalSizes'])) { if (is_array($data['newAdditionalSizes'])) { $edit_data['additionalSizes'] = array(); foreach ($data['newAdditionalSizes'] as $additional_id => $additional) { $orig_file = APPLICATION_ROOT . $additional; if (file_exists($orig_file)) { $new_image_name = $this->getRandomFilename($orig_file); FileUtils::rename($orig_file, $image_dir . $new_image_name); $this->image_files_to_keep[] = basename($new_image_name); $edit_data['additionalSizes'][$additional_id] = $new_image_name; } } } } } } // Wenn keine Änderung stattfinden soll, // die Datei(en) in die Liste der zu erhaltenden Dateien aufnehmen } elseif ($data['action'] == 'none') { $this->image_files_to_keep[] = basename($data['existingImage']); if (isset($data['existingAdditionalSizes'])) { if (is_array($data['existingAdditionalSizes'])) { foreach ($data['existingAdditionalSizes'] as $additional_id => $additional) { $this->image_files_to_keep[] = basename($additional); } } } $edit_data = array('imageRelativePath' => $data['existingImage'], 'additionalSizes' => $data['existingAdditionalSizes']); if (isset($data['originalImage'])) { $edit_data['originalImage'] = $data['originalImage']; } if (isset($data['customSettings'])) { $edit_data['customSettings'] = $data['customSettings']; } } } else { // ******************************************************************** // Daten wurden unverändert durchgeschleust // ******************************************************************** if (isset($data['imageRelativePath'])) { if (trim($data['imageRelativePath']) != '') { $this->image_files_to_keep[] = basename($data['imageRelativePath']); $edit_data = array('imageRelativePath' => $data['imageRelativePath'], 'additionalSizes' => null); if (isset($data['additionalSizes'])) { if (is_array($data['additionalSizes'])) { foreach ($data['additionalSizes'] as $additional_id => $additional) { $this->image_files_to_keep[] = basename($additional); } } $edit_data['additionalSizes'] = $data['additionalSizes']; } if (isset($data['originalImage'])) { $edit_data['originalImage'] = $data['originalImage']; } if (isset($data['customSettings'])) { $edit_data['customSettings'] = $data['customSettings']; } } } } $data = $edit_data; }
public function onSavePageDataField($parameters, &$data) { // Nur auf Bilder andwenden if ($parameters['fieldType'] == 'image') { $orig_data = $data; $edit_data = null; if (isset($data['action'])) { // ******************************************************************** // Daten wurden verändert / durch "getData" des Plugins bearbeitet // ******************************************************************** if ($data['action'] == 'none') { if (isset($data['overwriteOccured'])) { if ($data['overwriteOccured'] == true) { $data['action'] = 'overwrite'; } } } // Wenn Bild gelöscht oder überschrieben werden soll, // die alte(n) Datei(en) in die Liste der zu löschenden Dateien aufnehmen if ($data['action'] == 'remove' || $data['action'] == 'overwrite') { if (isset($data['existingImage'])) { if (trim($data['existingImage']) != '') { if (file_exists($parameters['pageFiles'] . $data['existingImage'])) { $this->files_to_delete[] = basename($data['existingImage']); } } } if (isset($data['existingAdditionalSizes'])) { if (is_array($data['existingAdditionalSizes'])) { foreach ($data['existingAdditionalSizes'] as $additional) { $this->files_to_delete[] = basename($additional); } } } } // Wenn ein neues Bild eingesetzt werden soll, // die neue(n) Datei(en) in den "Edit"-Ordner der Seite verschieben // und in die Liste der zu erhaltenden Dateien aufnehmen if ($data['action'] == 'overwrite') { if (isset($data['newImage'])) { if (trim($data['newImage']) != '') { $orig_file = APPLICATION_ROOT . $data['newImage']; if (file_exists($orig_file)) { $new_image_name = $this->getRandomFilename($orig_file); FileUtils::rename($orig_file, $parameters['pageFiles'] . $new_image_name); $this->files_to_keep[] = basename($new_image_name); $edit_data = array('imageRelativePath' => $new_image_name, 'additionalSizes' => null); if (isset($data['originalImage'])) { $edit_data['originalImage'] = $data['originalImage']; } if (isset($data['customSettings'])) { $edit_data['customSettings'] = $data['customSettings']; } } if (isset($data['newAdditionalSizes'])) { if (is_array($data['newAdditionalSizes'])) { $edit_data['additionalSizes'] = array(); foreach ($data['newAdditionalSizes'] as $additional_id => $additional) { $orig_file = APPLICATION_ROOT . $additional; if (file_exists($orig_file)) { $new_image_name = $this->getRandomFilename($orig_file); FileUtils::rename($orig_file, $parameters['pageFiles'] . $new_image_name); $this->files_to_keep[] = basename($new_image_name); $edit_data['additionalSizes'][$additional_id] = $new_image_name; } } } } } } // Wenn keine Änderung stattfinden soll, // die Datei(en) in die Liste der zu erhaltenden Dateien aufnehmen } elseif ($data['action'] == 'none') { $this->files_to_keep[] = basename($data['existingImage']); if (isset($data['existingAdditionalSizes'])) { if (is_array($data['existingAdditionalSizes'])) { foreach ($data['existingAdditionalSizes'] as $additional_id => $additional) { $this->files_to_keep[] = basename($additional); } } } $edit_data = array('imageRelativePath' => $data['existingImage'], 'additionalSizes' => $data['existingAdditionalSizes']); if (isset($data['originalImage'])) { $edit_data['originalImage'] = $data['originalImage']; } if (isset($data['customSettings'])) { $edit_data['customSettings'] = $data['customSettings']; } } } else { // ******************************************************************** // Daten wurden unverändert durchgeschleust // ******************************************************************** if (isset($data['imageRelativePath'])) { if (trim($data['imageRelativePath']) != '') { $this->files_to_keep[] = basename($data['imageRelativePath']); $edit_data = array('imageRelativePath' => $data['imageRelativePath'], 'additionalSizes' => null); if (isset($data['additionalSizes'])) { if (is_array($data['additionalSizes'])) { foreach ($data['additionalSizes'] as $additional_id => $additional) { $this->files_to_keep[] = basename($additional); } } $edit_data['additionalSizes'] = $data['additionalSizes']; } if (isset($data['originalImage'])) { $edit_data['originalImage'] = $data['originalImage']; } if (isset($data['customSettings'])) { $edit_data['customSettings'] = $data['customSettings']; } } } } $data = $edit_data; } }