123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102 |
- <?php
- /**
- * @file
- * Editor integration functions for EpicEditor.
- */
- /**
- * Plugin implementation of hook_editor().
- */
- function wysiwyg_epiceditor_editor() {
- $editor['epiceditor'] = array(
- 'title' => '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;
- }
|