'EpicEditor', 'vendor url' => 'http://oscargodson.github.com/EpicEditor', 'download url' => 'http://oscargodson.github.com/EpicEditor/docs/downloads/EpicEditor-v0.1.1.zip', 'libraries' => array( '' => array( 'title' => 'Minified', 'files' => array('js/epiceditor.min.js'), ), 'src' => array( 'title' => 'Source', 'files' => array('js/epiceditor.js'), ), ), 'version callback' => 'wysiwyg_epiceditor_version', 'themes callback' => 'wysiwyg_epiceditor_themes', 'settings callback' => 'wysiwyg_epiceditor_settings', 'versions' => array( '0.1.1' => array( 'js files' => array('epiceditor.js'), ), ), ); return $editor; } /** * Detect editor version. * * @param $editor * An array containing editor properties as returned from hook_editor(). * * @return * The installed editor version. */ function wysiwyg_epiceditor_version($editor) { $library = $editor['library path'] . '/js/epiceditor.js'; if (!file_exists($library)) { return; } // @todo Do not load the entire file; use fgets() instead. $library = file_get_contents($library, 'r'); $version = preg_match('%EpicEditor\.version = \'(.*)\'\;%', $library, $matches); if (!isset($matches[1])) { return; } return $matches[1]; } /** * Determine available editor themes or check/reset a given one. * * @param $editor * A processed hook_editor() array of editor properties. * @param $profile * A wysiwyg editor profile. * * @return * An array of theme names. The first returned name should be the default * theme name. */ function wysiwyg_epiceditor_themes($editor, $profile) { return array('epic-dark', 'epic-light'); // @todo Use the preview themes somewhere. //return array('preview-dark', 'github'); } /** * Return runtime editor settings for a given wysiwyg profile. * * @param $editor * A processed hook_editor() array of editor properties. * @param $config * An array containing wysiwyg editor profile settings. * @param $theme * The name of a theme/GUI/skin to use. * * @return * A settings array to be populated in * Drupal.settings.wysiwyg.configs.{editor} */ function wysiwyg_epiceditor_settings($editor, $config, $theme) { $settings = array( 'basePath' => base_path() . $editor['library path'], 'clientSideStorage' => FALSE, 'theme' => $theme, //'preview_theme' => '', ); return $settings; }