<?php
-// $Id$
/**
* @file
$script = fopen($script, 'r');
// Version is contained in the first 200 chars.
$line = fgets($script, 200);
+ fclose($script);
// 2.x: this.majorVersion="2";this.minorVersion="1.3"
// 3.x: majorVersion:'3',minorVersion:'2.0.1'
if (preg_match('@majorVersion[=:]["\'](\d).+?minorVersion[=:]["\']([\d\.]+)@', $line, $version)) {
- fclose($script);
return $version[1] . '.' . $version[2];
}
- fclose($script);
}
/**
$settings['remove_linebreaks'] = $config['remove_linebreaks'];
}
if (isset($config['verify_html'])) {
- $settings['verify_html'] = $config['verify_html'];
+ // TinyMCE performs a type-agnostic comparison on this particular setting.
+ $settings['verify_html'] = (bool) $config['verify_html'];
}
if (!empty($config['css_classes'])) {
if ($config['css_setting'] == 'theme') {
$settings['content_css'] = implode(',', wysiwyg_get_css());
}
- else if ($config['css_setting'] == 'self' && isset($config['css_path'])) {
+ elseif ($config['css_setting'] == 'self' && isset($config['css_path'])) {
$settings['content_css'] = strtr($config['css_path'], array('%b' => base_path(), '%t' => path_to_theme()));
}
}
// Find the enabled buttons and the button row they belong on.
// Also map the plugin metadata for each button.
// @todo What follows is a pain; needs a rewrite.
+ // $settings['buttons'] are stacked into $settings['theme_advanced_buttons1']
+ // later.
+ $settings['buttons'] = array();
if (!empty($config['buttons']) && is_array($config['buttons'])) {
- // $settings['buttons'] are stacked into
- // $settings['theme_advanced_buttons1'] later.
- // @todo Add a toolbar designer based on jQuery UI.
- $settings['buttons'] = array();
// Only array keys in $settings['extensions'] matter; added to
// $settings['plugins'] later.
$settings['extensions'] = array();
$settings['extensions'][_wysiwyg_tinymce_plugin_name('add', $button)] = 1;
}
// Add external plugins to the list of extensions.
- else if ($type == 'buttons' && empty($plugins[$plugin]['internal'])) {
+ elseif ($type == 'buttons' && empty($plugins[$plugin]['internal'])) {
$settings['extensions'][_wysiwyg_tinymce_plugin_name('add', $plugin)] = 1;
}
// Add internal buttons that also need to be loaded as extension.
- else if ($type == 'buttons' && !empty($plugins[$plugin]['load'])) {
+ elseif ($type == 'buttons' && !empty($plugins[$plugin]['load'])) {
$settings['extensions'][$plugin] = 1;
}
// Add plain extensions.
- else if ($type == 'extensions' && !empty($plugins[$plugin]['load'])) {
+ elseif ($type == 'extensions' && !empty($plugins[$plugin]['load'])) {
$settings['extensions'][$plugin] = 1;
}
// Allow plugins to add valid HTML elements.
unset($settings['buttons']);
// Convert the config values into the form expected by TinyMCE.
- foreach ($settings as $key => $value) {
- if (is_bool($value)) {
- continue;
- }
- if (is_array($value)) {
+ $csv_settings = array('plugins', 'extended_valid_elements', 'theme_advanced_buttons1', 'theme_advanced_buttons2', 'theme_advanced_buttons3');
+ foreach ($csv_settings as $key) {
+ if (isset($settings[$key]) && is_array($settings[$key])) {
$settings[$key] = implode(',', $settings[$key]);
}
}
if (!empty($plugin['load'])) {
// Add path for native external plugins; internal ones are loaded
// automatically.
- if (empty($plugin['internal']) && isset($plugin['path'])) {
- $settings[$name] = base_path() . $plugin['path'];
+ if (empty($plugin['internal']) && isset($plugin['filename'])) {
+ $settings[$name] = base_path() . $plugin['path'] . '/' . $plugin['filename'];
}
}
}
'title' => $plugin['title'],
'icon' => base_path() . $plugin['icon path'] . '/' . $plugin['icon file'],
'iconTitle' => $plugin['icon title'],
- // @todo These should only be set if the plugin defined them.
- 'css' => base_path() . $plugin['css path'] . '/' . $plugin['css file'],
);
+ if (isset($plugin['css file'])) {
+ $settings[$name]['css'] = base_path() . $plugin['css path'] . '/' . $plugin['css file'];
+ }
}
return $settings;
}
}
return $name;
}
- else if ($op == 'remove') {
+ elseif ($op == 'remove') {
if (strpos($name, '-') === 0) {
return substr($name, 1);
}
'advimage' => array(
'path' => $editor['library path'] . '/plugins/advimage',
'extensions' => array('advimage' => t('Advanced image')),
- 'extended_valid_elements' => array('img[src|alt|title|align|width|height|hspace|vspace|border|style|class|onmouseover|onmouseout|id|name]'),
+ 'extended_valid_elements' => array('img[src|alt|title|align|width|height|usemap|hspace|vspace|border|style|class|onmouseover|onmouseout|id|name]'),
'url' => 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/advimage',
'internal' => TRUE,
'load' => TRUE,
'path' => $editor['library path'] . '/plugins/insertdatetime',
'buttons' => array('insertdate' => t('Insert date'), 'inserttime' => t('Insert time')),
'options' => array(
- 'plugin_insertdate_dateFormat' => array('%Y-%m-%d'),
- 'plugin_insertdate_timeFormat' => array('%H:%M:%S'),
+ 'plugin_insertdate_dateFormat' => '%Y-%m-%d',
+ 'plugin_insertdate_timeFormat' => '%H:%M:%S',
),
'url' => 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/insertdatetime',
'internal' => TRUE,
);
}
}
+ if (version_compare($editor['installed version'], '3.2.5', '>=')) {
+ $plugins['autoresize'] = array(
+ 'path' => $editor['library path'] . '/plugins/autoresize',
+ 'extensions' => array('autoresize' => t('Auto resize')),
+ 'url' => 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/autoresize',
+ 'internal' => TRUE,
+ 'load' => TRUE,
+ );
+ }
if (version_compare($editor['installed version'], '3.3', '>=')) {
$plugins['advlist'] = array(
'path' => $editor['library path'] . '/plugins/advlist',
'load' => TRUE,
);
}
+ if (version_compare($editor['installed version'], '3.2.6', '>=')) {
+ $plugins['wordcount'] = array(
+ 'path' => $editor['library path'] . '/plugins/wordcount',
+ 'extensions' => array('wordcount' => t('Word count')),
+ 'url' => 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/wordcount',
+ 'internal' => TRUE,
+ 'load' => TRUE,
+ );
+ }
return $plugins;
}