Get your own copy
Don't hesitate! Just download and test it all by yourself for free!
This option enables you to have an external list of template files. This list of template files can be generated by a server side page and then inserted into the media dialog window of TinyMCE. The media files can be from an internal site images or external URLs.
Change in 3.0: The way that relative URLs are calculated has changed since the 2.x version - you may want to use absolute URLs for this setting.
tinyMCE.init({
...
external_template_list_url : "myexternallist.js"
});
Note: If utilizing the document_base_url option, the path to your file is relative from that base. If not set, your path is relative from the file containing the editor call.
var tinyMCETemplateList = new Array(
// Name, URL
["Logo 1", "logo.htm"],
["Logo 2 Over", "logo_over.tmpl"]
);
<?php // this must be the very first line in your PHP file!
// You can't simply echo everything right away because we need to set some headers first!
$output = ''; // Here we buffer the JavaScript code we want to send to the browser.
$delimiter = "n"; // for eye candy... code gets new lines
$output .= 'var tinyMCEImageList = new Array(';
$directory = "../../media"; // Use your correct (relative!) path here
$TinyMceMediaExts =array( // allowed extensions
'tpl'=> '1', 'tmpl' => '1', 'htm' => '1', 'html' => '1'
);
// Since TinyMCE3.x you need absolute image paths in the list...
$abspath = preg_replace('~^/?(.*)/[^/]+$~', '/$1', $_SERVER['SCRIPT_NAME']);
if (is_dir($directory)) {
$direc = opendir($directory);
while ($file = readdir($direc)) {
if (!preg_match('~^.~', $file)) { // no hidden files / directories here...
if (is_file("$directory/$file")) {
// We got ourselves a file! Make an array entry:
preg_match('/\.([^.]+)$/',$file,$match);
if($TinyMceTemplateExts[@$match[1]]){
$output .= $delimiter
. '["'
. utf8_encode($file)
. '", "'
. utf8_encode("$abspath/$directory/$file")
. '"],';
}
}
}
}
$output = substr($output, 0, -1); // remove last comma from array item list (breaks some browsers)
$output .= $delimiter;
closedir($direc);
}
// Finish code: end of array definition. Now we have the JavaScript code ready!
$output .= ');';
// Make output a real JavaScript file!
header('Content-type: text/javascript'); // browser will now recognize the file as a valid JS file
// prevent browser from caching
header('pragma: no-cache');
header('expires: 0'); // i.e. contents have already expired
// Now we can send data to the browser because all headers have been set!
echo $output;
?>
Put this PHP code into your PHP file (the one you set as resource in the external_media_template_url option) and your browser should receive a valid JavaScript file (which of course hasn't got the typical ".js" file extension).
jlo
The parameter pointing to external template list file is actually "template_external_list_url".