Как изменить TinyMCE external_image_list_url из кода - PullRequest
0 голосов
/ 16 февраля 2011

когда пользователь собирается добавить изображение в статью, я использовал список изображений, чтобы дать ему возможность добавлять изображения в отдельный раздел и добавлять их в статью из tinyMCE, но что произойдет, если у нас будет огромное количество изображений пользователянайду длинный список !!это не будет легко вообще?поэтому я хочу найти способ сделать так, чтобы каждая статья имела свой собственный список изображений images_list.php? article_id = 333 .. .

аккордеон - это контейнер заголовков всех статей в разделекогда нажимаешь edit или добавляешь ajax с tinymce, делай работу, но как изменить свойство external_image_list_url каждой статьи ?????

1 Ответ

0 голосов
/ 13 марта 2011

при создании списка javascript с помощью php-файла, как в этом примере из moxiecode, вы сможете получать изображения в зависимости от статьи.

Получайте удовольствие!

Примерсгенерированный PHP файл списка изображений

<?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 = "../../img"; // Use your correct (relative!) path here

// 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") && getimagesize("$directory/$file") != FALSE) {
                // We got ourselves a file! Make an array entry:
                $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;

?>
...