/**
     * This basically merges HtmlEditorField::include_js() and HTMLEditorConfig::generateJS() to output all
     * configuration sets to a customTinyMceConfigs javascript array.
     * This is output in addition to the standard ssTinyMceConfig because a) we can't stop the default output
     * with extensions; and b) the default setting is still used for any HTMLEditorField that doesn't specify
     * it's own config.
     *
     * Calls Requirements::javascript() to load the scripts.
     */
    public static function include_js()
    {
        require_once 'tinymce/tiny_mce_gzip.php';
        $availableConfigs = HtmlEditorConfig::get_available_configs_map();
        $pluginsForTag = array();
        $languages = array();
        //$allConfigs = array();
        $settingsJS = '';
        $externalPluginsForJS = array();
        $activeConfig = HtmlEditorConfig::get_active();
        foreach ($availableConfigs as $identifier => $friendlyName) {
            $configObj = CustomHtmlEditorConfig::get($identifier);
            $internalPluginsForJS = array();
            $configObj->getConfig()->setOption('language', i18n::get_tinymce_lang());
            if (!$configObj->getConfig()->getOption('content_css')) {
                $configObj->getConfig()->setOption('content_css', $activeConfig->getOption('content_css'));
            }
            $settings = $configObj->getSettings();
            foreach ($configObj->getPlugins() as $plugin => $path) {
                if (!$path) {
                    $pluginsForTag[$plugin] = $plugin;
                    $internalPluginsForJS[$plugin] = $plugin;
                } else {
                    $internalPluginsForJS[$plugin] = '-' . $plugin;
                    $externalPluginsForJS[$plugin] = sprintf('tinymce.PluginManager.load("%s", "%s");' . "\n", $plugin, $path);
                }
            }
            $language = $configObj->getConfig()->getOption('language');
            if ($language) {
                $languages[$language] = $language;
            }
            $settings['plugins'] = implode(',', $internalPluginsForJS);
            $buttons = $configObj->getButtons();
            foreach ($buttons as $i => $buttons) {
                $settings['theme_advanced_buttons' . $i] = implode(',', $buttons);
            }
            $settingsJS .= "customTinyMceConfigs['" . $identifier . "'] = " . Convert::raw2json($settings) . ";\n";
        }
        if (Config::inst()->get('HtmlEditorField', 'use_gzip')) {
            $tag = TinyMCE_Compressor::renderTag(array('url' => THIRDPARTY_DIR . '/tinymce/tiny_mce_gzip.php', 'plugins' => implode(',', $pluginsForTag), 'themes' => 'advanced', 'languages' => implode(',', $languages)), true);
            preg_match('/src="([^"]*)"/', $tag, $matches);
            Requirements::javascript($matches[1]);
        } else {
            Requirements::javascript(MCE_ROOT . 'tiny_mce_src.js');
        }
        $externalPluginsJS = implode('', $externalPluginsForJS);
        $script = <<<JS
\t\t\tif((typeof tinyMCE != 'undefined')) {
\t\t\t\t{$externalPluginsJS}

\t\t\t\tif (typeof customTinyMceConfigs == 'undefined') {
\t\t\t\t\tvar customTinyMceConfigs = [];
\t\t\t\t}
\t\t\t\t{$settingsJS}
\t\t\t}

JS;
        Requirements::customScript($script, 'htmlEditorConfigs');
    }
function loadWysiwygJavascript()
{
    global $SETTINGS;
    // Renders script tag with compressed scripts
    // Note: We're using the direct method here: http://www.tinymce.com/wiki.php/Compressors:PHP
    require_once "{$GLOBALS['CMS_ASSETS_DIR']}/3rdParty/tiny_mce/tiny_mce_gzip.php";
    TinyMCE_Compressor::renderTag(array('plugins' => 'inlinepopups,contextmenu,table,fullscreen,paste,media,spellchecker', 'languages' => $SETTINGS['wysiwyg']['wysiwygLang'], 'themes' => 'advanced', 'url' => "{$GLOBALS['CMS_ASSETS_URL']}/3rdParty/tiny_mce/tiny_mce_gzip.php"));
}
Exemplo n.º 3
0
 /**
  * Includes the JavaScript neccesary for this field to work using the {@link Requirements} system.
  */
 public static function include_js()
 {
     require_once 'tinymce/tiny_mce_gzip.php';
     $configObj = HtmlEditorConfig::get_active();
     if (Config::inst()->get('HtmlEditorField', 'use_gzip')) {
         $internalPlugins = array();
         foreach ($configObj->getPlugins() as $plugin => $path) {
             if (!$path) {
                 $internalPlugins[] = $plugin;
             }
         }
         $tag = TinyMCE_Compressor::renderTag(array('url' => THIRDPARTY_DIR . '/tinymce/tiny_mce_gzip.php', 'plugins' => implode(',', $internalPlugins), 'themes' => 'advanced', 'languages' => $configObj->getOption('language')), true);
         preg_match('/src="([^"]*)"/', $tag, $matches);
         Requirements::javascript(html_entity_decode($matches[1]));
     } else {
         Requirements::javascript(MCE_ROOT . 'tiny_mce_src.js');
     }
     Requirements::customScript($configObj->generateJS(), 'htmlEditorConfig');
 }
 private static function include_js_internal($configName)
 {
     require_once 'tinymce/tiny_mce_gzip.php';
     $configObj = HtmlEditorConfig::get_active();
     if (Config::inst()->get('HtmlEditorField', 'use_gzip')) {
         $internalPlugins = array();
         foreach ($configObj->getPlugins() as $plugin => $path) {
             if (!$path) {
                 $internalPlugins[] = $plugin;
             }
         }
         $tag = TinyMCE_Compressor::renderTag(array('url' => THIRDPARTY_DIR . '/tinymce/tiny_mce_gzip.php', 'plugins' => implode(',', $internalPlugins), 'themes' => 'advanced', 'languages' => $configObj->getOption('language')), true);
         preg_match('/src="([^"]*)"/', $tag, $matches);
         Requirements::javascript(html_entity_decode($matches[1]));
     } else {
         Requirements::javascript(MCE_ROOT . 'tiny_mce_src.js');
     }
     $config = HtmlEditorConfig::get($configName);
     $config->setOption('mode', 'none');
     $config->setOption('editor_selector', "htmleditor{$configName}");
     Requirements::customScript("\n\t\t\t" . str_replace("ssTinyMceConfig", "ssTinyMceConfig" . $configName, $config->generateJS()) . "\n\t\t\t", "htmlEditorConfig-{$configName}");
 }
Exemplo n.º 5
0
function tiny_mce_compressor_config()
{
    return TinyMCE_Compressor::renderTag(array("url" => "lib/tinymce/tiny_mce_gzip.php", "plugins" => "advhr,contextmenu,emotions,insertdatetime,paste,table,fullscreen,inlinepopups,autosave", "themes" => "advanced", "languages" => "cs,de,en,fr,it,lv,nl,pl,sv", "disk_cache" => false), true);
}
$basePath = rtrim(dirname($frameworkPath), DIRECTORY_SEPARATOR);
// require composers autoloader
if (file_exists($basePath . '/vendor/autoload.php')) {
    require_once $basePath . '/vendor/autoload.php';
} else {
    if (!headers_sent()) {
        header($_SERVER['SERVER_PROTOCOL'] . " 500 Server Error");
        header('Content-Type: text/plain');
    }
    echo "Failed to include composer's autoloader, unable to continue\n";
    exit(1);
}
// Handle incoming request if it's a script call
if (TinyMCE_Compressor::getParam("js")) {
    // Default settings
    $tinyMCECompressor = new TinyMCE_Compressor(array('cache_dir' => TEMP_FOLDER));
    // Handle request, compress and stream to client
    $tinyMCECompressor->handleRequest();
}
/**
 * This class combines and compresses the TinyMCE core, plugins, themes and
 * language packs into one disk cached gzipped request. It improves the loading speed of TinyMCE dramatically but
 * still provides dynamic initialization.
 *
 * Example of direct usage:
 * require_once("../js/tinymce/tinymce.gzip.php");
 *
 * // Renders script tag with compressed scripts
 * TinyMCE_Compressor::renderTag(array(
 *    "url" => "../js/tinymce/tinymce.gzip.php",
 *    "plugins" => "pagebreak,style",
 /**
  * Generate the JavaScript that will set TinyMCE's configuration:
  * - Parse all configurations into JSON objects to be used in JavaScript
  * - Includes TinyMCE and configurations using the {@link Requirements} system
  */
 public static function require_js()
 {
     require_once 'tinymce/tiny_mce_gzip.php';
     $useGzip = Config::inst()->get('HtmlEditorField', 'use_gzip');
     $configs = array();
     $externalPlugins = array();
     $internalPlugins = array();
     $languages = array();
     foreach (self::$configs as $configID => $config) {
         $settings = $config->settings;
         // parse plugins
         $configPlugins = array();
         foreach ($config->plugins as $plugin => $path) {
             if (!$path) {
                 $configPlugins[] = $plugin;
                 $internalPlugins[] = $plugin;
             } else {
                 $configPlugins[] = '-' . $plugin;
                 if (!array_key_exists($plugin, $externalPlugins)) {
                     $externalPlugins[$plugin] = sprintf('tinymce.PluginManager.load("%s", "%s");', $plugin, $path);
                 }
             }
         }
         // save config plugins settings
         $settings['plugins'] = implode(',', $configPlugins);
         // buttons
         foreach ($config->buttons as $i => $buttons) {
             $settings['theme_advanced_buttons' . $i] = implode(',', $buttons);
         }
         // languages
         $languages[] = $config->getOption('language');
         // save this config settings
         $configs[$configID] = $settings;
     }
     // tinyMCE JS requirement
     if ($useGzip) {
         $tag = TinyMCE_Compressor::renderTag(array('url' => THIRDPARTY_DIR . '/tinymce/tiny_mce_gzip.php', 'plugins' => implode(',', $internalPlugins), 'themes' => 'advanced', 'languages' => implode(",", array_filter($languages))), true);
         preg_match('/src="([^"]*)"/', $tag, $matches);
         Requirements::javascript(html_entity_decode($matches[1]));
     } else {
         Requirements::javascript(MCE_ROOT . 'tiny_mce_src.js');
     }
     // prepare external plugins js string
     $externalPlugins = array_values($externalPlugins);
     $externalPlugins = implode("\n\t", $externalPlugins);
     // tinyMCE config object and external plugings
     $configsJS = "\nif((typeof tinyMCE != 'undefined')) {\n\t{$externalPlugins}\n\tvar ssTinyMceConfig = " . Convert::raw2json($configs) . ";\n}";
     Requirements::customScript($configsJS, 'htmlEditorConfig');
 }
function TinyMCE_Compressor_renderTag($options)
{
    TinyMCE_Compressor::renderTag($options);
}
 /**
  * Generate gzipped TinyMCE configuration including plugins and languages.
  * This ends up "pre-loading" TinyMCE bundled with the required plugins
  * so that multiple HTTP requests on the client don't need to be made.
  *
  * @return string
  */
 public function getScriptURL()
 {
     // If gzip is disabled just return core script url
     $useGzip = Config::inst()->get('HTMLEditorField', 'use_gzip');
     if (!$useGzip) {
         return THIRDPARTY_DIR . '/tinymce/tinymce.min.js';
     }
     // tinyMCE JS requirement
     require_once THIRDPARTY_PATH . '/tinymce/tiny_mce_gzip.php';
     $tag = TinyMCE_Compressor::renderTag(array('url' => THIRDPARTY_DIR . '/tinymce/tiny_mce_gzip.php', 'plugins' => implode(',', $this->getInternalPlugins()), 'themes' => $this->getTheme(), 'languages' => $this->getOption('language')), true);
     preg_match('/src="([^"]*)"/', $tag, $matches);
     return html_entity_decode($matches[1]);
 }