/**
  * 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;
 }