|
@@ -362,50 +362,52 @@ class FCKeditor
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
- * This method returns editor's custom configuration settings read from a php-file.
|
|
|
+ * This method returns editor's custom configuration settings read from php-files.
|
|
|
* @return array Custom configuration data.
|
|
|
*/
|
|
|
private function & get_custom_configuration() {
|
|
|
static $config;
|
|
|
- static $toobar_sets = array();
|
|
|
if (!isset($config)) {
|
|
|
require api_get_path(LIBRARY_PATH).'fckeditor/myconfig.php';
|
|
|
}
|
|
|
- // Seeking the toolbar.
|
|
|
$toolbar_dir = isset($config['ToolbarSets']['Directory']) ? $config['ToolbarSets']['Directory'] : 'default';
|
|
|
- $config['ToolbarSets']['Normal'] = null;
|
|
|
- $config['ToolbarSets']['Maximized'] = null;
|
|
|
- if (!isset($toobar_sets[$this->ToolbarSet])) {
|
|
|
+ return array_merge($config, $this->get_custom_toolbar_configuration($toolbar_dir));
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * This method returns editor's toolbar configuration settings read from a php-file.
|
|
|
+ * @return array Toolbar configuration data.
|
|
|
+ */
|
|
|
+ private function & get_custom_toolbar_configuration($toolbar_dir) {
|
|
|
+ static $toolbar_config = array('Default' => array());
|
|
|
+ if (!isset($toolbar_config[$this->ToolbarSet])) {
|
|
|
+ $toolbar_config[$this->ToolbarSet] = array();
|
|
|
if (preg_match('/[a-zA-Z_]+/', $toolbar_dir) && preg_match('/[a-zA-Z_]+/', $this->ToolbarSet)) { // A security check.
|
|
|
+ // Seeking the toolbar.
|
|
|
@include api_get_path(LIBRARY_PATH).'fckeditor/toolbars/'.$toolbar_dir.'/'.self::camel_case_to_underscore($this->ToolbarSet).'.php';
|
|
|
if (!isset($config['ToolbarSets']['Normal'])) {
|
|
|
// No toolbar has been found yet.
|
|
|
if ($toolbar_dir == 'default') {
|
|
|
- // It does not exist in "factory" toolbar definitions, giving up.
|
|
|
+ // It does not exist in default toolbar definitions, giving up.
|
|
|
$this->ToolbarSet = 'Default';
|
|
|
} else {
|
|
|
- // The custom toolbar does not exist, then trying to load the "factory" one.
|
|
|
+ // The custom toolbar does not exist, then trying to load the default one.
|
|
|
@include api_get_path(LIBRARY_PATH).'fckeditor/toolbars/default/'.self::camel_case_to_underscore($this->ToolbarSet).'.php';
|
|
|
if (!isset($config['ToolbarSets']['Normal'])) {
|
|
|
- // It does not exist in "factory" toolbar definitions too, giving up.
|
|
|
+ // It does not exist in default toolbar definitions, giving up.
|
|
|
$this->ToolbarSet = 'Default';
|
|
|
} else {
|
|
|
- $toobar_sets[$this->ToolbarSet]['Normal'] = $config['ToolbarSets']['Normal'];
|
|
|
- $toobar_sets[$this->ToolbarSet]['Maximized'] = $config['ToolbarSets']['Maximized'];
|
|
|
+ $toolbar_config[$this->ToolbarSet] = $config;
|
|
|
}
|
|
|
}
|
|
|
} else {
|
|
|
- $toobar_sets[$this->ToolbarSet]['Normal'] = $config['ToolbarSets']['Normal'];
|
|
|
- $toobar_sets[$this->ToolbarSet]['Maximized'] = $config['ToolbarSets']['Maximized'];
|
|
|
+ $toolbar_config[$this->ToolbarSet] = $config;
|
|
|
}
|
|
|
} else {
|
|
|
$this->ToolbarSet = 'Default';
|
|
|
}
|
|
|
- } else {
|
|
|
- $config['ToolbarSets']['Normal'] = $toobar_sets[$this->ToolbarSet]['Normal'];
|
|
|
- $config['ToolbarSets']['Maximized'] = $toobar_sets[$this->ToolbarSet]['Maximized'];
|
|
|
}
|
|
|
- return $config;
|
|
|
+ return $toolbar_config[$this->ToolbarSet];
|
|
|
}
|
|
|
|
|
|
/**
|