Меняем смайлы в CKEditor на колобков, или 5 шагов к успеху

  • 06 янв 2012
На данном сайте установлен редактор CKEditor версии 3.6.2 в котором есть встроенный набор смайлов которые ну очень мне не понравились, потому я решил их заменить так называемыми колобками good2 (всем знакомые смайлы которые в частности использует qip messenger). Но процесс изменения смайлов в CKEditor грубо говоря не проработан - если вообще там можно выразится. Потому если ты уважаемый читатель тоже столкнулся с такой проблемой - добро пожаловать ты попал туда куда нужно, я расскажу как это сделать наиболее просто (с моей точки зрения).



Итак приступим. Что мы имеем:
  1. Cotonti Siena 0.9.6
  2. Коробочная версия плагина CKEditor
  3. CKEditor версии 3.5.4 но у себя я его уже обновил(заменил файл ckeditor.js более новым скачанным с оф. сайта) до 3.6.2, а если быть точнее
    timestamp:'B8DJ5M3',

    version:'3.6.2',

    revision:'7275'
    в надежде что в нем исправлен баг о котором я уже писал
  4. Пакет понравившийся вам колобков (я их скачал тут)
Теперь приступим к установке колобков.
  1. Для начала откроем фтп папку plugins/ckeditor/lib/plugins/smiley/images/ на вашем сайте и
    • если встроенные смайлы ты оставлять не хочешь, удаляем все файлы изображений
    • либо загружаем в эту папку еще и файлы колобков (тогда можно будет использовать и встроенные смайлы и колобки одновременно)
    Добавлю лишь совет от себя - в итоге количество файлов а значит смайлов не должно превышать 200 штук
  2. далее загрузим в папку plugins/ckeditor/lib/ файл config.php с таким содержанием
    <?php

    $dir = "/plugins/ckeditor/lib/plugins/smiley/images";

    $str_name = '';

    $str_desc = '';

    if (is_dir($dir))

    {

        if ($dh = opendir($dir))

    {

            while (($filename = readdir($dh)) !== false)

      {

       if ($filename != "." && $filename != "..")

       {

        $str_name .= ",'".$filename."'";

        $str_desc .= ",'".str_replace(".".filetype($filename), '', $filename)."'";

       }

            }

            closedir($dh);

        }

    }

    echo "var fffff1gg=[".substr($str_name, 1)."], fffff2gg=[".substr($str_desc, 1)."];";

    ?>
  3. подключаем созданный файл, а именно открываем файл /plugins/ckeditor/ckeditor.editor.php и после строчки
    cot_rc_link_footer($cfg['plugins_dir'] . '/ckeditor/lib/ckeditor.js');
    вставляем вот такую строчку
    cot_rc_link_footer($cfg['plugins_dir'] . '/ckeditor/lib/config.php');
  4. редактируем файл plugins/ckeditor/lib/ckeditor.js, а именно вместо куска строки
     i.smiley_images=['regular_smile.gif','sad_smile.gif','wink_smile.gif','teeth_smile.gif','confused_smile.gif','tounge_smile.gif','embaressed_smile.gif','omg_smile.gif','whatchutalkingabout_smile.gif','angry_smile.gif','angel_smile.gif','shades_smile.gif','devil_smile.gif','cry_smile.gif','lightbulb.gif','thumbs_down.gif','thumbs_up.gif','heart.gif','broken_heart.gif','kiss.gif','envelope.gif'];i.smiley_descriptions=['smiley','sad','wink','laugh','frown','cheeky','blush','surprise','indecision','angry','angel','cool','devil','crying','enlightened','no','yes','heart','broken heart','kiss','mail'];
    вставляем вот такой кусок
     i.smiley_images=fffff1gg;i.smiley_descriptions=fffff2gg;
  5. настраиваем размер окна смайлов, а именно в файле plugins/ckeditor/lib/plugins/smiley/dialogs/smiley.js ищем параметр отвечающий за количество колонок в окне смайлов
     e=b.smiley_columns||8
    число Х меняем по своему усмотрению (себе я поставил 20 при общем количестве смайлов ~200-250). Далее параметр отвечающий за ширину окна смайлов, в пикселах
    minWidth:270
    число Х меняем по своему усмотрению (себе я поставил 900 ... я работаю за широкоформатным монитором)
Все dance4 ... все готово. К тому же теперь количество смайлов можно регулировать лишь добавляя\удаляя файлы изображений смайлов в папке plugins/ckeditor/lib/plugins/smiley/images/ чего до всех наших манипуляций совсем никак нельзя было сделать. nea



На этом у меня все.  Удачи! drinks