Important changes to Tiny Cloud pricing > Find out more
Return to Website

external_media_list_url

This option enables you to have an external list of media files. This list of media 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.

Example of usage of the external_media_list_url option:

tinyMCE.init({
    ...
    external_media_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.

Example of a external media list file: (myexternallist.js)

var tinyMCEMediaList = new Array(
    // Name, URL
    ["Logo 1", "logo.swf"],
    ["Logo 2 Over", "logo_over.fla"]
);

Example of a PHP-generated media list file

<?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
   'avi' => '1','mpg' => '1','mov' => '1','fla' => '1','swf' => '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($TinyMceMediaExts[@$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_list_url option) and your browser should receive a valid JavaScript file (which of course hasn't got the typical ".js" file extension).

Except as otherwise noted, the content of this page is licensed under the Creative Commons BY-NC-SA 3.0 License, and code samples are licensed under the Apache 2.0 License.