Source of file VisualEditor_EditModule.php
Size: 7,233 Bytes - Last Modified: 2021-12-23T10:59:17+00:00
/var/www/docs.ssmods.com/process/src/code/admin/VisualEditor_EditModule.php
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287 | <?php /** * Created by PhpStorm. * User: Conrad * Date: 6/07/2016 * Time: 11:25 AM */ class VisualEditor_EditModule extends VisualEditor { private static $url_segment = 'content-modules/visual-editor/module'; private static $tree_class = 'ContentModule'; private static $url_priority = 42; private static $session_namespace = 'VisualEditorModule.EditModule'; private static $allowed_actions = array( 'delete', 'ModuleEditForm', 'publish', 'save', 'show', 'unlink', 'unpublish', ); public function init() { parent::init(); } /** * Shows edit form for a module * * @param $request * @return HTML */ public function show($request) { if($request->param('ID')) $this->setCurrentPageID($request->param('ID')); return $this->getModuleEditForm($this->getRequest()->param('ID'))->forTemplate(); } /** * @param null|int $id * @return Form */ public function getModuleEditForm($id = null, $fields = null) { if(!$id) $id = $this->currentPageID(); $module = $this->getRecord($id); $fields = $module->getCMSFields(); $fields->push(HiddenField::create('ID')->setValue($id)); $actions = $module->getCMSActions(); $form = Form::create($this, 'ModuleEditForm', $fields, $actions); $form->loadDataFrom($module) ->setTemplate('VisualEditor_EditForm') ->addExtraClass('module-edit-form cms-content'); return $form; } /** * returns getModuleEditForm * * @return Form */ public function ModuleEditForm() { return $this->getModuleEditForm(); } /** * Action for publishing a module * * @param $data * @param $form * @return SS_HTTPResponse */ public function publish($data, $form) { $module = $this->getRecord($data['ID']); $message = $module->doPublish($data); return ContentModuleUtilities::json_response( array( 'Status' => 1, 'Message' => $message, 'Content' => $this->getModuleEditForm($data['ID']) ->forTemplate() ->forTemplate() ) ); } /** * Unpublish action for a module * * @param $data * @param $form * @return SS_HTTPResponse */ public function unpublish($data, $form) { $module = $this->getRecord($data['ID']); $message = $module->doUnpublish($data); return ContentModuleUtilities::json_response( array( 'Status' => 1, 'Message' => $message, 'Content' => $this->getModuleEditForm($data['ID']) ->forTemplate() ->forTemplate() ) ); } /** * Save action for a module (save draft) * * @param $data * @param $form * @return SS_HTTPResponse */ public function save($data, $form) { $module = $this->getRecord($data['ID']); $message = $module->doSave($data); return ContentModuleUtilities::json_response( array( 'Status' => 1, 'Message' => $message, 'Content' => $this->getModuleEditForm($data['ID']) ->forTemplate() ->forTemplate() ) ); } /** * Delete action for a module * * @param $data * @param $form * @return SS_HTTPResponse */ public function delete($data, $form) { $module = $this->getRecord($data['ID']); $message = $module->doDelete($data); return ContentModuleUtilities::json_response( array( 'Status' => 1, 'Message' => $message, 'Content' => $this->getModuleEditForm($data['ID']) ->forTemplate() ->forTemplate() ) ); } /** * Unlink action for a module * * @param $data * @param $form * @return SS_HTTPResponse */ public function unlink($data, $form) { $module = $this->getRecord($data['ID']); $message = $module->doUnlink($data); return ContentModuleUtilities::json_response( array( 'Status' => 1, 'Message' => $message, 'Content' => $this->getModuleEditForm($data['ID']) ->forTemplate() ->forTemplate() ) ); } /** * Unlink action for a module * * @param $data * @param $form * @return SS_HTTPResponse */ public function rollback($data, $form) { $module = $this->getRecord($data['ID']); $message = $module->doRollback($data); return ContentModuleUtilities::json_response( array( 'Status' => 1, 'Message' => $message, 'Content' => $this->getModuleEditForm($data['ID']) ->forTemplate() ->forTemplate() ) ); } /** * Get a database record to be managed by the CMS. * * @param int $id Record ID * @param int $versionID optional Version id of the given record * @return DataObject */ public function getRecord($id, $versionID = null) { $treeClass = $this->stat('tree_class'); if($id instanceof $treeClass) { return $id; } else if($id && is_numeric($id)) { if($this->getRequest()->getVar('Version')) { $versionID = (int) $this->getRequest()->getVar('Version'); } if (class_exists('Translatable')) { Translatable::disable_locale_filter(); } if($versionID) { $record = Versioned::get_version($treeClass, $id, $versionID); } else { $record = DataObject::get_by_id($treeClass, $id); } // Then, try getting a record from the live site if(!$record) { // $record = Versioned::get_one_by_stage($treeClass, "Live", "\"$treeClass\".\"ID\" = $id"); Versioned::reading_stage('Live'); singleton($treeClass)->flushCache(); $record = DataObject::get_by_id($treeClass, $id); if($record) Versioned::set_reading_mode(''); } // Then, try getting a deleted record if(!$record) { $record = Versioned::get_latest_version($treeClass, $id); } if (class_exists('Translatable')) { Translatable::enable_locale_filter(); } return $record; } else if(substr($id,0,3) == 'new') { return $this->getNewItem($id); } } /** * * @return String */ public function BackLink() { return Controller::join_links($this->Link('show'), $this->currentPageID()); } } |