* @package MCMS\Components\Editor */ abstract class EditorBase extends \Mammut\StrictObject implements \MCMS\Component\iComEditor { private $id = NULL; private $formId = NULL; private $name = NULL; private $value = NULL; private $required = false; protected $cssClass = ''; protected $inlineCss = false; protected $param = array(); private $rand; protected $readOnly = false; public function __construct($id = NULL) { $this->id = $id; // init with default values $this->resetCSSClass(); $this->rand = md5(rand(1, getrandmax())); } public function loadFromObject(\MCMS\Model\iModel $object) { $name = $this->getName(); if(isset($object->$name)) $this->setValue($object->$name); else $this->setValue(NULL); return isset($object->$name); } public function getID() { return isset($this->id) ? $this->id : ($this->id = $this->rand . '_' . $this->getName()); } public function setID($id) { $this->id = $id; } public function isReadOnly() { return $this->readOnly; } public function setReadOnly($value) { $this->readOnly = (boolean) $value; } public function getName() { return $this->name; } public function setName($name) { $this->name = $name; } public function getParam($key, $default = NULL) { if(isset($this->param[$key])) return $this->param[$key]; else return $default; } public function getParams() { return $this->param; } public function setParam($key, $value) { $this->param[$key] = $value; } public function delParam($key) { unset($this->param[$key]); } public function getCSSClass() { return $this->cssClass; } public function setCSSClass($class) { if(is_array($class)) $class = implode(' ', $class); $this->cssClass = (string) $class; } public function getInlineCSS() { return $this->inlineCss; } public function setInlineCSS($css) { $this->inlineCss = $css; } public function getFormID() { return $this->formId; } public function setFormID($id) { $this->formId = $id; } public function setRequired($required) { $this->required = (boolean) $required; } public function isRequired() { return $this->required; } public function getValue() { return $this->value; } public function setValue($data) { $this->value = $data; } public final function getBaseURL($file) { if(strpos($file, _COMPATHX_) !== false) return _COMURLX_ . '/editor'; else return _COMURL_ . '/editor'; } public static function escapeString($st) { return htmlentities($st, ENT_COMPAT, 'utf-8'); } /** * method which converts the input field value to the real value */ public function parseInput($input, $parent) { return $input; } public function __toString() { try { $data = $this->generate(); return $data['html']; } catch(\Exception $e) { return 'ERROR ' . get_class($e) . ': ' . $e->getMessage(); } } }