<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet href="http://www.w3.org/2000/08/w3c-synd/style.css" type="text/css"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title>Блог разработки S2</title>
		<link>http://s2cms.ru/blog/</link>
		<description>Блог разработки S2. Последние заметки.</description>
		<generator>S2 1.0b</generator>
		<ttl>10</ttl>
		<atom:link href="http://s2cms.ru/blog/rss.xml" rel="self" type="application/rss+xml" />
		<lastBuildDate>Sat, 10 Dec 2011 13:14:00 GMT</lastBuildDate>
		<item>
			<title>S2 1.0 beta</title>
			<link>http://s2cms.ru/blog/2011/12/10/S2_beta_release</link>
			<description>&lt;p&gt;Вышла новая версия движка 1.0 beta. В&amp;nbsp;ней была существенно доработана система пользователей.&lt;/p&gt;

&lt;p&gt;&lt;nobr&gt;Во-первых&lt;/nobr&gt;, каждый материал теперь привязан к&amp;nbsp;своему пользователю. &lt;nobr&gt;Во-вторых&lt;/nobr&gt;, уточнены права &lt;a href=&quot;http://s2cms.ru/docs/admin_panel#users&quot;&gt;пользователей&lt;/a&gt;. Разрешение «редактировать сайт» разделено на два: «создавать страницы» (у&amp;nbsp;авторов) и&amp;nbsp;собственно «редактировать сайт» (у&amp;nbsp;редакторов). Авторы могут изменять только свои материалы, а&amp;nbsp;редакторы могут исправлять любые материалы. &lt;nobr&gt;В-третьих&lt;/nobr&gt;, вместе с&amp;nbsp;материалом можно выводить имя автора.  Оно задается в&amp;nbsp;панели управления и&amp;nbsp;после этого отображается вместо метки &lt;nobr&gt;&lt;code&gt;&amp;lt;!-- s2_author --&amp;gt;&lt;/code&gt;&lt;/nobr&gt;.&lt;/p&gt;

&lt;p&gt;Движок стал удобнее и&amp;nbsp;безопаснее:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;сеансы привязаны к&amp;nbsp;IP-адресу: если IP меняется, пароль нужно ввести заново;&lt;/li&gt;
&lt;li&gt;если сеанс заканчивается, для продолжения достаточно ввести пароль, а&amp;nbsp;не думать, куда скопировать несохраненные данные, и&amp;nbsp;перезагружать страницу;&lt;/li&gt;
&lt;li&gt;в панель управления под одним логином можно входить с&amp;nbsp;разных компьютеров или браузеров;&lt;/li&gt;
&lt;li&gt;если в&amp;nbsp;панель управления вошли с&amp;nbsp;вашим логином в&amp;nbsp;другом браузере, то в&amp;nbsp;начале вашего нового сеанса будет выведено предупреждение об этом;&lt;/li&gt;
&lt;li&gt;если во время редактирования страница была изменена другим пользователем, движок не перезапишет вашу версию поверх чужих изменений, вам будет предложено перенести ваши изменения в&amp;nbsp;версию с&amp;nbsp;чужими изменениями;&lt;/li&gt;
&lt;li&gt;во время установки движок пытается определить, доступен&amp;nbsp;ли сайт по защищенному протоколу https, и&amp;nbsp;в&amp;nbsp;этом случае включает принудительное его использование в&amp;nbsp;панели управления.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Чтобы использовать последнюю возможность после обновления движка (и, разумеется, если на вашем хостинге есть https), можете добавить в&amp;nbsp;config.php &lt;a href=&quot;http://s2cms.ru/docs/config#admin_https&quot;&gt;соответствующую константу&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Как я писал &lt;a href=&quot;http://s2cms.ru/blog/2011/09/04/S2_alpha6_release&quot;&gt;в предыдущий раз&lt;/a&gt;, в&amp;nbsp;этой версии есть изменение, которое может вызвать несовместимость с&amp;nbsp;текущими стилями. Оно связано с&amp;nbsp;флажком «Выдержки статей и&amp;nbsp;подразделов» в&amp;nbsp;панели инструментов на &lt;a href=&quot;http://s2cms.ru/docs/admin_panel#edit&quot;&gt;вкладке редактирования&lt;/a&gt;. Его единственное предназначение заключалось в&amp;nbsp;том, чтобы скрывать список дочерних элементов в&amp;nbsp;разделах (отключать метку &lt;nobr&gt;&lt;code&gt;&amp;lt;!-- s2_subarticles --&amp;gt;&lt;/code&gt;&lt;/nobr&gt;). Этот флажок существовал в&amp;nbsp;движке еще до появления метки &lt;nobr&gt;&lt;code&gt;&amp;lt;!-- s2_subarticles --&amp;gt;&lt;/code&gt;&lt;/nobr&gt; и&amp;nbsp;сейчас удален как устаревший. После обновления поведение сайта станет таким, как будто флажок включен на всех страницах. Вместо него следует использовать переключение на шаблон, в&amp;nbsp;котором нет этой метки.&lt;/p&gt;

&lt;p&gt;В&amp;nbsp;панели управления были удалены некоторые другие ненужные функции и&amp;nbsp;были улучшены алгоритмы расстановки тегов &lt;code&gt;&amp;lt;p&amp;gt;&lt;/code&gt; и&amp;nbsp;&lt;code&gt;&amp;lt;br&amp;gt;&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Расширения также были обновлены. Старые версии расширений &lt;a href=&quot;http://s2cms.ru/extension/s2_blog&quot;&gt;s2_blog&lt;/a&gt;, &lt;a href=&quot;http://s2cms.ru/extension/s2_wysiwyg&quot;&gt;s2_wysiwyg&lt;/a&gt;, &lt;a href=&quot;http://s2cms.ru/extension/s2_search&quot;&gt;s2_search&lt;/a&gt;, &lt;a href=&quot;http://s2cms.ru/extension/s2_manage_extensions&quot;&gt;s2_manage_extensions&lt;/a&gt; с&amp;nbsp;новой версией движка не заработают, их нужно обновить вместе с&amp;nbsp;обновлением движка.&lt;/p&gt;

&lt;p&gt;Инструкция по обновлению:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Сделать резервную копию файлов движка и, что важнее, базы данных, чтобы ваша предыдущая работа не потерялась и&amp;nbsp;чтобы в&amp;nbsp;случае затруднений можно было откатиться назад.&lt;/li&gt;
&lt;li&gt;Отключить в&amp;nbsp;панели управления все расширения.&lt;/li&gt;
&lt;li&gt;Переписать файлы движка и&amp;nbsp;используемых расширений.&lt;/li&gt;
&lt;li&gt;Обновить расширения в&amp;nbsp;панели управления.&lt;/li&gt;
&lt;li&gt;Включить все расширения.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Выпускать новую версию движка помогал &lt;a href=&quot;http://shkarbatov.com/&quot;&gt;Дмитрий Шкарбатов&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;Ключевые слова: &lt;a href=&quot;http://s2cms.ru/blog/tags/releases/&quot;&gt;релизы&lt;/a&gt;&lt;/p&gt;</description>
			<author>Роман Парпалак</author>
			<guid isPermaLink="true">http://s2cms.ru/blog/2011/12/10/S2_beta_release</guid>
			<pubDate>Sat, 10 Dec 2011 13:14:00 GMT</pubDate>
			<comments>http://s2cms.ru/blog/2011/12/10/S2_beta_release#comment</comments>
		</item>
		<item>
			<title>S2 1.0 alpha 6</title>
			<link>http://s2cms.ru/blog/2011/09/04/S2_alpha6_release</link>
			<description>&lt;p&gt;Выпуская &lt;a href=&quot;http://s2cms.ru/blog/2011/06/14/S2_alpha5_release&quot;&gt;версию 1.0 alpha 5&lt;/a&gt;, я написал, что следующей версией станет 1.0 beta с&amp;nbsp;несколькими крупными изменениями в&amp;nbsp;управлении учетными записями. Эти изменения я так и&amp;nbsp;не сделал, однако внес множество других исправлений и&amp;nbsp;улучшений и&amp;nbsp;сейчас выпускаю S2 1.0 alpha 6.&lt;/p&gt;

&lt;p&gt;В&amp;nbsp;ядре движка и&amp;nbsp;&lt;a href=&quot;http://s2cms.ru/extension/s2_blog&quot;&gt;расширении s2_blog&lt;/a&gt; оптимизированы некоторые запросы к&amp;nbsp;базе данных, движок стал еще быстрее.&lt;/p&gt;

&lt;p&gt;Среди параметров настройки появился цвет фона панели управления. Это полезно, если у&amp;nbsp;вас несколько сайтов на движке S2, или если кроме рабочего сайта есть тестовая установка S2. Благодаря цветовому кодированию почти невозможно перепутать панели управления разных сайтов.&lt;/p&gt;

&lt;p&gt;В&amp;nbsp;браузерах Firefox и&amp;nbsp;Chrome упростилась загрузка файлов: их можно просто перетаскивать на панель управления. Надеюсь, новые технологии скоро будут поддерживаться и&amp;nbsp;другими браузерами.&lt;/p&gt;

&lt;p&gt;Также добавлено ограничение на типы загружаемых файлов. Раньше расширение загружаемых файлов никак не проверялось. Поэтому, если вы кому-то давали разрешение на редактирование сайта в&amp;nbsp;панели управления, он мог загрузить, например, произвольный PHP-скрипт и&amp;nbsp;получить полный доступ к&amp;nbsp;серверу.&lt;/p&gt;

&lt;p&gt;В&amp;nbsp;шаблонах появилась новая метка &lt;code&gt;&amp;lt;!-- s2_navigation_link --&amp;gt;&lt;/code&gt;. Она предназначена для добавления тегов &amp;lt;link&amp;gt; в&amp;nbsp;секцию &amp;lt;head&amp;gt;, содержащих ссылки на соседние страницы. На&amp;nbsp;основе этих тегов можно сделать &lt;a href=&quot;http://s2cms.ru/docs/style_snippets#arrows&quot;&gt;навигацию с&amp;nbsp;помощью Ctrl и&amp;nbsp;стрелок&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Среди остальных изменений можно отметить следующее:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;наконец я разобрался с&amp;nbsp;поддержкой базы данных SQLite, новая версия S2 может работать с&amp;nbsp;SQLite 3 через PDO;&lt;/li&gt;
&lt;li&gt;в состав дистрибутива включен английский языковой пакет (переводить движок на английский помогал &lt;a href=&quot;http://s2cms.ru/forum/profile.php?id=15&quot;&gt;rab&lt;/a&gt;);&lt;/li&gt;
&lt;li&gt;в дистрибутиве появился скрипт, обновляющий базу данных на лету;&lt;/li&gt;
&lt;li&gt;теперь выдержки подразделов отображаются наряду с&amp;nbsp;выдержками страниц;&lt;/li&gt;
&lt;li&gt;разделы можно разбивать на страницы, количество выдержек регулируется в&amp;nbsp;настройках;&lt;/li&gt;
&lt;li&gt;улучшена работа ядра и&amp;nbsp;&lt;a href=&quot;http://s2cms.ru/extension/s2_search&quot;&gt;расширения s2_search&lt;/a&gt;, когда нет перезаписи URL (отсутствует mod_rewrite);&lt;/li&gt;
&lt;li&gt;доработана система оповещений в&amp;nbsp;панели управления;&lt;/li&gt;
&lt;li&gt;TinyMCE в&amp;nbsp;составе &lt;a href=&quot;http://s2cms.ru/extension/s2_wysiwyg&quot;&gt;визуального редактора (s2_wysiwyg)&lt;/a&gt; обновлен до версии 3.4.4.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Я по-прежнему хочу переделать учетные записи и&amp;nbsp;в&amp;nbsp;следующий раз выпустить 1.0 beta. Также в&amp;nbsp;следующей версии появится изменение, которое может вызвать несовместимость с&amp;nbsp;текущими стилями. Оно связано с&amp;nbsp;флажком «Выдержки статей и&amp;nbsp;подразделов» в&amp;nbsp;панели инструментов на &lt;a href=&quot;http://s2cms.ru/docs/admin_panel#edit&quot;&gt;вкладке редактирования&lt;/a&gt;. Его единственное предназначение&amp;nbsp;— скрывать список дочерних элементов в&amp;nbsp;разделах (отключать метку &lt;code&gt;&amp;lt;!-- s2_subarticles --&amp;gt;&lt;/code&gt;). Этот флажок существовал в&amp;nbsp;движке еще до появления метки &lt;code&gt;&amp;lt;!-- s2_subarticles --&amp;gt;&lt;/code&gt; и&amp;nbsp;сейчас является устаревшим. Вместо него следует использовать переключение на шаблон, в&amp;nbsp;котором нет этой метки. В&amp;nbsp;следующей версии этот флажок исчезнет, а&amp;nbsp;поведение сайта будет таким, как будто он включен на всех страницах.&lt;/p&gt;

&lt;p&gt;Кстати, в&amp;nbsp;документации описан процесс &lt;a href=&quot;http://s2cms.ru/docs/extensions&quot;&gt;разработки расширений&lt;/a&gt;. Так как я взял реализацию расширений в&amp;nbsp;PunBB, то и&amp;nbsp;создание документации в&amp;nbsp;основном свелась к&amp;nbsp;переводу фрагмента документации PunBB. Переводить помогал &lt;a href=&quot;http://s2cms.ru/forum/profile.php?id=17&quot;&gt;Ty4ka&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;Ключевые слова: &lt;a href=&quot;http://s2cms.ru/blog/tags/releases/&quot;&gt;релизы&lt;/a&gt;&lt;/p&gt;</description>
			<author>Роман Парпалак</author>
			<guid isPermaLink="true">http://s2cms.ru/blog/2011/09/04/S2_alpha6_release</guid>
			<pubDate>Sun, 04 Sep 2011 18:45:00 GMT</pubDate>
			<comments>http://s2cms.ru/blog/2011/09/04/S2_alpha6_release#comment</comments>
		</item>
		<item>
			<title>S2 1.0 alpha 5</title>
			<link>http://s2cms.ru/blog/2011/06/14/S2_alpha5_release</link>
			<description>&lt;p&gt;Прошло чуть больше месяца с&amp;nbsp;&lt;a href=&quot;http://s2cms.ru/blog/2011/05/10/S2_alpha4_release&quot;&gt;момента выхода предыдущей версии&lt;/a&gt; движка, и&amp;nbsp;я выпустил новую версию, S2 1.0 alpha 5.&lt;/p&gt;

&lt;p&gt;Самое важное нововведение&amp;nbsp;— система восстановления несохраненных текстов. Если в&amp;nbsp;самый неподходящий момент пропало соединение с&amp;nbsp;интернетом, завис браузер или отключилось электричество, набираемый текст не пропадет. Во&amp;nbsp;время следующего входа в&amp;nbsp;панель управления движок предложит восстановить текст.&lt;/p&gt;

&lt;p&gt;Также появился альтернативный способ работы с&amp;nbsp;ключевыми словами, примерно как в&amp;nbsp;&lt;a href=&quot;http://s2cms.ru/extension/s2_blog&quot;&gt;блоге&lt;/a&gt;. Добавлены страницы ключевых слов и&amp;nbsp;метка &lt;code&gt;&amp;lt;!-- s2_tags --&amp;gt;&lt;/code&gt; для создания списков ключевых слов, являющихся ссылками на эти страницы.&lt;/p&gt;

&lt;p&gt;Как всегда, новая версия содержит исправления нескольких ошибок и&amp;nbsp;другие мелкие улучшения.&lt;/p&gt;

&lt;p&gt;Следующей будет выпущена версия 1.0 beta. В&amp;nbsp;ней запланирована &lt;a href=&quot;http://written.ru/blog/2011/05/17/Lock_free_editing&quot;&gt;доработка многопользовательского режима&lt;/a&gt; и&amp;nbsp;другие существенные улучшения.&lt;/p&gt;&lt;p&gt;Ключевые слова: &lt;a href=&quot;http://s2cms.ru/blog/tags/releases/&quot;&gt;релизы&lt;/a&gt;&lt;/p&gt;</description>
			<author>Роман Парпалак</author>
			<guid isPermaLink="true">http://s2cms.ru/blog/2011/06/14/S2_alpha5_release</guid>
			<pubDate>Tue, 14 Jun 2011 09:08:00 GMT</pubDate>
			<comments>http://s2cms.ru/blog/2011/06/14/S2_alpha5_release#comment</comments>
		</item>
		<item>
			<title>Быстродействие S2</title>
			<link>http://s2cms.ru/blog/2011/05/18/S2_performance</link>
			<description>&lt;p&gt;Рассмотрим вопрос о&amp;nbsp;быстродействии S2. Если говорить кратко, S2 настолько быстр, насколько это возможно :) Давайте разберемся, почему это так.&lt;/p&gt;

&lt;p&gt;Во-первых, в&amp;nbsp;движке нет ненужного хлама. В&amp;nbsp;его ядре реализованы &lt;a href=&quot;http://s2cms.ru/info/&quot;&gt;самые необходимые вещи&lt;/a&gt;. Редко используемые функции [могут быть] выполнены как &lt;a href=&quot;http://s2cms.ru/extension/&quot;&gt;расширения&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Во-вторых, то, что в&amp;nbsp;нем есть, сделано хорошо. Например, запросы к&amp;nbsp;базе данных грамотно составлены и&amp;nbsp;оптимизированы. Еще пример: если в&amp;nbsp;&lt;a href=&quot;http://s2cms.ru/docs/templates&quot;&gt;шаблоне&lt;/a&gt; страницы нет какой-то части, вычислительные ресурсы на построение этой части не тратятся.&lt;/p&gt;

&lt;p&gt;Перейдем от теории к&amp;nbsp;практике. Сравним быстродействие S2 и&amp;nbsp;WordPress. Важный параметр, влияющий на время сборки страниц, это количество запросов к&amp;nbsp;базе данных. Обычно WordPress делает несколько десятков запросов, время сборки страницы составляет десятые доли секунды. Например, вот ресурсы для вывода &lt;a href=&quot;http://wordpress.org/news/&quot;&gt;главной страницы wordpress.org/news&lt;/a&gt;:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;&amp;lt;!-- 19 queries. 0.277 seconds. --&amp;gt;&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;А&amp;nbsp;вот для  &lt;a href=&quot;http://wordpress.org/news/2011/05/wordpress-3-2-beta-1/&quot;&gt;внутренней страницы&lt;/a&gt;:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;&amp;lt;!-- 16 queries. 0.214 seconds. --&amp;gt;&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;В&amp;nbsp;свою очередь, S2 в&amp;nbsp;большинстве случаев делает не больше десятка (обычно 5 плюс-минус сколько-то) запросов к&amp;nbsp;базе данных и&amp;nbsp;тратит на сборку страницы несколько сотых долей секунды. Вы можете убедиться в&amp;nbsp;этом, заглянув в&amp;nbsp;подвал любой страницы на этом сайте.&lt;/p&gt;

&lt;p&gt;Из&amp;nbsp;первого правила (про количество запросов) есть несколько исключений. Например, для вывода списка обновлений и&amp;nbsp;последних комментариев на главной странице нужны дополнительные простейшие запросы (их количество не превосходит удвоенной максимальной вложенности &lt;a href=&quot;http://s2cms.ru/info/#structure&quot;&gt;древовидной структуры сайта&lt;/a&gt;). Также делается несколько дополнительных запросов на страницах, помеченных &lt;a href=&quot;http://s2cms.ru/info/#tags&quot;&gt;ключевыми словами&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Хотя безнадежное отставание WordPress уже очевидно, сравнение движков можно продолжить. Как показывают &lt;a href=&quot;http://blog.sjinks.pro/wordpress/410-monstrosa-horribilis/&quot;&gt;исследования&lt;/a&gt;, если в&amp;nbsp;WordPress полностью отключить кеш, то будет сделано примерно полторы тысячи запросов к&amp;nbsp;базе данных! Вообще удивительно, как можно было разработать движок блога, который принципиально способен сделать (то есть содержит код) полторы тысячи запросов!&lt;/p&gt;

&lt;p&gt;В&amp;nbsp;S2 тоже есть кеш (который, кстати, штатными средствами не отключается). Кеш S2 не хранит содержимое всех страниц. Он экономит всего лишь два запроса к&amp;nbsp;базе данных, которые без него выполнялись&amp;nbsp;бы на каждой странице. Первый запрос считывает параметры настройки (которые можно редактировать на &lt;a href=&quot;http://s2cms.ru/docs/admin_panel#options&quot;&gt;соответствующей странице панели управления&lt;/a&gt;), а&amp;nbsp;второй&amp;nbsp;— код расширений из файлов manifest.xml. Отключение кеша не привело&amp;nbsp;бы ни к&amp;nbsp;каким катастрофическим последствиям.&lt;/p&gt;

&lt;p&gt;Теперь вы знаете, почему S2&amp;nbsp;— простой и&amp;nbsp;быстрый движок сайтов.&lt;/p&gt;</description>
			<author>Роман Парпалак</author>
			<guid isPermaLink="true">http://s2cms.ru/blog/2011/05/18/S2_performance</guid>
			<pubDate>Wed, 18 May 2011 18:41:00 GMT</pubDate>
			<comments>http://s2cms.ru/blog/2011/05/18/S2_performance#comment</comments>
		</item>
		<item>
			<title>S2 1.0 alpha 4</title>
			<link>http://s2cms.ru/blog/2011/05/10/S2_alpha4_release</link>
			<description>&lt;p&gt;Вышла новая версия S2 1.0 alpha 4.&lt;/p&gt;

&lt;p&gt;Теперь S2 работает правильно, если не включена &lt;a href=&quot;http://s2cms.ru/docs/config#URL&quot;&gt;перезапись URL&lt;/a&gt;. Им можно пользоваться на непонятных серверах с&amp;nbsp;криво настроенным Apache без включенного mod_rewrite. Наличие перезаписи URL автоматически проверяется при установке движка.&lt;/p&gt;

&lt;p&gt;Переделана форма входа в&amp;nbsp;панель управления. Она начинает «болтаться», когда вводят неправильный пароль. Пример можно посмотреть на &lt;a href=&quot;http://demo.s2cms.ru/_admin/&quot;&gt;демонстрационном сайте&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;В&amp;nbsp;расширении &lt;a href=&quot;http://s2cms.ru/extension/s2_blog&quot;&gt;s2_blog&lt;/a&gt; на главную страницу блога добавлены ссылки «туда» и&amp;nbsp;«сюда». Они позволяют просматривать ранние посты и&amp;nbsp;будут полезны случайным посетителям, не желающим разбираться с&amp;nbsp;навигацией на сайте.&lt;/p&gt;

&lt;p&gt;В&amp;nbsp;расширении &lt;a href=&quot;http://s2cms.ru/extension/s2_latex&quot;&gt;s2_latex&lt;/a&gt; включены svg-картинки в&amp;nbsp;Firefox 4.0.&lt;/p&gt;

&lt;p&gt;В&amp;nbsp;расширении &lt;a href=&quot;http://s2cms.ru/extension/s2_wysiwyg&quot;&gt;s2_wysiwyg&lt;/a&gt; визуальный редактор TinyMCE обновлен до версии 3.4.2.&lt;/p&gt;

&lt;p&gt;Как всегда, исправлено много ошибок. Одно из исправлений касается работы с&amp;nbsp;паролями. Из-за этого при обновлении могут быть проблемы с&amp;nbsp;паролями, содержащими не только латинские буквы или цифры. Если в&amp;nbsp;вашем пароле есть, например, русские буквы, временно смените его на пароль из латинских букв или цифр перед обновлением.&lt;/p&gt;

&lt;p&gt;Еще одно исправление связано с&amp;nbsp;сочетанием клавиш Ctrl + S (сохранение страницы), которое в&amp;nbsp;предыдущей версии движка перестало работать в&amp;nbsp;Опере 11.10.&lt;/p&gt;&lt;p&gt;Ключевые слова: &lt;a href=&quot;http://s2cms.ru/blog/tags/releases/&quot;&gt;релизы&lt;/a&gt;&lt;/p&gt;</description>
			<author>Роман Парпалак</author>
			<guid isPermaLink="true">http://s2cms.ru/blog/2011/05/10/S2_alpha4_release</guid>
			<pubDate>Tue, 10 May 2011 19:54:00 GMT</pubDate>
			<comments>http://s2cms.ru/blog/2011/05/10/S2_alpha4_release#comment</comments>
		</item>
		<item>
			<title>S2 1.0 alpha 3</title>
			<link>http://s2cms.ru/blog/2011/03/14/S2_alpha3_release</link>
			<description>&lt;p&gt;Я решил продолжить традицию частых выпусков промежуточных версий движка. Представляю версию S2 1.0 alpha 3 и&amp;nbsp;обновленные версии расширений.&lt;/p&gt;

&lt;p&gt;Среди основных изменений создание расширение &lt;a href=&quot;http://s2cms.ru/extension/s2_latex&quot;&gt;s2_latex&lt;/a&gt;, благодаря которому на S2 теперь можно легко делать сайты с&amp;nbsp;множеством математических формул. На&amp;nbsp;расширениях s2_latex и&amp;nbsp;&lt;a href=&quot;http://s2cms.ru/extension/s2_blog&quot;&gt;s2_blog&lt;/a&gt; работает &lt;a href=&quot;http://susy.written.ru/&quot;&gt;блог о&amp;nbsp;теорической физике&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Другое изменение относится к&amp;nbsp;расширению поиска &lt;a href=&quot;http://s2cms.ru/extension/s2_search&quot;&gt;s2_search&lt;/a&gt;. В&amp;nbsp;нем появился «быстрый поиск» по заголовкам, выдающий список подсказок пользователю, пока он вводит поисковую фразу. Попробовать быстрый поиск в&amp;nbsp;действии можно здесь, на &lt;a href=&quot;http://s2cms.ru/&quot;&gt;сайте движка S2&lt;/a&gt;, введя в&amp;nbsp;форму поиска, например, букву «а». С&amp;nbsp;подробностями можно ознакомиться на &lt;a href=&quot;http://s2cms.ru/extension/s2_search&quot;&gt;странице расширения s2_search&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;В&amp;nbsp;визуальном редакторе (расширение &lt;a href=&quot;http://s2cms.ru/extension/s2_wysiwyg&quot;&gt;s2_wysiwyg&lt;/a&gt;) библиотека &lt;a href=&quot;http://tinymce.moxiecode.com/&quot;&gt;TinyMCE&lt;/a&gt; была обновлена до версии 3.4.&lt;/p&gt;

&lt;p&gt;Также в&amp;nbsp;ядре движка и&amp;nbsp;расширениях было исправлено множество багов.&lt;/p&gt;&lt;p&gt;Ключевые слова: &lt;a href=&quot;http://s2cms.ru/blog/tags/releases/&quot;&gt;релизы&lt;/a&gt;&lt;/p&gt;</description>
			<author>Роман Парпалак</author>
			<guid isPermaLink="true">http://s2cms.ru/blog/2011/03/14/S2_alpha3_release</guid>
			<pubDate>Mon, 14 Mar 2011 18:25:00 GMT</pubDate>
			<comments>http://s2cms.ru/blog/2011/03/14/S2_alpha3_release#comment</comments>
		</item>
		<item>
			<title>S2 1.0 alpha 2</title>
			<link>http://s2cms.ru/blog/2011/02/12/S2_alpha2_release</link>
			<description>&lt;p&gt;В&amp;nbsp;прошлой версии, выпущенной &lt;a href=&quot;http://s2cms.ru/blog/2011/02/04/S2_alpha1_release&quot;&gt;неделю назад&lt;/a&gt;, была ошибка в&amp;nbsp;установочном скрипте (спасибо Генриху за &lt;a href=&quot;http://s2cms.ru/docs/install#1&quot;&gt;сообщение&lt;/a&gt;). Пришлось выпустить новую версию S2 1.0 alpha 2, в&amp;nbsp;которой эта ошибка исправлена.&lt;/p&gt;&lt;p&gt;Ключевые слова: &lt;a href=&quot;http://s2cms.ru/blog/tags/releases/&quot;&gt;релизы&lt;/a&gt;&lt;/p&gt;</description>
			<author>Роман Парпалак</author>
			<guid isPermaLink="true">http://s2cms.ru/blog/2011/02/12/S2_alpha2_release</guid>
			<pubDate>Sat, 12 Feb 2011 04:10:00 GMT</pubDate>
			<comments>http://s2cms.ru/blog/2011/02/12/S2_alpha2_release#comment</comments>
		</item>
		<item>
			<title>S2 1.0 alpha 1</title>
			<link>http://s2cms.ru/blog/2011/02/04/S2_alpha1_release</link>
			<description>&lt;p&gt;Вышла новая версия S2 1.0 alpha 1. По&amp;nbsp;сравнению с&amp;nbsp;&lt;a href=&quot;http://s2cms.ru/blog/2010/02/02/S2_alpha_release&quot;&gt;прошлогодним выпуском&lt;/a&gt; реализована часть &lt;a href=&quot;http://s2cms.ru/info/roadmap&quot;&gt;запланированных функций&lt;/a&gt; и&amp;nbsp;исправлено большое количество багов. Но&amp;nbsp;это всё еще предварительная альфа-версия, в&amp;nbsp;которой что-то будет переделано, что-то&amp;nbsp;— добавлено.&lt;/p&gt;

&lt;p&gt;Я сделал новые расширения: внутренний счетчик &lt;a href=&quot;http://s2cms.ru/extension/s2_counter&quot;&gt;s2_counter&lt;/a&gt; и&amp;nbsp;поиск &lt;a href=&quot;http://s2cms.ru/extension/s2_search&quot;&gt;s2_search&lt;/a&gt;. Выпущенные ранее &lt;a href=&quot;http://s2cms.ru/extension/&quot;&gt;расширения&lt;/a&gt; тоже были обновлены.&lt;/p&gt;

&lt;p&gt;А&amp;nbsp;еще я установил &lt;a href=&quot;http://s2cms.ru/trac&quot;&gt;trac&lt;/a&gt; для просмотра исходного кода и&amp;nbsp;&lt;a href=&quot;http://s2cms.ru/forum/&quot;&gt;форум&lt;/a&gt; для обсуждения любых вопросов по S2.&lt;/p&gt;

&lt;p&gt;Хочу поблагодарить &lt;a href=&quot;http://ilyabirman.ru/&quot;&gt;Илью Бирмана&lt;/a&gt; за ценные советы по улучшению интерфейса &lt;a href=&quot;http://s2cms.ru/docs/admin_panel&quot;&gt;панели управления&lt;/a&gt; S2.&lt;/p&gt;&lt;p&gt;Ключевые слова: &lt;a href=&quot;http://s2cms.ru/blog/tags/releases/&quot;&gt;релизы&lt;/a&gt;&lt;/p&gt;</description>
			<author>Роман Парпалак</author>
			<guid isPermaLink="true">http://s2cms.ru/blog/2011/02/04/S2_alpha1_release</guid>
			<pubDate>Fri, 04 Feb 2011 19:18:00 GMT</pubDate>
			<comments>http://s2cms.ru/blog/2011/02/04/S2_alpha1_release#comment</comments>
		</item>
		<item>
			<title>Многопользовательский режим в S2</title>
			<link>http://s2cms.ru/blog/2010/06/12/Multiuser_S2</link>
			<description>&lt;p&gt;Многопользовательский режим&amp;nbsp;— это одна из тех &lt;a href=&quot;http://s2cms.ru/info/roadmap&quot;&gt;вещей&lt;/a&gt;, которые я хочу сделать перед окончательным выпуском S2. Формально многопользовательский режим имеется&amp;nbsp;— администратор сайта, работающего на S2, может сделать несколько учетных записей для авторов и&amp;nbsp;модераторов. Однако сейчас доступ пользователей ограничивается недостаточно. Например, если пользователю разрешить изменение страниц, он сможет редактировать страницы, созданные другими авторами, что не всегда допустимо. Также в&amp;nbsp;текущей реализации нет возможности показать посетителям сайта, что над ним работает не один автор, а&amp;nbsp;целый коллектив.&lt;/p&gt;

&lt;p&gt;Как в&amp;nbsp;идеале должен работать многопользовательский режим? В&amp;nbsp;нем можно выделить три составляющих:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;em&gt;регистрация&lt;/em&gt;&amp;nbsp;— иногда администратор не должен добавлять вручную каждого пользователя;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;профиль&lt;/em&gt;&amp;nbsp;— отображение на сайте информации о&amp;nbsp;зарегистрированном пользователе;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;управление правами пользователей&lt;/em&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Последний пункт подразумевает привязку каждой страницы к&amp;nbsp;ее автору, чтобы страницу, созданную одним автором, не могли изменять другие авторы, а&amp;nbsp;только редакторы или модераторы с&amp;nbsp;расширенными правами. Отображение имени автора рядом с&amp;nbsp;датой создания материала должно включаться в&amp;nbsp;параметрах или через шаблоны. Если в&amp;nbsp;параметрах включены профили, то с&amp;nbsp;имени автора должна стоять ссылка на его профиль.&lt;/p&gt;

&lt;p&gt;После введения регистрации в&amp;nbsp;принципе можно привязывать к&amp;nbsp;учетным записям и&amp;nbsp;комментарии, что позволит разрешать комментарии только зарегистрированным пользователям. Однако такую привязку я делать не планирую.&lt;/p&gt;

&lt;p&gt;Есть несколько путей реализации этих идей. Первый путь&amp;nbsp;— всё запрограммировать самому. Второй&amp;nbsp;— не изобретать велосипед, а&amp;nbsp;сделать расширение для интеграции с&amp;nbsp;форумным движком &lt;a href=&quot;http://punbb.informer.com/&quot;&gt;PunBB&lt;/a&gt;. Он обладает мощной и&amp;nbsp;гибкой системой управления правами пользователей, группами, банами и&amp;nbsp;т.&amp;nbsp;д. В&amp;nbsp;PunBB есть регистрация и&amp;nbsp;профили. После установки подобного расширения текущие учетные записи S2 будут заменяться на форумные учетные записи, при этом сам форум станет приятным дополнением :)&lt;/p&gt;

&lt;p&gt;Я склоняюсь ко второму варианту&amp;nbsp;— интеграции с&amp;nbsp;PunBB, но хотел&amp;nbsp;бы услышать и&amp;nbsp;мнения заинтересованных лиц.&lt;/p&gt;

&lt;p&gt;А&amp;nbsp;еще я надеюсь, что в&amp;nbsp;ближайшее время разработка S2 пойдет активнее, и&amp;nbsp;через несколько месяцев появится бета-версия со всей &lt;a href=&quot;http://s2cms.ru/info/roadmap&quot;&gt;запланированной функциональностью&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;Ключевые слова: &lt;a href=&quot;http://s2cms.ru/blog/tags/features/&quot;&gt;функциональность&lt;/a&gt;&lt;/p&gt;</description>
			<author>Роман Парпалак</author>
			<guid isPermaLink="true">http://s2cms.ru/blog/2010/06/12/Multiuser_S2</guid>
			<pubDate>Sat, 12 Jun 2010 10:55:00 GMT</pubDate>
			<comments>http://s2cms.ru/blog/2010/06/12/Multiuser_S2#comment</comments>
		</item>
		<item>
			<title>Поиск</title>
			<link>http://s2cms.ru/blog/2010/02/11/search</link>
			<description>&lt;p&gt;Трудно спорить с&amp;nbsp;тем, что поиск на сайтах&amp;nbsp;— вещь нужная и&amp;nbsp;полезная. Однако сейчас в&amp;nbsp;S2 поиска нет. Я собираюсь рассказать, почему.&lt;/p&gt;

&lt;p&gt;S2&amp;nbsp;— простой и&amp;nbsp;быстрый движок, и&amp;nbsp;хотелось&amp;nbsp;бы так&amp;nbsp;же просто и&amp;nbsp;быстро к&amp;nbsp;нему прикрутить поиск. Проблема в&amp;nbsp;том, что хороший поиск просто и&amp;nbsp;быстро сделать нельзя.&lt;/p&gt;

&lt;p&gt;Сначала определимся с&amp;nbsp;тем, что такое хороший поиск. Поиск хороший тогда, когда результаты упорядочены по релевантности (степени соответствия запросу). Под релевантностью каждый может понимать что-нибудь свое. Для определенности мы будем считать, что при сортировке должны учитываться следующие вещи:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;русская морфология (учет изменений слов по падежам, числам, временам, лицам);&lt;/li&gt;
&lt;li&gt;выделение курсивом или жирным шрифтом (если слово выделено на какой-то странице, эта страница, скорее всего, больше соответствует запросу);&lt;/li&gt;
&lt;li&gt;частотность (сколько раз слово встречается на данной странице);&lt;/li&gt;
&lt;li&gt;степень уникальности (если слово из запроса редко встречается на остальных страницах, данную страницу нужно поместить в&amp;nbsp;результатах поиска выше).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Из&amp;nbsp;самых общих соображений поиск можно сделать следующими способами:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;LIKE или strpos.&lt;/li&gt;
&lt;li&gt;Fulltext-индексы базы данных.&lt;/li&gt;
&lt;li&gt;Создание собственных поисковых индексов.&lt;/li&gt;
&lt;li&gt;Сторонние поисковые движки.&lt;/li&gt;
&lt;li&gt;Сторонние сервисы.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Первым способом практически невозможно учитывать выделенные нами четыре составляющих релевантности. Второй способ хорош, но, к&amp;nbsp;сожалению, только для английского языка. Fulltext-индексы в&amp;nbsp;MySQL не учитывают русскую морфологию.&lt;/p&gt;

&lt;p&gt;Третьим способом, при помощи своего индекса, можно сделать практически всё, что угодно. Но&amp;nbsp;этот способ наиболее сложен. Здесь недостаточно просто запрограммировать функциональность. Нужно продумать и&amp;nbsp;учесть масштабируемость решения как по количеству страниц, так и&amp;nbsp;по посещаемости. В&amp;nbsp;общем, этот случай&amp;nbsp;— один из тех, когда 20% функциональности требуют 80% затрат времени :)&lt;/p&gt;

&lt;p&gt;Здесь легко встать на путь изобретения велосипедов. Ведь уже есть поисковые движки, &lt;a href=&quot;http://www.sphinxsearch.com/&quot;&gt;бесплатные&lt;/a&gt; и&amp;nbsp;&lt;a href=&quot;http://company.yandex.ru/technology/server/&quot;&gt;не очень&lt;/a&gt;, которые умеют быстро индексировать поля баз данных и&amp;nbsp;быстро искать по ним (четвертый способ). К&amp;nbsp;сожалению, во многих случаях на серверы хостинга нельзя устанавливать дополнительное программное обеспечение. Да и&amp;nbsp;делать на S2 сайты, которым требуются подобные поисковые движки, скорее всего никто не будет.&lt;/p&gt;

&lt;p&gt;К&amp;nbsp;счастью, есть еще один способ, в&amp;nbsp;котором минимальные затраты приносят ощутимый результат. На&amp;nbsp;сайте достаточно расположить форму поиска Гугла, примерно так, как это сделано в&amp;nbsp;&lt;a href=&quot;http://httpd.apache.org/docs/2.2/&quot;&gt;документации Apache&lt;/a&gt;. Действительно, как&amp;nbsp;бы мы ни старались, вряд&amp;nbsp;ли у&amp;nbsp;нас получится поиск лучше, чем у&amp;nbsp;Яндекса или Гугла. Обычно я пользуюсь Гуглом, когда ищу что-либо на конкретных сайтах, даже если на них есть собственный поиск.&lt;/p&gt;

&lt;p&gt;Единственный недостаток пятого способа, который можно придумать,&amp;nbsp;— на странице результатов поиска будет чужая реклама. Но&amp;nbsp;на фоне минимальных затрат и&amp;nbsp;приличного качества поиска этот недостаток вполне можно потерпеть.&lt;/p&gt;

&lt;p&gt;Я не планирую включать поиск в&amp;nbsp;ядро S2. Поиск можно будет сделать отдельным &lt;a href=&quot;http://s2cms.ru/extension/&quot;&gt;расширением&lt;/a&gt;, но в&amp;nbsp;силу описанных выше причин эта задача &lt;a href=&quot;http://s2cms.ru/info/roadmap&quot;&gt;далеко не самая приоритетная&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Добавлено:&lt;/strong&gt; Я всё-таки разработал &lt;a href=&quot;http://s2cms.ru/extension/s2_search&quot;&gt;расширение поиска&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;Ключевые слова: &lt;a href=&quot;http://s2cms.ru/blog/tags/features/&quot;&gt;функциональность&lt;/a&gt;&lt;/p&gt;</description>
			<author>Роман Парпалак</author>
			<guid isPermaLink="true">http://s2cms.ru/blog/2010/02/11/search</guid>
			<pubDate>Thu, 11 Feb 2010 13:11:00 GMT</pubDate>
			<comments>http://s2cms.ru/blog/2010/02/11/search#comment</comments>
		</item>
	</channel>
</rss>

