Содержание
Explay CMS 3.1 / Хабр
Всем доброго времени суток! Уже довольно давно, как мое увлечение создания движка для сайта стало занимать львиную долю свободного времени. А поскольку летом я был полностью предоставлен самому себе, то за компьютер садился как за работу 🙂 При этом меня даже не останавливает отсутствие хоть сколько ощутимого дохода, это как зависимость. Надеясь, что кому-то я все-таки помогу, хочу поделиться результатом своей работы.
Explay CMS — это система управления социальными сетями или блого-социальными сообществами. Она по-прежнему совершенно бесплатна и распространяется под лицензией GNU GPL 3 версии. Напомню основные характеристики:
- Коллективные блоги
- Фотоальбомы
- Дружеские связи и новости друзей
- Комментарии
- Рейтинги
- Внутренняя почта
- Система обновлений
Подробнее о характеристиках можно узнать на официальном сайте
Версия 3. 1 является эволюционным продолжением версии 3.0. По ходу разработки были исправлены все известные баги и доработаны основные функции. В новой версии CMS приобрела полноценную панель администратора, которая дает возможность реализовать основную функцию, заявленную мной при релизе 3.0, — управление полями публикаций, пользователей и вообще всего-всего.
Далее о нововведениях подробно и по порядку:
Модули
Один из основных моментов в последней версии — это интерфейс для работы с модулями. Теперь пользователь может скачать модуль с официального сайта и установить его из админпанели. Разработчик же может «экспортировать» (создать установочный архив) разработанный им модуль и разместить его на оф. сайте. Поскольку разработчик может создавать собственные типы данных и использовать их в собственном модуле, то ему доступна функция экспорта самих типов данных. В будущих версиях появится возможность просмотра каталога модулей и их установки прямо из панели администратора, по аналогии с wordpress.
Что касается самих изменениях в модулях, то была добавлена возможность переопределять методы, языковые константы и права доступа, что позволяет не потерять внесенные изменения при обновлении.
К слову, теперь на официальном сайте, при размещении модуля можно (а точнее нужно) описывать его API. В качестве примера я описал API, доступное из шаблонов, для стандартных модулей.
Управление типами данных и их свойствами (полями)
Как выше уже было сказано — теперь вы самостоятельно можете настраивать (добавлять/изменять/удалять) свойства типов данных: публикаций, фотографий, пользователей, блогов и вообще всего-всего. Допустим, если для ваших публикаций (статей, постов или топиков — как вам угодно) требуется добавить возможность прикрепления изображения, то с помощью простейших манипуляций, в форме редактирования публикации появится поле для загрузки изображения (при этом вы можете настроить выходной формат и размер изображения). Также вы можете добавить обычные текстовые поля и даже поля для тегов.
В одном из комментариев на Хабре я прочитал про то, что сейчас только в двух отечественных CMS (Bitrix и UMI.CMS) можно создавать «справочники» (выпадающие списки), так вот теперь это доступно и в Explay 🙂
Подобные манипуляции со свойствами (полями) типов данных возможны благодаря налаженной ORM-системе. Здесь следует отметить, что для каждого типа данных выделяется отдельная таблица в БД, в которой и хранятся объекты нужного типа. При добавлении, например, нового текстового поля к публикации создается новый столбец в таблице. Может это не самый идеальный подход, но зато он позволяет оптимизировать таблицу и тем самым повысить быстродействие всей системы, а также уменьшить головную боль при переносе сайта с другой или на другую систему.
Панель администратора
Панель администратора получилась довольно легкой, без излишеств. Администраторам теперь доступны такие маленькие радости как файловый менеджер, модерация публикаций, удаление пользователей, создание бекапа сайта, управление статичными страницами, перетаскивание ссылок-иконок в избранное и немногое другое.
Нововведения с пользовательской стороны
Здесь нововведений не много, вот основные их них:
- Создан «прямой эфир»
- Добавлена возможность восстановления пароля
- Добавлена возможность пользователям удалять свой профиль (точнее оставлять администраторам заявки на удаление)
Еще одно нововведение, которое не вписывается ни в один параграф, — это новый модуль Баннеры. Разработчику сайта дается возможность выделить в шаблонах места, где могут располагаться т.н. баннеры (по сути баннер представляет из себя кусок HTML-кода). Баннеры позволяют легко управлять блоками на странице со статическим содержимым, не прибегая к редактированию шаблонов.
Где взять?
Все сборки и обновления, как обычно, выкладываются на Google Code в разделе загрузок. Рядом находится SVN.
Системные требования: PHP 5.2, MySQL 5, XSLT, Multibyte string, Zlib, GD 2.
PHP 5.3 пока не поддерживается.
Тех-поддержка
Для новичков на оф. сайте существует раздел FAQ, где вы можете получить ответы на популярные вопросы и советы по решению возможных ошибок. Для тех, кто планирует заняться разработкой модулей существует документация, описывающая принципы работы модульной системы, а так же основные классы ядра.
Я с удовольствием безвозмездно помогу оказать несложную тех-поддержку и ответить на все интересующие вопросы.
Спасибо за внимание!
Explay CMS 2.1 / Хабр
Ну что ж, похоже настало это время. Релиз Explay CMS 2.1. Чтобы скачать, надо сначала посетить промо-страницу, но лучше дочитать до конца 🙂
Вступление
С момента релиза версии 2.0 прошли почти 4 месяца, и я могу заверить: прошли не зря. Каждый день я убеждался, что не умею программировать на PHP и каждый день я пытался это исправить. Исправил все что мог, в пределах разумной совместимости версий 🙂 В принципе, из старого осталась только часть структуры таблиц в безе данных, движок переписан полностью, а в некоторых местах даже по несколько раз.
О главном
Главное, как вы могли подумать, не полностью переписанный код, не UTF-8, не новый дизайн панели администратора, даже не попытка соответствовать MVC. Главная вещь, ради который собственно я делал и выпускаю 2.1 — это система обновлений. Система обновлений в полном смысле этого слова. С этого момента вам не придется вручную заменять обновленные файлы, а достаточно нажать одну-две кнопки и обновить CMS до последней версии. Раньше это была привилегия платных коробочных (за редким исключением) систем управления сайтами, теперь возможность обновить Explay CMS появилась и у секретарши 🙂
Надо заметить, что процесс обновления достаточно незауряден, прост и, в тоже время, стабилен с технической стороны. Поэтому, надеюсь, он найдет свое место в других бесплатных CMS.
О новом
В пользовательском интерфейсе с версии 2.0 не изменилось почти ничего, добавлен модуль рейтингов, расширен профиль, создан поиск и появилась возможность сохранять статьи в черновики, остальное — мелочи. Администраторам повезло немного больше, теперь в их распоряжении настраиваемый рабочий стол и новый «гламурный» дизайн.
Кроме пользователей очень хотел улучшить жизнь программистам, поэтому переписал (в некоторых местах ограничился рефракторингом) и прокомментировал весь код. Немного улучшилась и сама БД, что позволило немного сократить кол-во запросов и повысить производительность. Посчитав, что ООП и пародии MVC мало написал еще и документацию.
Тех, кто будет устанавливать Explay CMS с нуля ждет «мастер установок», который проверит конфигурацию сервера, а так же настроит права на файлы и папки.
Открытость для разработчиков
Теперь текущую версию кода можно посмотреть и скачать из SVN на Google Code. И я очень надеюсь, что после выхода этого релиза найдутся люди, которые будут непосредственно учавствовать в разработке Explay CMS и сообщество разработчиков выйдет на новый уровень.
Список изменений относительно версии 2.0
- Создана система обновлений
- UTF-8
- Переписан модули статей (попытка соответствовать MVC)
- RSS лента всех комментариев
- Создан поиск по статьям
- К странице пользователя теперь можно обращаться по его логину (аналогично и с блогом пользователя)
- Дописано ядро, модифицированы классы БД и шаблонов
- Написано 3 новых класса: User, explayFroms, imageResize
- Абсолютно новый шаблонизатор
- Добавлена возможность создания статичных переменных для шаблонов
- В класс MySQL добавлены исключения, что позволяет определить реальное место ошибки
- Большая часть кода комментирована
- Оптимизирован весь код, в том числе и администраторская часть
- API & AJAX переместились в модули и работают аналогично им
- Теперь используется движок AJAX`а от jQuery
- Маленькие аватары пользователей теперь кешируются, а не создаются каждый раз
- Поменялся дизайн админпанели
- В той же админпанели теперь настраиваемый рабочий стол
- Создан быстрый поиск по заголовкам статей
- В профиль пользователя добавлены новые поля: дота рождения и пол
- Добавлена возможность смены пароля
- Статьи тепрь можно сохранять в черновики
- Создан установщик, проверяющий права на файлы и конфигурацию сервера
- В базовом комплекте идет плагин Sape
- Настройки сайта почищены и переведены из таблицы в БД в PHP-файл
- Новый блок для модуля «Люди»
- В комплекте последняя версия TinyMCE
- Исправлены все ошибки версии 2. 0
Обновление версии 2.0 до 2.1
К моему сожалению, мне не удалось добиться полной совместимости двух версий. Конечно существует файл обновления, но он обновляет только структуру таблиц в базе данных. Основная проблема при обновлении ждет вас в шаблонах: т.к. изменился шаблонизатор, ни один старый шаблон не будет работать под 2.1. Если вы не меняли
пол
стандартный дизайн, то вам повезло — достаточно заменить шаблоны, а если вы создали свой дизайн…
С кодировкой UTF-8, возможно, тоже придется повозится. Не смотря на то, что имеется файл меняющий кодировку таблиц базы данных, лучше подстраховаться и сделать полный бекап.
Планы
В скором времени я планирую закрыть 2-ю ветку и начать разработку с чистого листа для создания нормальной архитектуры.
А сейчас иду пить пиво.
Для баг-репортов есть сообщество, мой e-mail и личная почта на Хабре.
Жду объективной критики, а не фраз типа: «Все надо переписать под ZF — код гавно!». Если Вы так считаете — обоснуйте.
Ссылки по теме:
Промо-страница — скачать Explay cms и требования к хостингу
Сообщество разработчиков
Проект на Google Code
Документация
Статья в Википедии
Explay Explay Cms : список уязвимостей безопасности
Explay Explay Cms : список уязвимостей безопасности
(например: CVE-2009-1234 или 2010-1234 или 20101234)
Переключитесь на https:// | Результаты копирования Нажмите ESC, чтобы закрыть
Общее количество уязвимостей: 1 |
CVE является зарегистрированным товарным знаком корпорации MITRE, а официальным источником содержания CVE является
CVE-сайт MITRE.
CWE является зарегистрированным товарным знаком корпорации MITRE, а официальным источником контента CWE является
Веб-сайт CWE MITRE.
OVAL является зарегистрированным товарным знаком The MITRE Corporation, а официальным источником контента OVAL является
Веб-сайт MITRE OVAL.
Использование этой информации означает согласие на использование в состоянии КАК ЕСТЬ.
НИКАКИХ гарантий, подразумеваемых или иных, в отношении этой информации или ее использования.
Любое использование этой информации осуществляется на риск пользователя.
Пользователь несет ответственность за оценку точности, полноты или полезности любой информации, мнения, совета или другого контента.
КАЖДЫЙ ПОЛЬЗОВАТЕЛЬ НЕСЕТ ЕДИНСТВЕННУЮ ОТВЕТСТВЕННОСТЬ ЗА ЛЮБЫЕ последствия его или ее прямого или косвенного использования данного веб-сайта.
ОТ ВСЕХ ГАРАНТИЙ ЛЮБОГО РОДА ЯВНО ОТКАЗЫВАЕТСЯ. Этот сайт НЕ НЕСЕТ ОТВЕТСТВЕННОСТИ ЗА ЛЮБЫЕ ПРЯМЫЕ,
КОСВЕННЫЕ или любые другие потери.
Explay CMS 2.1 / Хабр
Что ж, кажется, время пришло.
Выпуск Explay CMS 2.1. Для скачивания необходимо сначала посетить промо-страницу, но лучше дочитать до конца 🙂
Введение
С момента выхода версии 2.0 прошло почти 4 месяца, и я могу вас уверить: это было не зря. Каждый день я убеждался, что не умею программировать на PHP и каждый день пытался это исправить. Исправил все, что мог, в рамках разумной совместимости версий 🙂 В принципе, от старого осталась только часть структуры таблицы в данных безе, движок полностью переписан, а местами даже несколько раз.
Главное
Главное, как можно подумать, не полностью переписанный код, не UTF-8, не новый дизайн админки, даже не попытка соответствовать MVC. Главное ради чего я собственно и сделал релиз 2.1 это система обновлений. Обновление системы в полном смысле этого слова. Отныне вам не придется вручную заменять обновленные файлы, достаточно нажать одну-две кнопки и обновить CMS до последней версии. Раньше это была привилегия платных коробочных (за редким исключением) систем управления сайтом, теперь у секретаря есть возможность обновить Explay CMS 🙂
Следует отметить, что процесс обновления достаточно выдающийся, простой и, в то же время, стабильный с технической стороны. Поэтому, надеюсь, он найдет свое место и в других бесплатных CMS.
О новом
В интерфейсе почти ничего не изменилось с версии 2.0, добавлен модуль рейтинга, расширен профиль, создан поиск и появилась возможность сохранять статьи в черновики, остальное это мелочи. Администраторам повезло чуть больше, теперь в их распоряжении настраиваемый рабочий стол и новый «гламурный» дизайн.
Помимо пользователей, мне очень хотелось улучшить жизнь программистов, поэтому я переписал (местами ограничился преломлением) и прокомментировал весь код. Сама база данных также немного улучшилась, что позволило немного уменьшить количество запросов и повысить производительность. Учитывая, что спуфы ООП и MVC тоже не написали много документации.
Тех, кто будет устанавливать Explay CMS с нуля, ждет «мастер установки», который проверит конфигурацию сервера, а также настроит права на файлы и папки.
Открыто для разработчиков
Теперь актуальную версию кода можно просмотреть и загрузить из SVN в Google Code. И я очень надеюсь, что после выхода этого релиза найдутся люди, которые будут принимать непосредственное участие в развитии Explay CMS и сообщество разработчиков выйдет на новый уровень.
Список изменений относительно версии 2.0
- Созданная система обновлений
- Utf-8
- Переписаны модули статьи (попытка соответствия MVC)
- RSS лента для всех комментариев
- Поиск по созданным статьям
- На страницу пользователя теперь можно попасть по его логину (аналогично блогу пользователя)
- Добавлено ядро, изменена база данных и классы шаблонов
- Написано 3 новых класса: User, explayFroms, imageResize
- Brand New Template
- Добавлена возможность создавать статические переменные для шаблонов
- В класс MySQL добавлены исключения, позволяющие определить фактическое местонахождение ошибки.
- Большая часть кода закомментирована.
- Оптимизирован весь код , включая административную часть
- API и AJAX перемещены в модули и работают аналогично им
- Теперь используется движок AJAX из jQuery
- Маленькие пользовательские аватары теперь кэшируются, а не создаются каждый раз
- изменился дизайн админки
- В той же админке теперь кастомный рабочий стол
- Создан быстрый поиск по заголовкам статей
- В профиль пользователя добавлены новые поля: противозачаточные таблетки и пол
- Добавлена возможность смены пароля
- Статьи теперь можно сохранять в черновик
- Создан установщик, проверяющий права на файлы и конфигурацию сервера
- В базовый комплект входит плагин Sape
- Настройки сайта очищены и перенесены из таблицы в базе данных в файл PHP
- Новый блок для модуля People
- Включена последняя версия TinyMCE
- Все ошибки исправлена версия 2. 0
Обновление версии 2.0 до 2.1
К моему сожалению, мне не удалось добиться полной совместимости двух версий. Файл обновления конечно есть, но он обновляет только структуру таблицы в БД. Основная проблема при обновлении вас ждет в шаблонах: изменился шаблонизатор, ни один старый шаблон не будет работать под 2.1. Если вы не меняли пол
стандартного дизайна
, то вам повезло — достаточно заменить шаблоны, а если вы создали свой дизайн…
С кодировкой UTF-8 тоже, возможно, придется повозиться. Несмотря на то, что есть файл, изменяющий кодировку таблиц базы данных, лучше перестраховаться и сделать полный бэкап.
Планы
В скором времени планирую закрыть 2-ю ветку и начать разработку с нуля, чтобы создать нормальную архитектуру.
А теперь я буду пить пиво.
Для баг-репортов есть сообщество, мой e-mail и личная почта на Хабре.