/** * Get a parameter by key * @param $key Parameter key eg: editor.width * @param $fallback Fallback value * @param $default Default value */ public function getParam($key, $fallback = '', $default = '') { // get plugin name $name = $this->getName(); // get all keys $keys = explode('.', $key); // root key set if ($keys[0] === 'editor' || $keys[0] === $name) { return parent::getParam($key, $fallback, $default); // no root key set, treat as shared param } else { // get all params $params = parent::getParams(); // check plugin param and fallback to editor param $param = $params->get($name . '.' . $key, $params->get('editor.' . $key, $fallback)); if (is_string($param)) { $param = parent::cleanParam($param); } if (is_numeric($default)) { $default = intval($default); } if (is_numeric($param)) { $param = intval($param); } return $param === $default ? '' : $param; } }