<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl"  href="/xslt/final.xslt"?><html>
  <head>
    <title>Codeigniter Blog. Step6: WISIWIG: TinyMCE и FCKEditor</title>
    <meta name="css" content=""/>
    <meta name="js" content=""/>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <meta name="id" content="9"/>
    <link rel="alternate" type="application/rss+xml" title="RSS" href="/rss.xml"/>
  </head>
  <body>
    <div class="main">
      <div class="wrap">
        <div class="L">
          <h1><a href="/">..</a> / Codeigniter Blog. Step6: WISIWIG: TinyMCE и FCKEditor</h1>
          <ol class="tags big">
            <li>
              <a href="/codeigniter-blog">codeigniter-blog</a>
            </li>
            <li>
              <a href="/wysiwyg">wysiwyg</a>
            </li>
            <li>
              <a href="/fckeditor">fckeditor</a>
            </li>
          </ol>
          <div class="myContent"><p>Пришло время прикручивать WYSIWYG - визуальный редактор текстов типа FrontPage. Причем, чтобы не мелочиться прикрутим сразу два: FCKeditor и TinyMCE. И то и другое занимает по времени не более 10-15 минут. Но намного больше придется провести время, чтобы напильником заточить их под себя  и убрать все врожденные глюки и FCKeditor и TinyMCE.  Но это отдельная тема. Так по умолчанию оба редактора вполне работоспособны,  на фоне прочих бесплатных WYSYWIG смотрятся очень хорошо и невзыскательного пользователя вполне устроят.  <br/>
Как прикручивать правильно, <a href="#" title="codeigniter.com/wiki/Category:WYSIWYG/" rel="nofollow" class="external">написано в мануале</a>:  Но мы прикрутим без мануалов, заодно освоим как самим написать и прикрутить вспомогательные функции - хелперы, которыми мы пользовались раньше.</p>
<h2>1. Устанавливаем FCKeditor</h2>
<ul>
    <li> Идем на сайт <a href="#" title="www.fckeditor.net/download" rel="nofollow" class="external">FCKeditor</a> и копируем оттуда последнюю версию редактора.  Создаем директорию /system/plugins/fckeditor. Копируем туда fckeditor. Удаляем из этой и вложенной в нее директории лишнее - примеры, смайлики, ненужные файлы языковой поддержки, интерфейсы к ASP,PERL и т.д., php-файлы из корневой директории. В результате сокращаем вдвое объем библиотеки.</li>
    <li>Дорабатываем вьюер для добавления записей /system/application/views/record_add.php - сразу за textarea для ввода записи пишем js-код для вызова FCKeditor<br/>
    
<table class="code">
        <tbody>
            <tr>
                <td><!--php-->
                <pre class="brush: plain">&lt;div&gt;  
  &lt;textarea name="body" id="body" rows="10" cols="40"&gt;        Comment&lt;/textarea&gt;        
&lt;/div&gt;        
    &lt;ript type="text/javaSCRIPT" src="/system/plugins/fckeditor/fckeditor.js"&gt;        &lt;/SCRIPT&gt;        
    &lt;ript type="text/javaSCRIPT"&gt;        
     var oFCKeditor = new FCKeditor("body"); // привязка к textarea с id="body"
     oFCKeditor.ToolbarSet="Basic"; // число кнопочек на инструментальной панели
     oFCKeditor.BasePath="/system/plugins/fckeditor/"; //путь к fckeditor 
     oFCKeditor.ReplaceTextarea(); // вставка текста из textarea с id="body"
    &lt;/SCRIPT&gt;        
&lt;div class="submit"&gt;         
  &lt;input type="submit" value="Submit" /&gt;        
&lt;/div&gt;       </pre><!--/php--></td>
            </tr>
        </tbody>
    </table>
    </li>
    <li>На этом минимальная установка может считаться законченной. Все, коме отдельных плагинов, в которых возможно и нет никакой необходимости,  должно работать. <br/>
    Проверяем результат, вызвав в броузере: http://ci/admin/record_add  После проверки комментируем комментируем js - код</li>
</ul>
<h2>3. Устанавливаем TinyMCE</h2>
<ul>
    <li>Идем на сайт <a href="#" title="tinymce.moxiecode.com/download.php" rel="nofollow" class="external">tinymce</a> и копируем оттуда последнюю версию редактора. В архиве куча файлов примеров, документации и т.п. Из всего этого для работы нужна только директория tinymce/jSCRIPTs/tiny_mce.  Вот ее tiny_mce копируем в директорию плагинов  /system/plugins/ </li>
    <li>Копируем туда содержимое архивной папки</li>
    <li>Дорабатываем вьюер /system/application/views/record_add.php<br/>
    <br/>
    
<table class="code">
        <tbody>
            <tr>
                <td><!--php-->
                <pre class="brush: plain">&lt;div&gt;  
   &lt;textarea name="body" id="body" rows="10" cols="40"&gt;        Comment&lt;/textarea&gt;        
&lt;/div&gt;        
    &lt;!--
    &lt;SCRIPT type="text/javaSCRIPT" src="/system/plugins/fckeditor/fckeditor.js"&gt;        &lt;/SCRIPT&gt;        
    &lt;SCRIPT type="text/javaSCRIPT"&gt;        
     var oFCKeditor = new FCKeditor("body"); // привязка к textarea с id="body"
     oFCKeditor.ToolbarSet="Basic"; // число кнопочек на инструментальной панели
     oFCKeditor.BasePath="/system/plugins/fckeditor/"; //путь к fckeditor 
     oFCKeditor.ReplaceTextarea(); // вставка текста из textarea с id="body"
    &lt;/SCRIPT&gt;        
    --&gt;        
    &lt;SCRIPT type="text/javaSCRIPT" src="/system/plugins/tinymce/tiny_mce.js"&gt;        &lt;/SCRIPT&gt;        
    &lt;SCRIPT type="text/javaSCRIPT"&gt;        tinyMCE.init({mode : "exact", elements : "body"});&lt;/SCRIPT&gt;        
    &lt;div class="submit"&gt;          &lt;input type="submit" value="Submit" /&gt;        &lt;/div&gt;       </pre><!--/php--></td>
            </tr>
        </tbody>
    </table>
    </li>
    <li>проверяем результат, вызвав в броузере: http://ci/admin/record_add и комментируем js-код</li>
</ul>
<h2>5. Создаем helper для редакторов</h2>
<ul>
    <li>Создаем файл /system/helpers/editor_heper.php Обращаем внимание на то, что суффикс '_helper' - обязательный. Если его не будет Codeigniter выплюнет ошибку. </li>
    <li>В хелпере создаем функцию вызывающую  tinymce - в нее <strong>тупо </strong>копируем закомментированный код из /system/application/views/record_add.php:<br/>
    <br/>
    
<table class="code">
        <tbody>
            <tr>
                <td><!--php-->
                <pre class="brush: plain">function tinymce() 
     {
      return '&lt;cript type="text/javaSCRIPT" src="/system/plugins/tinymce/tiny_mce.js"&gt;        &lt;/SCRIPT&gt;        
      &lt;cript type="text/javaSCRIPT"&gt;        tinyMCE.init({mode : "exact", elements : "body"});&lt;/SCRIPT&gt;        ';
     }</pre><!--/php--></td>
            </tr>
        </tbody>
    </table>
    </li>
    <li>Подгружаем хелпер в конфигурационном файле: /system/application/config/autoload.php, заменяя строку:<br/>
    $autoload['helper'] = ...<br/>
    на<br/>
    array('url','editor'); </li>
    <li>Подгружаем хелпер в контроллере администрирования /system/application/controller/admin.php<br/>
    
<table class="code">
        <tbody>
            <tr>
                <td><!--php-->
                <pre class="brush: plain">function Admin()
     {
        parent::Controller();
        $this-&gt;        load-&gt;        helper('url');
        $this-&gt;        load-&gt;        helper('form');
        $this-&gt;        load-&gt;        library('session');
        $this-&gt;        load-&gt;        helper('editor');
       ...................................................................
       ...................................................................
    }</pre><!--/php--></td>
            </tr>
        </tbody>
    </table>
    </li>
    <li>во вьюере /system/application/views/record_add.php  дописываем строку:</li>
    
<table class="code">
        <tbody>
            <tr>
                <td><!--php-->
                <pre class="brush: plain">&lt;div&gt; 
                
    &lt;textarea name="body" id="body" rows="10" cols="40"&gt;        Comment&lt;/textarea&gt;   
                
&lt;/div&gt;        
                &lt;? echo tinymce() ?&gt;   </pre><!--/php--></td>
            </tr>
        </tbody>
    </table>
    <li>Проверяем.</li>
    <li>Аналогично делаем с  fckeditor.</li>
    <li>Приводим хелпер в порядок, добавляя возможность вызова из одной процедуры обоих редакторов,  добавляем возможность настройки внешнего вида - simple(простая панель инструментов), <br/>
    full(все возможности редактора).  Приводить код не имеет смысла, но если интересно, его можно посмотреть в архивной директории step6</li>
</ul>
<h2>6.</h2>
<p>Как обычно код, полученный в результает этого шана сохраням в архивной директории <a href="/js/step-by-step.zip">step6</a> Но без внешних редакторов и их конфигурационных файлов.</p>
<h2><br/>
P.S. Настройка  FCKeditor</h2>
<p>Совершенно аналогично можно подключить и другие WYSIWYG-редакторы. Это достаточно легко. Но я все-таки  стараюсь пользоваться FCKeditor.  Основные причины, по которым я выбрал его из десятка других:  </p>
<ul>
    <li>FCKeditor не вполне кроссброузерный  - для IE он  использует родную IE-библиотеку, для прочих броузеров - "кроссброузерную". За счет этого намного быстрее других работает в IE и это особенно заметно при работе с большими текстами.   В FireFox степень его глючности и тормознутости точно такая же как и у прочих <strong>халявных</strong> WYSIWYG. (Имхо) В Opera он вообще не работает, ну и хрен с ней с Оперой.</li>
    <li>FCKeditor не обрушивает сложные (с rowspan и colspan) таблицы импортированные из MS Word (Кажется из бесплатных это умеет только редактор встроенный в Joomla).  </li>
    <li>FCKeditor умеет по-человечески вставлять картинки, без подгрузки дополнительных сторонних плагинов. </li>
</ul>
<p>Естественно FCKeditor без недостатков (а у кого их нет?). Но из наиболее заметных:</p>
<ul>
    <li>Как-то странно работает отмена исправлений (откат CTRL+Z).  И похоже, что это неисправимо в текущей версии..</li>
    <li>Норовит добавить лишние строки.  Но этим грешит не только FCKeditor. У остальных тоже такая Но можно подпилить  код.</li>
</ul>
<p>Теперь собственно о первичной настройке  FCKeditor:</p>
<ul>
    <li>Уберем лишние функции с панели инструментов, для этого откроем конфигурационный файл /system/plugins/fckeditor/fckconfig.js,<br/>
    Находим строку  <span class="codecolor">FCKConfig.ToolbarSets["Default"] = ...<br/>
    </span>Редактируем ее, не забыв сохранить на всякий случай ее копию. Я обычно оставляю следующее:<br/>
    
<table class="code">
        <tbody>
            <tr>
                <td><!--php-->
                <pre class="brush: plain">FCKConfig.ToolbarSets["Default"] = [
     ['FitWindow','Source','PasteWord','RemoveFormat'],  ['Textarea'], ['Style','FontFormat'],'/',
     ['Bold','Italic','Underline','StrikeThrough','-','SubSCRIPT','SuperSCRIPT'],
     ['OrderedList','UnorderedList','-','Outdent','Indent'],
     ['JustifyLeft','JustifyCenter','JustifyRight','JustifyFull'],
     ['Link','Unlink','Anchor'],
     ['Image','Table'],
    ] ;</pre><!--/php--></td>
            </tr>
        </tbody>
    </table>
    </li>
    <li>B Переопределяем дефолтные CSS-стили в листбоксе. Для этого редактируется файл  /system/plugins/fckeditor/fckstyles.xml, который отвечает за листбокс на панели инструментов и /system/plugins/fckeditor/css/fck_editorarea.css, отвечающий за отображение стилей в окне редактирования</li>
    <li>Настраиваем функцию загрузки картинок в текст (из-за чего и был выбран FCKeditor) 
    <ul>
        <li>- Открываем файл system/plugins/fckeditor/editor/filemanager/upload/php/config.php<br/>
        Находим строчку <br/>
        $Config['Enabled'] = false ;<br/>
        заменяем ее на <br/>
        $Config['Enabled'] = true ;</li>
        <li>там же правим путь к директории, в которой хранятся картинки. Я храню картинки в директории /img/<br/>
        нахожу и заменяю строку<br/>
        $Config['UserFilesPath'] = '/userfiles/' ;<br/>
        на<br/>
        $Config['UserFilesPath'] = '/img/' ;</li>
        <li>Открываем файл system/plugins/fckeditor/fckconfig.js<br/>
        Находим и меняем строки <br/>
        var _FileBrowserLanguage = 'asp' ; // asp | aspx | cfm | lasso | perl | php | py<br/>
        var _QuickUploadLanguage = 'asp' ; // asp | aspx | cfm | /admin/article/edit/9~nocache107442#~nocache800576lasso | php<br/>
        на <br/>
        var _FileBrowserLanguage = 'php' ;<br/>
        var _QuickUploadLanguage = 'php' ;</li>
        <li>Там же проконтролируем наличие строки:<br/>
        FCKConfig.ImageUpload = true ;</li>
        <li>Задумаемся о безопасности. Функция Upload не закрыта авторизацией. Поэтому на сайт можно выложить без всякой авторизации что угодно. От вирусов до порно. Чтобы обезопаситься от совсем тупых кул хацкеров можно переименовать директорию FCKeditor во что-то менее стандартное.  Для большей безопасности нужно прикрутить авторизацию к Upload и запрет записи в директорию /img/ вне режима добавлеения записей администратором.</li>
    </ul>
    </li>
</ul>
<p>Вот и все основные настройки.</p></div>
          <ol class="tags big">
            <li class="date">2007-09-03</li>
            <li>
              <a href="/codeigniter-blog">codeigniter-blog</a>
            </li>
            <li>
              <a href="/wysiwyg">wysiwyg</a>
            </li>
            <li>
              <a href="/fckeditor">fckeditor</a>
            </li>
          </ol>
          <ol class="see">
            <li>
              <a href="#"><span>www.simplecoding.org/podklyuchaem-fckeditor-k-codeigniter.html</span> - <b>Еще одна статья о подключении FCKeditor к CodeIgniter на  simplecoding.org</b></a>
            </li>
          </ol>
          <ul class="comment">
            <li id="a6" title="a0">
              <a name="&#x412;&#x43B;&#x430;&#x434;" title="" rel="14.09.07"/>
              <div>Еще есть оч. хороший редактор Xinha http://xinha.webfactional.com.</div>
            </li>
            <li id="a12" title="a0">
              <a name="VolCh" title="" rel="25.10.07"/>
              <div>Вот не понял (как и в предыдущих примерах): зачем загружать хелперы и в autoload, и в контролере"<br/>В автолоаде, как я понял, они грузится, если нужны везде в приложении. В контролере, если нужны во всех (или большей части) функций. В отдельной функции, если нужны только в ней.</div>
            </li>
            <li id="a30" title="a0">
              <a name="&#x41D;&#x435;&#x438;&#x437;&#x432;&#x435;&#x441;&#x442;&#x43D;&#x44B;&#x439; &#x434;&#x440;&#x443;&#x433; &#x422;&#x44B;&#x43C;&#x430;&#x43D;&#x447;&#x438;" title="" rel="26.02.08"/>
              <div>/system/helpers/editor_hepler.php<br/>опечатка должно быть<br/>/system/helpers/editor_helper.php<br/>долго мучалась в поисках этой ошибки &gt;_</div>
            </li>
            <li id="a35" title="a0">
              <a name="wild" title="" rel="09.04.08"/>
              <div>Да, хелперы достаточно грузить либо в autoload, либо например в конструкторе.</div>
            </li>
            <li id="a39" title="a0">
              <a name="Dim" title="" rel="04.05.08"/>
              <div>Пасиба за классное пособие ;)<br/>До сих пор все шло гладко.<br/>Только что прикрутил FCK.<br/>оппа- не работает (нет изменений). а я все в опере делаю. в консоли ошибок js нетути. глянул в ff - OK;)<br/>Короче, в скрипте в функции FCKeditor_IsCompatibleBrowser<br/>в самом начале написал:<br/>return true;<br/>заработало и в опере.</div>
            </li>
            <li id="a71" title="a6">
              <a name="&#x418;&#x441;&#x430;&#x430;&#x43A; &#x422;&#x44B;&#x43D;&#x433;&#x44B;&#x43B;&#x447;&#x430;&#x432;" title="" rel="03.09.08"/>
              <div>На момент написания уродовал сложные таблицы и с большими текстами не справлялся.</div>
            </li>
            <li id="a72" title="a39">
              <a name="&#x418;&#x441;&#x430;&#x430;&#x43A; &#x422;&#x44B;&#x43D;&#x433;&#x44B;&#x43B;&#x447;&#x430;&#x432;" title="" rel="03.09.08"/>
              <div>Ну я бы не сильно на это рассчитывал. Если разработчики не поддерживают оперу, значит проглючить может в любом месте и в самое неподходяще время. <br/>Честно признаюсь. Не люблю Оперу.</div>
            </li>
            <li id="a114" title="a0">
              <a name="Le capitaine Nemo" title="" rel="08.10.08"/>
              <div>$Config['UserFilesPath'] = '/files/' ;<br/>Каталог создан в корне. <br/>Ругается 'Error creating directory "/filed/images": (Can't create directory)'<br/>При попытке просмотра файлов или аплоада.</div>
            </li>
            <li id="a126" title="a0">
              <a name="Strut" title="" rel="10.10.08"/>
              <div>Не работают FCK Tiny ): Такое впечатление, что неработают вобще скрипты<br/>в СI ): Пробывал эти скрипты в простом хтмл - работают ): Кто поможет?</div>
            </li>
            <li id="a129" title="a126">
              <a name="&#x418;&#x441;&#x430;&#x430;&#x43A; &#x422;&#x44B;&#x43D;&#x433;&#x44B;&#x43B;&#x447;&#x430;&#x432;" title="erum.ru" rel="13.10.08"/>
              <div>ЭЭЭЭ. Вообще-то скрипты работают в броузере, а не в CI или еще где-то. Наверное у вас плохо удается их подключить.</div>
            </li>
            <li id="a130" title="a0">
              <a name="Strut" title="" rel="14.10.08"/>
              <div>Там проблема была в путях - нужно было поставить слеш перед и перед "system/plugins/fckeditor/fckeditor.js" тобиш "src="/system/plugins/fckeditor/fckeditor.js" спасибо вам за очень полезный материал (:</div>
            </li>
            <li id="a139" title="a114">
              <a name="Le capitaine Nemo" title="" rel="25.10.08"/>
              <div>Исправилось все корректировкой путей и пропиской в .htaccess <br/>RewriteEngine On<br/>RewriteCond %{REQUEST_FILENAME} !-d<br/>RewriteCond %{REQUEST_FILENAME} !-f<br/>RewriteRule ^(.*)$ /index.php/$1 [L]</div>
            </li>
            <li id="a162" title="a0">
              <a name="kabanches" title="" rel="13.11.08"/>
              <div>скажите, а как прикрутить такой редактор, в скрипт, работающий на perl</div>
            </li>
            <li id="a163" title="a162">
              <a name="&#x418;&#x441;&#x430;&#x430;&#x43A; &#x422;&#x44B;&#x43D;&#x433;&#x44B;&#x43B;&#x447;&#x430;&#x432;" title="erum.ru" rel="13.11.08"/>
              <div>Вообще-то разницы никакой нет. PHP здесь немного за уши притянут. Основа - JS<br/>Единственная разница может быть при закачке картинок.  Она повязана на скриптовый язык.</div>
            </li>
            <li id="a166" title="a0">
              <a name="tester" title="" rel="18.11.08"/>
              <div>прикрутил вроде нормально а вот когда добавляешь картинку не сохраняются изменения. а если просто текст то все хорошо работает</div>
            </li>
            <li id="a167" title="a166">
              <a name="&#x418;&#x441;&#x430;&#x430;&#x43A; &#x422;&#x44B;&#x43D;&#x433;&#x44B;&#x43B;&#x447;&#x430;&#x432;" title="erum.ru" rel="18.11.08"/>
              <div>Попробуйте залезть в функцию загрузки картинок и поставьте трассировку. Посмотрите что она делает. <br/>Наиболее вероятны два варианте. <br/>1) вы неправильно указали путь к хранилищу картинок.<br/>2) у вас нет прав на запись картинок.</div>
            </li>
            <li id="a168" title="a0">
              <a name="tester" title="" rel="18.11.08"/>
              <div>тут такая ситуация вообщем текст сохраняется а вот если вставить картинку то изменения не сохраняются.<br/>когда правишь:<br/> <br/>на:<br/>она сохраняется но когда дальше редактировать после как сохранишь опять такие же грабли. и еще так же с таблицами, после вставки таблицы не сохраняются изменения<br/>да и вообще со всем где есть в тэге кавычки "</div>
            </li>
            <li id="a169" title="a0">
              <a name="tester" title="" rel="18.11.08"/>
              <div>картинки заливаются нормально.</div>
            </li>
            <li id="a172" title="a168">
              <a name="&#x418;&#x441;&#x430;&#x430;&#x43A; &#x422;&#x44B;&#x43D;&#x433;&#x44B;&#x43B;&#x447;&#x430;&#x432;" title="erum.ru" rel="18.11.08"/>
              <div>Ну ловите по цепочке. <br/>Смотрите что передается на сервер. Что записывается в базу. Что выдатся при повторной правке в редактор. Локализуйте где пропадают данные.</div>
            </li>
            <li id="a173" title="a172">
              <a name="tester" title="" rel="18.11.08"/>
              <div>Спасибо за совет :) трабла была в magic_quotes_gpc = off<br/>изменил на <br/>magic_quotes_gpc = on</div>
            </li>
            <li id="a174" title="a0">
              <a name="tester" title="" rel="18.11.08"/>
              <div>и еще где можно поменять цвет фона?</div>
            </li>
            <li id="a238" title="a0">
              <a name="&#x432;&#x430;&#x43D;&#x44F;" title="" rel="11.02.09"/>
              <div>"Для большей безопасности нужно прикрутить авторизацию к Upload и запрет записи в директорию /img/ вне режима добавлеения записей администратором."<br/>Расскажите пожалуйста поподробней, я не могу разобраться.</div>
            </li>
            <li id="a270" title="a238">
              <a name="&#x418;&#x441;&#x430;&#x430;&#x43A; &#x422;&#x44B;&#x43D;&#x433;&#x44B;&#x43B;&#x447;&#x430;&#x432;" title="erum.ru" rel="20.04.09"/>
              <div>Обычно при авторизации в сессии выставляется переменная, которая говорит что пользователь залогинен. Самый простой  (но наверное не самый правильный) способ - проверять наличие этой переменной в самом плагине Upload.</div>
            </li>
            <li id="a277" title="a0">
              <a name="&#x414;&#x435;&#x43D;&#x438;&#x441;" title="" rel="02.05.09"/>
              <div>Спасибо за эту серию статей, уваважаемый автор!<br/>Только одно но: я понимаю, что Вы не любите оперу и по миру процент ее использования очень невысок, но если игнорировать отсутствие поддержки того же FCKeditor в этом браузере - это как миниму отсеивать около 20 процентов русских пользователей, которые любят этот браузер. Мне кажется, это не очень профессионально.</div>
            </li>
            <li id="a278" title="a277">
              <a name="&#x418;&#x441;&#x430;&#x430;&#x43A; &#x422;&#x44B;&#x43D;&#x433;&#x44B;&#x43B;&#x447;&#x430;&#x432;" title="erum.ru" rel="02.05.09"/>
              <div>1. Design mode был разработан MS более 10 лет назад. Разработчики Оперы до сих пор не смогли освоить с ним работу. А претензиии почему-то ко мне? <br/>2. Полнофункциональный текстовый редактор не нужен 99.99% пользователей. Это инструмент контент-менеджера/веб-мастера.  А их вполне можно напрячь работать с определенными броузерами.</div>
            </li>
            <li id="a327" title="a0">
              <a name="Rebus" title="" rel="16.07.09"/>
              <div>Пробовал ли кто-нибудь вставлять в этом редакторе код javascript?<br/>Проблема: <br/>при сохранении удаляется знак "+" в выражениях.<br/>может подскажете где подправить шаблон или регвыражение в коде или в настройках редактора.</div>
            </li>
            <li id="a370" title="a0">
              <a name="&#x418;&#x43B;&#x44C;&#x44F;" title="" rel="20.11.09"/>
              <div>А я в качестве WYSIWYG порекомендовал бы SPAW Editor v.2 (<a title="http://spaweditor.com/" rel="nofollow" class="external" href="#">ссылка</a>  )</div>
            </li>
            <li id="a371" title="a0">
              <a name="&#x421;&#x435;&#x440;&#x433;&#x435;&#x439;" title="" rel="21.11.09"/>
              <div>Все супер. но вот беда, вышел CKEditor.<br/>Но и это не проблема, установил, настроил, но! Как загружать картинки? Здесь тоже не написано. Как я понял, нужно работать с стандартными классами CI, но как передать путь к загруженной картинке в CKEditor?<br/>В общем, как всегда, вопросов больше чем ответов.</div>
            </li>
            <li id="a504" title="a371">
              <a name="Le capitaine Nemo" title="" rel="28.04.10"/>
              <div>В CKeditor какой-то убитый файл-менеджер.</div>
            </li>
            <li id="a510" title="a0">
              <a name="&#x412;&#x438;&#x43A;&#x442;&#x43E;&#x440;" title="Freedom-56.ru" rel="07.05.10"/>
              <div>Автор зачет! Даешь статью как сделать меню.</div>
            </li>
            <li id="a551" title="a504">
              <a name="Shal" title="mecs.kz/" rel="06.08.10"/>
              <div>+ данный редактор дает несовсем валидный код! На выходе получается слишком много хтмл мусора</div>
            </li>
            <li id="a566" title="a278">
              <a name="www" title="www" rel="14.10.10"/>
              <div>ааааааааа ааааааааааааааа аааааааааааааааа</div>
            </li>
            <li id="a575" title="a0">
              <a name="GTAlex" title="blog.gtalex.ru/" rel="02.12.10"/>
              <div>не вижу подключения настроек fckconfig.js</div>
            </li>
            <li id="a684" title="a0">
              <a name="&#x41C;&#x430;&#x43A;&#x441;&#x438;&#x43C; &#x41F;&#x435;&#x440;&#x435;&#x43F;&#x435;&#x43B;&#x438;&#x446;&#x430;" title="" rel="22.01.12"/>
              <div>Пользуюсь этим фреймворком уже несколько лет. Удобная справка и вообще хорошо документирован.<br/>Кстати, появилось руководство пользователя на русском для версии 2.0.0<br/><u class="external" title="codeigniter.su">http://codeigniter.su</u></div>
            </li>
          </ul>
        </div>
      </div>
      <div class="R">
        <a href="/" title="&#x41D;&#x430; &#x433;&#x43B;&#x430;&#x432;&#x43D;&#x443;&#x44E;"/>
      </div>
    </div>
    <div id="li"/>
  </body>
</html>

