mailr/public/tiny_mce/tiny_mce_gzip.php

88 lines
3.3 KiB
PHP

<?php
/**
* $RCSfile: tiny_mce_gzip.php,v $
* $Revision: 1.1 $
* $Date: 2005/06/14 18:55:34 $
*
* @author Moxiecode
* @copyright Copyright © 2004, Moxiecode Systems AB, All rights reserved.
*
* This file compresses the TinyMCE JavaScript using GZip and
* enables the browser to do two requests instead of one for each .js file.
* Notice: This script defaults the button_tile_map option to true for extra performance.
*
* Todo:
* - Add local file cache for the GZip:ed version.
*/
// General options
$suffix = ""; // Set to "_src" to use source version
$expiresOffset = 3600 * 24 * 10; // 10 days util client cache expires
// Get data to load
$theme = isset($_REQUEST['theme']) ? $_REQUEST['theme'] : "";
$language = isset($_REQUEST['language']) ? $_REQUEST['language'] : "";
$plugins = isset($_REQUEST['plugins']) ? $_REQUEST['plugins'] : "";
// GZip compress and cache it for 10 days
ob_start ("ob_gzhandler");
header("Content-type: text/javascript; charset: UTF-8");
header("Cache-Control: must-revalidate");
header("Expires: " . gmdate("D, d M Y H:i:s", time() + $expiresOffset) . " GMT");
if ($theme) {
// Write main script and patch some things
echo file_get_contents(realpath("tiny_mce" . $suffix . ".js"));
echo 'TinyMCE.prototype.loadScript = function() {};';
echo "tinyMCE.init(TinyMCECompressed_settings);";
// Load theme, language pack and theme language packs
echo file_get_contents(realpath("themes/" . $theme . "/editor_template" . $suffix . ".js"));
echo file_get_contents(realpath("themes/" . $theme . "/langs/" . $language . ".js"));
echo file_get_contents(realpath("langs/" . $language . ".js"));
// Load all plugins and their language packs
$plugins = explode(",", $plugins);
foreach ($plugins as $plugin) {
$pluginFile = realpath("plugins/" . $plugin . "/editor_plugin" . $suffix . ".js");
$languageFile = realpath("plugins/" . $plugin . "/langs/" . $language . ".js");
if ($pluginFile)
echo file_get_contents($pluginFile);
if ($languageFile)
echo file_get_contents($languageFile);
}
die;
}
?>
var TinyMCECompressed_settings = null;
function TinyMCECompressed() {
}
TinyMCECompressed.prototype.init = function(settings) {
var elements = document.getElementsByTagName('script');
var scriptURL = "";
for (var i=0; i<elements.length; i++) {
if (elements[i].src && elements[i].src.indexOf("tiny_mce_gzip.php") != -1) {
scriptURL = elements[i].src;
break;
}
}
settings["theme"] = typeof(settings["theme"]) != "undefined" ? settings["theme"] : "default";
settings["plugins"] = typeof(settings["plugins"]) != "undefined" ? settings["plugins"] : "";
settings["language"] = typeof(settings["language"]) != "undefined" ? settings["language"] : "en";
settings["button_tile_map"] = typeof(settings["button_tile_map"]) != "undefined" ? settings["button_tile_map"] : true;
scriptURL += "?theme=" + escape(settings["theme"]) + "&language=" + escape(settings["language"]) + "&plugins=" + escape(settings["plugins"]);
document.write('<sc'+'ript language="javascript" type="text/javascript" src="' + scriptURL + '"></script>');
TinyMCECompressed_settings = settings;
}
var tinyMCE = new TinyMCECompressed();