<?xml version='1.0' encoding='UTF-8'?>
<rss version='2.0'>
	<channel>
		<title>Использование WYSIWYG редактора CKEditor</title>
		<link>https://lily-software.com</link>
		<description>Лента комментариев страницы</description>
		<generator>Cotonti</generator>
		<language>ru</language>
		<pubDate>Thu, 30 Apr 2026 11:49:08 +0300</pubDate>

		<item>
			<title>Комментируемая страница</title>
			<description><![CDATA[<p>Использование WYSIWYG редактора CKEditor для плагинов для <strong>CMF Cotonti</strong>.</p>

<p style="text-align:justify;"><em><strong>WYSIWYG</strong> (является аббревиатурой от англ. <strong>W</strong>hat <strong>Y</strong>ou <strong>S</strong>ee <strong>I</strong>s <strong>W</strong>hat <strong>Y</strong>ou <strong>G</strong>et, «что видишь, то и получишь») — программа, в которой содержание отображается в процессе редактирования и выглядит очень похоже на конечную продукцию, которая может быть печатным документом, веб-страницей, слайд-презентацией или даже использоваться для освещения театральных событий.</em></p>

<p style="text-align:justify;">Сам же CKEditor представляет собой приложение JavaScript. Плагин, подключающий этот редактор с CMF Cotonti и позволяющий с его помощью редактировать страницы <a href="https://lily-software.com/sozdanie-internet-sajtov/arhiv/cotonti_ckeditor">можно скачать тут</a>. Помимо редактирования страниц, он дает разработчику возможность использовать этот редактор в своих плагинах.</p>

<p style="text-align:justify;">Эту возможность мы сейчас и рассмотрим.</p>

<p style="text-align:justify;"> </p>

<p style="text-align:justify;">В настройках плагина в панели администратора сайта нам нужно опцию « «ckeditor.js» только для редактирования страниц» перевести в положение «Нет», чтобы CKEditor стал доступным на всех страница сайта (не только при редактировании страниц).</p>

<p> </p>

<h3>Создание экземпляра редактора</h3>

<p style="text-align:justify;">На Вашей странице CKEditor работает как элемент <strong>&lt;textarea&gt;</strong>. При этом он предоставляет пользователю интерфейс, позволяющий легко набирать текст с использованием форматирования. Что сделать без использования редактора для обычного пользователя не так легко, т.к. для этого потребовалось бы от пользователя знание HTML, которое и потребовалось бы ввести в &lt;textarea&gt;.</p>

<p style="text-align:justify;">Фактически CKEditor использует элемент &lt;textarea&gt; для передачи данных на сервер. Во время работы редактора «textarea» не видна для пользователя. Но для создания экземпляра редактора, Вам нужно сначала создать элемент &lt;textarea&gt;.</p>

<p class="code">&lt;textarea name="editor1"&gt;&lt;p&gt;Initial value.&lt;/p&gt;&lt;/textarea&gt;</p>

<p> </p>

<p style="text-align:justify;">Обратите внимание, если Вы хотите загрузить данные в редактор, например редактируемую страницу из базы данных, Вам нужно просто поместить данные внуть элемента &lt;textarea&gt;. Как в примере выше.</p>

<p style="text-align:justify;">Мы назвали нашу текстовую область «editor1». Это имя в последующем следует использовать на стороне сервера для того, чтобы прочитать данные, которые будут набраны (отредактированы) в редакторе.</p>

<p style="text-align:justify;">И вот, используя JavaScript CKEditor API мы превращаем текстовую обрасть в полнофункциональный редактор. Это делается всего одним обращением к JavaScript.</p>

<p class="code">&lt;script type="text/javascript"&gt;<br />
        CKEDITOR.replace( 'editor1' );<br />
&lt;/script&gt;</p>

<p>Этот блок кода может быть включен в любом месте страницы после заменяемого тега «textarea».</p>

<p>Вы также можете вызвать метод replace() из заголовка страницы (внутри тега &lt;head&gt;), но это следует делать из обработчика события «window.onload». Например:</p>

<p class="code">&lt;script type="text/javascript"&gt;<br />
    window.onload = function()<br />
    {<br />
        CKEDITOR.replace( 'editor1' );<br />
    }<br />
&lt;/script&gt;</p>

<p> </p>

<h3>Сохранение данных из редактора</h3>

<p>Как уже упоминалось выше, CKEditor работает как элемент &lt;textarea&gt;. Так при отправке формы на сервер, содержащей редактор, его данные отправляются на сервер используя имя замещенного элемента &lt;textarea&gt; как ключ для доступа к ним.</p>

<p>К примеру, следующий PHP код примет данные из редактора, созданного в предыдущем примере:</p>

<p class="code">&lt;?php<br />
$editor_data = $_POST[ 'editor1' ];<br />
?&gt;</p>

<p>Это был общий пример.<br />
Создавая плагин для Cotonti, следует использовать такой код:</p>

<p class="code">&lt;?php<br />
$editor_data = sed_import( 'editor1', 'P', 'HTM' );<br />
?&gt;</p>

<p> </p>

<h3>Обработка данных на стороне клиента</h3>

<p> </p>

<p>Иногда требуется бработка данных на стороне клиента, например в проложениях Ajax. Используя CKEditor API данные из редактора, также достаточно легко прочитать, например:</p>

<p class="code">&lt;script type="text/javascript"&gt;<br />
    var editor_data = CKEDITOR.instances.editor1.getData();<br />
&lt;/script&gt;</p>

<p> </p>

<h3>Полный пример</h3>

<p class="code">&lt;html&gt;<br />
&lt;head&gt;<br />
        &lt;title&gt;Sample - CKEditor&lt;/title&gt;<br />
        &lt;script type="text/javascript" src="https://lily-software.com/ckeditor/ckeditor.js"&gt;&lt;/script&gt;<br />
&lt;/head&gt;<br />
&lt;body&gt;<br />
        &lt;form method="post"&gt;<br />
                &lt;p&gt;<br />
                        My Editor:&lt;br /&gt;<br />
                        &lt;textarea name="editor1"&gt;&lt;p&gt;Initial value.&lt;/p&gt;&lt;/textarea&gt;<br />
                        &lt;script type="text/javascript"&gt;<br />
                                CKEDITOR.replace( 'editor1' );<br />
                        &lt;/script&gt;<br />
                &lt;/p&gt;<br />
                &lt;p&gt;<br />
                        &lt;input type="submit" /&gt;<br />
                &lt;/p&gt;<br />
        &lt;/form&gt;<br />
&lt;/body&gt;<br />
&lt;/html&gt;</p>
]]></description>
			<pubDate>сб, 20 мар 2010 12:48:00 +0300</pubDate>
			<link><![CDATA[https://lily-software.com/articles/using_ckeditor]]></link>
		</item>
	</channel>
</rss>