S2Блог

S2 1.0 alpha 2

12 февраля 2011 года, 07:10

В прошлой версии, выпущенной неделю назад, была ошибка в установочном скрипте (спасибо Генриху за сообщение). Пришлось выпустить новую версию S2 1.0 alpha 2, в которой эта ошибка исправлена.

Ключевые слова: релизы |

S2 1.0 alpha 1

4 февраля 2011 года, 22:18

Вышла новая версия S2 1.0 alpha 1. По сравнению с прошлогодним выпуском реализована часть запланированных функций и исправлено большое количество багов. Но это всё еще предварительная альфа-версия, в которой что-то будет переделано, что-то — добавлено.

Я сделал новые расширения: внутренний счетчик s2_counter и поиск s2_search. Выпущенные ранее расширения тоже были обновлены.

А еще я установил trac для просмотра исходного кода и форум для обсуждения любых вопросов по S2.

Хочу поблагодарить Илью Бирмана за ценные советы по улучшению интерфейса панели управления S2.

Ключевые слова: релизы |

Многопользовательский режим в S2

12 июня 2010 года, 14:55

Многопользовательский режим — это одна из тех вещей, которые я хочу сделать перед окончательным выпуском S2. Формально многопользовательский режим имеется — администратор сайта, работающего на S2, может сделать несколько учетных записей для авторов и модераторов. Однако сейчас доступ пользователей ограничивается недостаточно. Например, если пользователю разрешить изменение страниц, он сможет редактировать страницы, созданные другими авторами, что не всегда допустимо. Также в текущей реализации нет возможности показать посетителям сайта, что над ним работает не один автор, а целый коллектив.

Как в идеале должен работать многопользовательский режим? В нем можно выделить три составляющих:

  • регистрация — иногда администратор не должен добавлять вручную каждого пользователя;
  • профиль — отображение на сайте информации о зарегистрированном пользователе;
  • управление правами пользователей.

Последний пункт подразумевает привязку каждой страницы к ее автору, чтобы страницу, созданную одним автором, не могли изменять другие авторы, а только редакторы или модераторы с расширенными правами. Отображение имени автора рядом с датой создания материала должно включаться в параметрах или через шаблоны. Если в параметрах включены профили, то с имени автора должна стоять ссылка на его профиль.

После введения регистрации в принципе можно привязывать к учетным записям и комментарии, что позволит разрешать комментарии только зарегистрированным пользователям. Однако такую привязку я делать не планирую.

Есть несколько путей реализации этих идей. Первый путь — всё запрограммировать самому. Второй — не изобретать велосипед, а сделать расширение для интеграции с форумным движком PunBB. Он обладает мощной и гибкой системой управления правами пользователей, группами, банами и т. д. В PunBB есть регистрация и профили. После установки подобного расширения текущие учетные записи S2 будут заменяться на форумные учетные записи, при этом сам форум станет приятным дополнением :)

Я склоняюсь ко второму варианту — интеграции с PunBB, но хотел бы услышать и мнения заинтересованных лиц.

А еще я надеюсь, что в ближайшее время разработка S2 пойдет активнее, и через несколько месяцев появится бета-версия со всей запланированной функциональностью.

Ключевые слова: функциональность | 16 комментариев

Поиск

11 февраля 2010 года, 16:11

Трудно спорить с тем, что поиск на сайтах — вещь нужная и полезная. Однако сейчас в S2 поиска нет. Я собираюсь рассказать, почему.

S2 — простой и быстрый движок, и хотелось бы так же просто и быстро к нему прикрутить поиск. Проблема в том, что хороший поиск просто и быстро сделать нельзя.

Сначала определимся с тем, что такое хороший поиск. Поиск хороший тогда, когда результаты упорядочены по релевантности (степени соответствия запросу). Под релевантностью каждый может понимать что-нибудь свое. Для определенности мы будем считать, что при сортировке должны учитываться следующие вещи:

  • русская морфология (учет изменений слов по падежам, числам, временам, лицам);
  • выделение курсивом или жирным шрифтом (если слово выделено на какой-то странице, эта страница, скорее всего, больше соответствует запросу);
  • частотность (сколько раз слово встречается на данной странице);
  • степень уникальности (если слово из запроса редко встречается на остальных страницах, данную страницу нужно поместить в результатах поиска выше).

Из самых общих соображений поиск можно сделать следующими способами:

  1. LIKE или strpos.
  2. Fulltext-индексы базы данных.
  3. Создание собственных поисковых индексов.
  4. Сторонние поисковые движки.
  5. Сторонние сервисы.

Первым способом практически невозможно учитывать выделенные нами четыре составляющих релевантности. Второй способ хорош, но, к сожалению, только для английского языка. Fulltext-индексы в MySQL не учитывают русскую морфологию.

Третьим способом, при помощи своего индекса, можно сделать практически всё, что угодно. Но этот способ наиболее сложен. Здесь недостаточно просто запрограммировать функциональность. Нужно продумать и учесть масштабируемость решения как по количеству страниц, так и по посещаемости. В общем, этот случай — один из тех, когда 20% функциональности требуют 80% затрат времени :)

Здесь легко встать на путь изобретения велосипедов. Ведь уже есть поисковые движки, бесплатные и не очень, которые умеют быстро индексировать поля баз данных и быстро искать по ним (четвертый способ). К сожалению, во многих случаях на серверы хостинга нельзя устанавливать дополнительное программное обеспечение. Да и делать на S2 сайты, которым требуются подобные поисковые движки, скорее всего никто не будет.

К счастью, есть еще один способ, в котором минимальные затраты приносят ощутимый результат. На сайте достаточно расположить форму поиска Гугла, примерно так, как это сделано в документации Apache. Действительно, как бы мы ни старались, вряд ли у нас получится поиск лучше, чем у Яндекса или Гугла. Обычно я пользуюсь Гуглом, когда ищу что-либо на конкретных сайтах, даже если на них есть собственный поиск.

Единственный недостаток пятого способа, который можно придумать, — на странице результатов поиска будет чужая реклама. Но на фоне минимальных затрат и приличного качества поиска этот недостаток вполне можно потерпеть.

Я не планирую включать поиск в ядро S2. Поиск можно будет сделать отдельным расширением, но в силу описанных выше причин эта задача далеко не самая приоритетная.

Добавлено: Я всё-таки разработал расширение поиска.

Ключевые слова: функциональность | 10 комментариев

S2 1.0 alpha

2 февраля 2010 года, 17:00

Я рад сообщить о выпуске первой публичной версии движка сайтов S2. Однако сам движок не нов — на нем уже несколько лет работает мой сайт written.ru. Я долго раздумывал, что же мне делать с движком дальше. Наконец я нашел немного свободного времени, привел код движка в порядок и выпустил под лицензией GPL.

Текущая версия слишком сырая для готовых сайтов. До выпуска стабильной версии я хочу переделать и добавить некоторые вещи и исправить баги, если таковые найдутся. Определенных сроков выхода стабильной версии назвать не могу. Если найдутся заинтересованные, попробую сделать пораньше, если нет — займусь другими делами :)

Вопросы и отзывы пока можно оставлять здесь, в комментариях.

Ключевые слова: релизы | 4 комментария

← сюда