/** * add requirements for frontend editing only when logged in * @todo Use TinyMCEs Compressor 4.0.2 PHP */ public function onBeforeInit() { $canEdit = FrontendEditing::ShowAdmin(); $editingEnabled = FrontendEditing::editingEnabled(); $minExt = Director::isDev() ? "" : ".min"; if ($canEdit) { // Enable front-end fly-out menu // //Flexslider imports easing, which breaks? Requirements::block('flexslider/javascript/jquery.easing.1.3.js'); Requirements::javascript(FRAMEWORK_DIR . '/thirdparty/jquery/jquery.js'); Requirements::javascript(FRAMEWORK_DIR . '/thirdparty/jquery-ui/jquery-ui.js'); Requirements::javascript(FRAMEWORK_ADMIN_DIR . '/javascript/ssui.core.js'); Requirements::javascript(THIRDPARTY_DIR . '/jquery-entwine/dist/jquery.entwine-dist.js'); Requirements::javascriptTemplate(FRONTEND_ADMIN_DIR . '/javascript/dist/FrontEndAdminTemplate' . $minExt . '.js', $this->getConfig($this->owner->data())); Requirements::css(FRAMEWORK_DIR . '/thirdparty/jquery-ui-themes/smoothness/jquery-ui.css'); Requirements::javascript(FRONTEND_ADMIN_DIR . '/javascript/dist/FrontEndAdmin' . $minExt . '.js'); Requirements::css(FRONTEND_ADMIN_DIR . '/css/frontend-admin' . $minExt . '.css'); $this->owner->getResponse()->addHeader("X-DynamicCache-OptOut", true); } if ($canEdit && $editingEnabled) { // Disable mode pagespeed while editing $this->owner->getResponse()->addHeader("PageSpeed", "off"); // Disable HTTP cache while editing HTTP::set_cache_age(0); // Enable TinyMCE when editing has been enabled Requirements::javascript(FRONTEND_ADMIN_DIR . '/bower_components/tinymce/jquery.tinymce.min.js'); Requirements::javascript(FRONTEND_ADMIN_DIR . '/javascript/dist/FrontEndEditor' . $minExt . '.js'); Requirements::css(FRONTEND_ADMIN_DIR . '/css/frontend-editor' . $minExt . '.css'); } }
/** * Returns the string which will be used in the template * @return string */ public function forTemplate() { $value = parent::forTemplate(); if (FrontendEditing::editingEnabled() && FrontendEditing::isEditable($this)) { $value = '<span class="frontend-editable frontend-editable-varchar" data-feclass="' . FrontendEditing::getClassName($this) . '" data-feid="' . FrontendEditing::getID($this) . '" data-fefield="' . $this->name . '">' . $value . '</span>'; } return $value; }
/** * Returns the string which will be used in the template * @return string */ public function forTemplate() { $isEditable = FrontendEditing::editingEnabled() && FrontendEditing::isEditable($this); $value = parent::forTemplate(); if ($isEditable) { $field = $this->scaffoldSearchField($value)->setAttribute('data-feclass', FrontendEditing::getClassName($this))->setAttribute('data-feid', FrontendEditing::getID($this))->setAttribute('data-fefield', $this->name)->setHasEmptyDefault(false)->addExtraClass("frontend-editable frontend-editable-boolean")->setValue($value); $value = $field->forTemplate(); } return $value; }
/** * Returns the string which will be used in the template * @return string */ public function forTemplate() { $isEditable = FrontendEditing::editingEnabled() && FrontendEditing::isEditable($this); $value = parent::forTemplate(); if ($isEditable) { $field = $this->formField(null, null, false, $value)->setAttribute('data-feclass', FrontendEditing::getClassName($this))->setAttribute('data-feid', FrontendEditing::getID($this))->setAttribute('data-fefield', $this->name)->addExtraClass("frontend-editable frontend-editable-enum"); $value = $field->forTemplate(); } return $value; }
/** * Returns the string which will be used in the template * @return string */ public function forTemplateEdit() { $dbField = $this->owner->dbObject('Filename'); FrontendEditing::setValue($dbField, $this->owner->Filename, $this->owner); $isEditable = FrontendEditing::editingEnabled() && FrontendEditing::isEditable($dbField); $value = $this->owner->forTemplate() . "99"; if ($isEditable) { $value = "<span class='editable'>" . $value . "</span>"; } return $value; }
/** * Returns the string which will be used in the template * @return string */ public function forTemplate() { $isEditable = FrontendEditing::editingEnabled() && FrontendEditing::isEditable($this); if ($isEditable) { $this->processShortcodes = false; } $value = parent::forTemplate(); if ($isEditable) { $randId = uniqid(); $value = '<div id="' . $randId . '" contenteditable=true class="frontend-editable frontend-editable-html" data-feclass="' . FrontendEditing::getClassName($this) . '" data-feid="' . FrontendEditing::getID($this) . '" data-fefield="' . $this->name . '">' . $value . '</div>'; } return $value; }