LiveStreet CMS

Материал из Национальной библиотеки им. Н. Э. Баумана
Последнее изменение этой страницы: 16:08, 30 января 2019.
LiveStreet CMS
LiveStreetCMS.png
Livestreet cms.png
Интерфейс LiveStreet
Разработчики: Мжельский Максим
Шахов Денис
Постоянный выпуск: 2.1.0 / 05.11.2018
Написана на: PHP
Операционная система: кросс-платформенный
Тип ПО: CMS/блог
Лицензия: GNU GPL (General Public License)
Веб-сайт http://livestreetcms.com/

LiveStreet – система управления содержимым, выпускаемая под лицензией GNU GPL (General Public License). Язык программирования, который использовался при разработке – PHP. Может быть использован для создания блогов и социальных сетей, а в некоторых случаях как PHP-фреймворк.[Источник 1]

Обзор

Проект LiveStreet является клоном социальной сети Habrahabr.ru , клоном лишь в положительном смысле, то есть он наследует функциональность Хабра. LiveStreet реализован с применением ООП на PHP (язык программирования)5+MySQL5, при этом построен по принципу модели MVC (это позволяет легко изменять как логику поведения и внешний вид движка). Создатель LiveStreet — Мжельский Максим.

Особенности

  • Бесплатная система с открытым исходным кодом; распространяется по лицензии GPLv2.
  • Система написана на PHP5 и может применяться в качестве фреймворка PHP, на котором можно самостоятельно разработать любой сайт.
  • База для хранения данных – MySQL5.
  • Архитектура – по принципу MCV с применением объектно-ориентированного программирования.
  • Есть документация по API.
  • Есть плагины и Smarty-шаблоны.
  • Год основания – 2008; руководитель и автор проекта – Максим Мжельский.[Источник 1]

Требования

Для корректной работы LiveStreet необходимо:

  1. PHP (язык программирования) не ниже версии 5.2.1 с поддержкой расширения mbstring.
  2. База данных MySQL 5.
  3. Поддержка InnoDB, которая обеспечивает лучшую производительность и гарантирует сохранение целостности связанных данных.
  4. LiveStreet может работать как на вебсервере Apache 2.

[Источник 1]

История

В 2008 году Максим Мжельский запустил LiveStreet.

К 2010 году был разработан ряд дополнительных модулей, расширяющих базовые функции CMS.

В 2010 году LiveStreet участвовал в конкурсе Open Source Awards и прошел в пятерку финалистов в номинации «Most Promising Open Source Project».

В настоящее время на этой CMS сети работает порядка 500 сайтов различной тематики.[Источник 1]

Возможности

Данная система обладаем большим количесвтом особенностей. В частности она позволяет:

  • Персональные блоги
  • Коллективные блоги

Помимо этого она обладает:

  • Системой рейтингов блогов, топиков, комментариев, пользователей и голосования за них
  • Поиском по сайту с использованием Sphinx
  • Избранным для топиков
  • Помощью с тегами
  • Внутренней почта
  • Системой контроля доступа (ACL) к разным возможностям сети (создание блога, возможность голосования и т.п.)
  • Возможностью создать закрытый сайт
  • Системой приглашений
  • Созданием топиков-ссылок
  • Созданием топиков-опросов
  • Управлением своими блогами
  • Модераторами блогов
  • Оповещениями на емайл
  • Ограничением по времени на голосования
  • Возможностью защиты ссылок от поисковиков[Источник 1]

Основные версии

LiveStreet 2.0

В январе 2017 года вышла долгожданная новая версия LiveStreet 2.0.В текущем релизе постарались исправить баги бета-версии. Новые возможности:

  • Новая структура файлов движка. Фреймворк полностью отделен от приложения.
  • Переработанный фронт на базе компонентов.
  • Механизм универсальных категорий. Возможность привязки категорий к разным объектам.
  • Механизм дополнительных полей (EAV) для различных объектов.
  • Универсальный механизм управления медиа-файлами.
  • Управление типами топиков и их кастомизация.
  • Встроенная поддержка превью-изображений для топиков.
  • Возможность вставлять в топик несколько опросов.
  • Система управления правами пользователей.
  • Новый удобный механизм загрузки фото и аватара пользователя.
  • Поддержка жалоб на пользователей.
  • Новый инсталлятор.
  • Возможность запустить процесс обновления LS из консоли (для крупных проектов).
  • Упрощена навигация по топикам.
  • Новая система поисков.
  • Редактирование комментариев.
  • Поддержка мульти-авторизаций для пользователей (можно одновременно логиниться с разных браузеров).
  • Поддержка работы через https, в том числе принудительное использование для страниц регистрации/авторизации.
  • Возможность расширения эвентов отдельными классами
  • Существенная доработка ORM.
  • Поддержка миграций для плагинов.
  • Весь код отформатирован под PSR-2.
  • Большое число мелких фиксов и улучшений ядра.

LiveStreet 2.0.1

Далее вышла баг-фиксная версия LiveStreet 2.0.1. Нового функционала практически нет, в основном это исправление ошибок и доведение до стабильной работы относительно LiveStreet 2.0.0.

Livestreet 3.0

На сегодняшний день дорабатывается проект версии LiveStreet 3.0. В итоге в новой версии скорее всего появятся:

  • Весь дополнительный функционал будет перенесен в плагины. Плагины по сути в livestreet — это есть отдельные куски приложения имеющие в себе контроллеры модели и вьюхи, как пакеты, модули или бандлы в других архитектурах. Сразу появляется возможность отключить/включить нужный функционал. Чтобы сэкономить время можно брать готовые куски кода из модулей и расфасовать их по плагинам с некоторыми корректировками. По ходу перенести все модули на ORM.
  • Основное приложение будет иметь определенный набор модулей и экшенов, самых основных.Например:пользователи и авторизация,типы контента,категории,комментарии и т.д.
  • Появятся новые плагины:создание блогов,подписки,избранное,друзья,Rbac, Acl и другие.
  • Шаблон основного приложения станет выполнять рекомендательную функцию. В него можно сложить основные стили, компоненты, а плагины будут иметь и свою часть шаблона.[Источник 2]

Плагины

Плагин Яндекс карт. Локация пользователей

Это платный модуль и этот плагин реализовывает возможность отмечать свои координаты пользователю. При этом в базу попадают не только координаты но и радиус.Любой может их просмотреть на статичной карте в профиле.На странице поиска пользователей добавляется кнопка(рядом с сортировкой) переключения вида на карту. Результаты будут отображаться в виде кластеров. То есть при отдалении, близкие метки сливаются. Это позволяет вывести на карту тысячи объектов.

Плагин "оповещения" v2.0.0

Этот плагин также относится к категории платных модулей, плагин показывает события которые произошли так или иначе связанных с пользователем. Тем самым улучшает взаимодействие пользователя на сайте. Вовремя оповещая и позволяя отслеживать события которые пользователь мог не заметить. И имеет функции:

  • Цифра на колокольчике показывает сколько событий произошло так или иначе связанных с Вами.
  • Новые оповещения подсвечены.
  • Оповещение можно удалить. Оно будет удалено навсегда.
  • Можно удалить все оповещения (которые есть для Вас и которых может не быть в окошке) будут удалены.
  • Звуковое оповещение.
  • Возможность создавать и расширять тип оповещений для различных плагинов.

Плагин «Аватар & Фото»

Этот плагин был создан по заказу пользователя,которому не нравилось ,как работают аналогичные бусплатные плагины.Плагин автоматически устанавливает случайный аватар и фото для пользователя. Имеет возможности:

  • Автоматическая установка аватара и фото у пользователя.
  • Изображения выбираются в случайном порядке.
  • Изображения выбираются по полу.

Плагин «Закрытый топик»

Плагин добавит возможность закрыть содержимое топика. В закрытом топике его содержимое до тега cut будет видно всем (выводится как обычно). Всё, что после тега будет видно только тем пользователям которым был разрешён доступ. Комментарии закрытого топика также будут видны только тем у кого есть доступ.Возможности:

  • Закрыть содержимое топика.
  • Скрыть комментарии закрытого топика.
  • Возможность указать в каких блогах можно создать закрытый топик.

Плагин "LS Emoji"

Плагин позволяет добавлять в текст топиков, комментариев и личных сообщений смайлики из набора Emoji. Таким образом можно создать яркий сайт, на котором будет действительно приятно находиться и общаться. Смайлики легко добавляются, их изображения можно поменять. Поддерживается редактор MarkItUp.

Плагин "LS Spoiler"

Имеется 5 типов спойлера: normal, success, warning, info, danger. Каждый имеет свою цветовую гамму. Стиль брался из Bootstrap и прекрасно подходит под шаблон Developer из LS 2.0. Кнопка в MarkitUp добавляется автоматически. По желанию можно поменять вид кнопки, которая находится в папке /images/.

Плагин "Мгновенные сообщения"

Данный плагин добавляет ряд разных функций, таких как:

  • Окно личных сообщений, доступное на любой странице.
  • Оповещение о наборе сообщения собеседником.
  • Создание новых разговоров на любой странице.
  • Отметка о прочтении сообщения одним движением мышкой.
  • Смстемное оповещение и оповещение на странице со звуковым сигналом о новых сообщениях.
  • Синхронизация всех данных (сообщения, счетчики новых сообщений, разговоры и т.д.) между всеми открытыми вкладками в реальном времени.
  • Окно личных сообщений можно переносить, сжимать и растягивать. Положение и размеры сохраняются при переходе на другие страницы.
  • Окно личных сообщений можно встроить в любое место на странице и, при желании, им можно заменить оригинальную личку LiveStreet.
  • Оповещения о изменении статуса друзей (online/offline).
  • Оповещения о новых комментариях в отслеживаемых топиках.
  • Оповещение о новых ответах на ваш комментарий.[Источник 2]

Пример настройки

Ниже представлен пример настройки:[Источник 2]

$config['path']['root']['server'] = dirname(dirname(dirname(__FILE__)));
$config['path']['root']['web'] = isset($_SERVER['HTTP_HOST']) ? 'http://' . $_SERVER['HTTP_HOST'] : null;
$config['path']['offset_request_url'] = 0;
/**
 * Настройки HTML вида
 */
$config['view']['skin'] = 'synio';        // Название текущего шаблона
$config['view']['theme'] = 'default';            // тема оформления шаблона (шаблон должен поддерживать темы)
$config['view']['rtl'] = false;
$config['view']['name'] = 'Мой сайт';                   // название сайта
$config['view']['description'] = 'Описание сайта'; // seo description
$config['view']['keywords'] = 'site, google, internet';      // seo keywords
$config['view']['wysiwyg'] = false;  // использовать или нет визуальный редактор TinyMCE
$config['view']['noindex'] = true;   // "прятать" или нет ссылки от поисковиков, оборачивая их в тег <noindex> и добавляя rel="nofollow"
$config['view']['img_resize_width'] = 570;    // до какого размера в пикселях ужимать картинку по щирине при загрузки её в топики и комменты
$config['view']['img_max_width'] = 5000;    // максимальная ширина загружаемых изображений в пикселях
$config['view']['img_max_height'] = 5000;    // максимальная высота загружаемых изображений в пикселях
$config['view']['img_max_size_url'] = 500;    // максимальный размер картинки в kB для загрузки по URL
/**
 * Настройки СЕО для вывода топиков
 */
$config['seo']['description_words_count'] = 20;               // количество слов из топика для вывода в метатег description
/**
 * Настройка основных блоков
 */
$config['block']['stream']['row'] = 20;                       // сколько записей выводить в блоке "Прямой эфир"
$config['block']['stream']['show_tip'] = true;                // выводить или нет всплывающие сообщения в блоке "Прямой эфир"
$config['block']['blogs']['row'] = 10;                       // сколько записей выводить в блоке "Блоги"
$config['block']['tags']['tags_count'] = 70;                  // сколько тегов выводить в блоке "теги"
$config['block']['tags']['personal_tags_count'] = 70;         // сколько тегов пользователя выводить в блоке "теги"
/**
 * Общие настройки
 */
$config['general']['close'] = false; // использовать закрытый режим работы сайта, сайт будет доступен только авторизованным пользователям
$config['general']['close_exceptions'] = array(
    'auth',
    'ajax' => array('captcha'),
); // список action/avent для исключения при закрытом режиме
$config['general']['rss_editor_mail'] = '___sys.mail.from_email___'; // мыло редактора РСС
$config['general']['reg']['invite'] = false; // использовать режим регистрации по приглашению или нет. Если использовать, то регистрация будет доступна ТОЛЬКО по приглашениям!
$config['general']['reg']['activation'] = false; // использовать активацию при регистрации или нет
$config['general']['login']['captcha'] = false; // использовать каптчу при входе или нет
$config['general']['admin_mail'] = 'admin@admin.adm'; // email администратора
/**
 * Настройка каптчи
 */
$config['sys']['captcha']['type'] = 'kcaptcha'; // тип используемой каптчи: kcaptcha, recaptcha
/**
 * Настройки кеширования
 */
$config['sys']['cache']['use'] = false;               // использовать кеширование или нет
$config['sys']['cache']['type'] = 'file';             // тип кеширования: file, xcache и memory. memory использует мемкеш, xcache - использует XCache
/**
 * Настройки ACL(Access Control List — список контроля доступа)
 */
$config['acl']['create']['blog']['rating'] = 1;  // порог рейтинга при котором юзер может создать коллективный блог
$config['acl']['create']['comment']['rating'] = -10; // порог рейтинга при котором юзер может добавлять комментарии
$config['acl']['create']['comment']['limit_time'] = 10; // время в секундах между постингом комментариев, если 0 то ограничение по времени не будет работать
$config['acl']['create']['comment']['limit_time_rating'] = -1;  // рейтинг, выше которого перестаёт действовать ограничение по времени на постинг комментов. Не имеет смысла при $config['acl']['create']['comment']['limit_time']=0
$config['acl']['create']['topic']['limit_time'] = 240;// время в секундах между созданием записей, если 0 то ограничение по времени не будет работать
$config['acl']['create']['topic']['limit_time_rating'] = 5;  // рейтинг, выше которого перестаёт действовать ограничение по времени на создание записей
$config['acl']['create']['topic']['limit_rating'] = -20;// порог рейтинга при котором юзер может создавать топики (учитываются любые блоги, включая персональные), как дополнительная защита от спама/троллинга
$config['acl']['create']['talk']['limit_time'] = 300; // время в секундах между отправкой инбоксов, если 0 то ограничение по времени не будет работать
$config['acl']['create']['talk']['limit_time_rating'] = 1;   // рейтинг, выше которого перестаёт действовать ограничение по времени на отправку инбоксов
$config['acl']['create']['talk_comment']['limit_time'] = 10; // время в секундах между отправкой инбоксов, если 0 то ограничение по времени не будет работать
$config['acl']['create']['talk_comment']['limit_time_rating'] = 5;   // рейтинг, выше которого перестаёт действовать ограничение по времени на отправку инбоксов
$config['acl']['create']['wall']['limit_time'] = 20;   // рейтинг, выше которого перестаёт действовать ограничение по времени на отправку сообщений на стену
$config['acl']['create']['wall']['limit_time_rating'] = 0;   // рейтинг, выше которого перестаёт действовать ограничение по времени на отправку сообщений на стену
$config['acl']['update']['comment']['rating'] = -5;   // порог рейтинга при котором юзер может редактировать комментарии
$config['acl']['update']['comment']['limit_time'] = 60 * 3;   // время в секундах после создания комментария, когда можно его отредактировать, если 0 то ограничение по времени не будет работать
$config['acl']['vote']['comment']['rating'] = -3;  // порог рейтинга при котором юзер может голосовать за комментарии
$config['acl']['vote']['topic']['rating'] = -7;  // порог рейтинга при котором юзер может голосовать за топик
$config['acl']['vote']['topic']['limit_time'] = 60 * 60 * 24 * 20; // ограничение времени голосования за топик
$config['acl']['vote']['comment']['limit_time'] = 60 * 60 * 24 * 5;  // ограничение времени голосования за комментарий
/**
 * Настройки модулей
 */
// Модуль Rating
$config['module']['rating']['comment_multiplier'] = 0.1; // Множитель рейтинга при голосовании за комментарий
$config['module']['rating']['topic_multiplier'] = 1;     // Множитель рейтинга при голосовании за топик
// Модуль Blog
$config['module']['blog']['per_page'] = 20;   // Число блогов на страницу
$config['module']['blog']['users_per_page'] = 20;   // Число пользователей блога на страницу
$config['module']['blog']['personal_good'] = -5;   // Рейтинг топика в персональном блоге ниже которого он считается плохим
$config['module']['blog']['collective_good'] = -3;   // рейтинг топика в коллективных блогах ниже которого он считается плохим
$config['module']['blog']['index_good'] = 8;   // Рейтинг топика выше которого(включительно) он попадает на главную
$config['module']['blog']['encrypt'] = 'livestreet'; // Ключ XXTEA шифрования идентификаторов в ссылках приглашения в блоги
$config['module']['blog']['avatar_size'] = array(
    '500crop',
    '100crop',
    '64crop',
    '48crop',
    '24crop'
); // Список размеров аватаров у блога
$config['module']['blog']['avatar_size_big'] = '500crop'; // Размер большой аватарки блога, которая будет использоваться на странице блога
$config['module']['blog']['category_allow'] = true;        // Разрешить использование категорий бля блогов
$config['module']['blog']['category_only_admin'] = true;    // Задавать и менять категории для блога может только админ
$config['module']['blog']['category_only_without_children'] = true;    // Для блога можно выбрать только конечную категорию, у которой нет других вложенных
$config['module']['blog']['category_allow_empty'] = true;    // Разрешить блоги без категории
// Модуль Topic
$config['module']['topic']['new_time'] = 60 * 60 * 24 * 1;  // Время в секундах в течении которого топик считается новым
$config['module']['topic']['per_page'] = 10;          // Число топиков на одну страницу
$config['module']['topic']['max_length'] = 15000;       // Максимальное количество символов в одном топике
$config['module']['topic']['min_length'] = 2;       // Минимальное количество символов в одном топике
$config['module']['topic']['allow_empty'] = false;       // Разрешать или нет не заполнять текст топика
$config['module']['topic']['title_max_length'] = 200;       // Максимальное количество символов в заголовке топика
$config['module']['topic']['title_min_length'] = 2;       // Минимальное количество символов в заголовке топика
$config['module']['topic']['title_allow_empty'] = false;       // Разрешать или нет не заполнять заголовок топика
$config['module']['topic']['tags_allow_empty'] = false; // Разрешать или нет не заполнять теги
$config['module']['topic']['tags_count_min'] = 1; // Минимальное количество тегов
$config['module']['topic']['tags_count_max'] = 15; // Максимальное количество тегов
$config['module']['topic']['default_period_top'] = 1; // Дефолтный период (количество дней) для отображения ТОП топиков. Значения: 1,7,30,'all'
$config['module']['topic']['default_period_discussed'] = 1; // Дефолтный период (количество дней) для отображения обсуждаемых топиков. Значения: 1,7,30,'all'
$config['module']['topic']['max_blog_count'] = 3; // Количество блогов, которые можно задать топику. Максимальное значение 5.
$config['module']['topic']['max_rss_count'] = 20; // Максимальное количество топиков в RSS потоке
$config['module']['topic']['default_preview_size'] = '900x300crop'; // Дефолтный размер превью для топика (все размеры задаются в конфиге media), который будет использоваться, например, для Open Graph

$config['module']['user']['rbac_role_default'] = 'user'; // Роль, которая автоматически назначается пользователю при регистрации
$config['module']['user']['count_auth_session'] = 4; // Количество разрешенных сессий пользователя (авторизаций в разных браузерах)
$config['module']['user']['count_auth_session_history'] = 10; // Общее количество сессий для хранения (значение должно быть больше чем count_auth_session)
// Модуль Comment
$config['module']['comment']['per_page'] = 20;          // Число комментариев на одну страницу(это касается только полного списка комментариев прямого эфира)
$config['module']['comment']['bad'] = -5;          // Рейтинг комментария, начиная с которого он будет скрыт
$config['module']['comment']['max_tree'] = 7;           // Максимальная вложенность комментов при отображении
$config['module']['comment']['show_form'] = false;       // Показать или скрыть форму комментов по умолчанию
$config['module']['comment']['use_nested'] = false;    // Использовать или нет nested set при выборке комментов, увеличивает производительность при большом числе комментариев + позволяет делать постраничное разбиение комментов
$config['module']['comment']['nested_per_page'] = 0;    // Число комментов на одну страницу в топике, актуально только при use_nested = true
$config['module']['comment']['nested_page_reverse'] = true;    // Определяет порядок вывода страниц. true - последние комментарии на первой странице, false - последние комментарии на последней странице
$config['module']['comment']['favourite_target_allow'] = array('topic');    // Список типов комментов, которые разрешено добавлять в избранное
$config['module']['comment']['edit_target_allow'] = array(
    'topic',
    'talk'
);    // Список типов комментов, которые разрешено редактировать
$config['module']['comment']['vote_target_allow'] = array('topic');    // Список типов комментов, за которые разрешено голосовать
$config['module']['comment']['max_rss_count'] = 20; // Максимальное количество комментов в RSS потоке
// Модуль Talk
$config['module']['talk']['per_page'] = 30;           // Число приватных сообщений на одну страницу
$config['module']['talk']['encrypt'] = 'livestreet'; // Ключ XXTEA шифрования идентификаторов в ссылках
$config['module']['talk']['max_users'] = 15; // Максимальное число адресатов в одном личном сообщении
// Модуль Lang
$config['module']['lang']['delete_undefined'] = true;   // Если установлена true, то модуль будет автоматически удалять из языковых конструкций переменные вида %%var%%, по которым не была произведена замена
// Модуль Notify
$config['module']['notify']['delayed'] = false;    // Указывает на необходимость использовать режим отложенной рассылки сообщений на email
$config['module']['notify']['insert_single'] = false;    // Если опция установлена в true, систему будет собирать записи заданий удаленной публикации, для вставки их в базу единым INSERT
$config['module']['notify']['per_process'] = 10;       // Количество отложенных заданий, обрабатываемых одним крон-процессом
$config['module']['notify']['dir'] = 'emails'; // Путь до папки с емэйлами относительно шаблона
$config['module']['notify']['prefix'] = 'email';  // Префикс шаблонов емэйлов
// Модуль Security
$config['module']['security']['hash'] = "livestreet_security_key"; // "примесь" к строке, хешируемой в качестве security-кода
$config['module']['userfeed']['count_default'] = 10; // Число топиков в ленте по умолчанию
$config['module']['stream']['count_default'] = 20; // Число топиков в ленте по умолчанию
$config['module']['stream']['disable_vote_events'] = false;
// Модуль Ls
$config['module']['ls']['send_general'] = true;    // Отправка на сервер LS общей информации о сайте (домен, версия LS и плагинов)
$config['module']['ls']['use_counter'] = true;    // Использование счетчика GA
// Модуль Wall - стена
$config['module']['wall']['count_last_reply'] = 3;    // Число последних ответов на сообщени на стене для отображения в ленте
$config['module']['wall']['per_page'] = 10;                // Число сообщений на стене на одну страницу
$config['module']['wall']['text_max'] = 250;            // Ограничение на максимальное количество символов в одном сообщении на стене
$config['module']['wall']['text_min'] = 1;              // Ограничение на минимальное количество символов в одном сообщении на стене
/**
 * Модуль Image
 */
$config['module']['image']['params']['blog_avatar']['size_max_width'] = 1000;
$config['module']['image']['params']['blog_avatar']['size_max_height'] = 1000;
/**
 * Модуль Media
 */
$config['module']['media']['max_size'] = 3*1024; // Максимальный размер файла в kB
$config['module']['media']['max_count_files'] = 30; // Максимальное количество файлов медиа у одного объекта
$config['module']['media']['image']['max_size'] = 5*1024; // Максимальный размер файла изображения в kB
$config['module']['media']['image']['autoresize'] = true; // Разрешает автоматическое создание изображений нужного размера при их запросе
$config['module']['media']['image']['original'] = '1500x'; // Размер для хранения оригинала. Если true, то будет сохраняться исходный оригинал без ресайза. Если false, то оригинал сохраняться не будет

/**
 * Настройка базы данных
 */
$config['db']['params']['host'] = 'localhost';
$config['db']['params']['port'] = '3306';
$config['db']['params']['user'] = 'root';
$config['db']['params']['pass'] = '';
$config['db']['params']['type'] = 'mysqli';
$config['db']['params']['dbname'] = 'social';

Требования

Для корректной работы LiveStreet необходим PHP не ниже версии 5.5 с поддержкой расширения mbstring, база данных MySQL 5 и желательно с поддержкой InnoDB. InnoDB обеспечивает лучшую производительность и гарантирует сохранение целостности связанных данных.

LiveStreet может работать как на вебсервере Apache 2 с включенным модулем mod_rewrite, так и на Nginx + FastCGI.[Источник 3]

API

Ниже представлено описание классов, используемых в API.[Источник 2]

Пакет Класс Описание
actions ActionAdmin Экшен обработки УРЛа вида /admin/
ActionAjax Экшен обработки ajax запросов
ActionBlog Экшен обработки URL'ов вида /blog/
ActionBlogs Экшен обработки УРЛа вида /comments/
ActionComments Экшен обработки УРЛа вида /comments/
ActionError Экшен обработки УРЛа вида /error/ т.е. ошибок
ActionIndex Обработка главной страницы, т.е. УРЛа вида /index/
ActionLink Экшен обработки УРЛа вида /link/ - управление своими топиками(тип: ссылка)
ActionLogin Обрабатывые авторизацию
ActionMy Экшен обработки УРЛа вида /my/
ActionPeople Экшен обработки статистики юзеров, т.е. УРЛа вида /people/
ActionPersonalBlog Экшен обработки персональных блогов, т.е. УРла вида /personal_blog/
ActionPhotoset Обработка УРЛа вида /photoset/ - управление своими топиками(тип: фотосет)
ActionProfile Экшен обработки профайла юзера, т.е. УРЛ вида /profile/login/
ActionQuestion Экшен обработки УРЛа вида /question/ - управление своими топиками(тип: вопрос)
ActionRegistration Экшен обработки регистрации
ActionRss Экшен бработки RSS
ActionSearch Экшен обработки поиска по сайту через поисковый движок Sphinx
ActionSettings Экшен обрабтки настроек профиля юзера (/settings/)
ActionStream Экшен обработки ленты активности
ActionSubscribe Экшен обработки подписок пользователей
ActionTag Экшен обработки поиска по тегам
ActionTalk Экшен обработки личной почты (сообщения /talk/)
ActionTopic Экшен обработки УРЛа вида /topic/ - управление своими топиками
ActionUserfeed Обрабатывает пользовательские ленты контента
blocks BlockBlogs Обработка блока с рейтингом блогов
BlockStream Обработка блока с комментариями (прямой эфир)
BlockStreamConfig Блок настройки ленты активности
BlockTags Обрабатывает блок облака тегов
BlockTagsCity Обрабатывает блок облака тегов городов юзеров
BlockTagsCountry Обрабатывает блок облака тегов стран юзеров
BlockTagsFavouriteTopic Обрабатывает блок облака тегов для избранного
BlockUserfeedBlogs Блок настройки списка блогов в ленте
BlockUserfeedUsers Блок настройки списка пользователей в ленте
engine Action Абстрактный класс экшена.
ActionPlugin Абстрактный класс экшена плагина.
Block Абстрактный класс блока
Cron Абстрактный класс для работы с крон-процессами.
Engine Основной класс движка. Ядро.
Entity Абстрактный класс сущности.
Hook Абстракция хука, от которой наследуются все хуки
LS Короткий алиас для вызова основных методов движка
LsObject От этого класса наследуются все остальные
Mapper Абстрактный класс мапера
Module Абстракция модуля, от которой наследуются все модули
Plugin Абстракция плагина, от которой наследуются все плагины
Router Класс роутинга(контроллера)
engine.lib Config Управление простым конфигом в виде массива
ProfilerSimple Ведение профайлинга
engine.modules ModuleCache Модуль кеширования.
ModuleDatabase Модуль для работы с базой данных
ModuleHook Модуль обработки хуков(hooks)
ModuleImage Модуль обработки изображений
ModuleLang Модуль поддержки языковых файлов
ModuleLogger Модуль логирования
ModuleLs Модуль Ls
ModuleMail Модуль для отправки почты(e-mail) через phpMailer
ModuleMessage Модуль системных сообщений
ModulePlugin Модуль управления плагинами
ModuleSecurity Модуль безопасности
ModuleSession Модуль для работы с сессиями
ModuleText Модуль обработки текста на основе типографа Jevix
ModuleViewer Модуль обработки шаблонов используя шаблонизатор Smarty
engine.modules.validate ModuleValidate Модуль Validate
ModuleValidate_EntityValidator Базовый класс валидатора
ModuleValidate_EntityValidatorBoolean Валидатор булевых значений
ModuleValidate_EntityValidatorCaptcha Валидатор каптчи (число с картинки)
ModuleValidate_EntityValidatorCompare Валидатор сравнения значений
ModuleValidate_EntityValidatorDate Валидатор даты
ModuleValidate_EntityValidatorEmail Валидатор емайл адресов
ModuleValidate_EntityValidatorInline Валидатор для кастомных методов объектов
ModuleValidate_EntityValidatorNumber Валидатор числовых значений
ModuleValidate_EntityValidatorRegexp Валидатор текстовых данных на регулярное выражение
ModuleValidate_EntityValidatorRequired Валидатор на пустое значение или точное совпадение
ModuleValidate_EntityValidatorString Валидатор текстовых данных на длину
ModuleValidate_EntityValidatorTags Валидатор тегов - строка с перечислением тегов
ModuleValidate_EntityValidatorType Валидатор типа данных
ModuleValidate_EntityValidatorUrl Валидатор URL адресов
engine.orm EntityORM Абстрактный класс сущности ORM - аналог active record
LS_ManyToManyRelation Класс представляющий собой обёертку для связей MANY_TO_MANY.
MapperORM Системный класс мапера ORM для работы с БД
ModuleORM Абстракция модуля ORM
hooks HookCopyright Регистрация хука для вывода ссылки копирайта
HookMain Регистрация основных хуков
HookStatisticsPerformance Регистрация хука для вывода статистики производительности
modules.acl ModuleACL ACL(Access Control List)
modules.blog ModuleBlog Модуль для работы с блогами
ModuleBlog_EntityBlog Сущность блога
ModuleBlog_EntityBlogUser Сущность связи пользователя и блога
ModuleBlog_MapperBlog Маппер для работы с БД по части блогов
modules.comment ModuleComment Модуль для работы с комментариями
ModuleComment_EntityComment Объект сущности комментариев
ModuleComment_EntityCommentOnline Объект сущности прямого эфира
ModuleComment_MapperComment Маппер комментариев, работа с базой данных
modules.favourite ModuleFavourite Модуль для работы с избранным
ModuleFavourite_EntityFavourite Объект сущности избрнного
ModuleFavourite_EntityTag Объект сущности тега для избранного
ModuleFavourite_MapperFavourite Объект маппера для работы с БД
modules.geo ModuleGeo Модуль Geo - привязка объектов к географии (страна/регион/город)
ModuleGeo_EntityCity Объект сущности города
ModuleGeo_EntityCountry Объект сущности страны
ModuleGeo_EntityGeo Объект сущности гео-объекта
ModuleGeo_EntityRegion Объект сущности региона
ModuleGeo_EntityTarget Объект связи гео-объекта с владельцем
ModuleGeo_MapperGeo Объект маппера для работы с БД
modules.notify ModuleNotify Модуль рассылок уведомлений пользователям
ModuleNotify_EntityTask Объект сущности задания на отправку емайла
ModuleNotify_MapperNotify Маппер для работы с БД
modules.rating ModuleRating Модуль управления рейтингами и силой
modules.sphinx ModuleSphinx Модуль для работы с машиной полнотекстового поиска Sphinx
modules.stream ModuleStream Модуль потока событий на сайте
ModuleStream_EntityEvent Объект сущности события в активности
ModuleStream_MapperStream Объект маппера для работы с БД
modules.subscribe ModuleSubscribe Модуль Subscribe - подписки пользователей
ModuleSubscribe_EntitySubscribe Объект сущности подписки
ModuleSubscribe_MapperSubscribe Объект маппера для работы с БД
modules.talk ModuleTalk Модуль разговоров(почта)
ModuleTalk_EntityTalk Объект сущности сообщения
ModuleTalk_EntityTalkUser Объект связи пользователя с разовором
ModuleTalk_MapperTalk Объект маппера для работы с БД
modules.tools ModuleTools Модуль Tools - различные вспомогательные методы
modules.topic ModuleTopic Модуль для работы с топиками
ModuleTopic_EntityTopic Объект сущности топика
ModuleTopic_EntityTopicPhoto Объект сущности фото в топике-фотосете
ModuleTopic_EntityTopicQuestionVote Объект сущности голосования в топике-опросе
ModuleTopic_EntityTopicRead Объект сущности факта прочтения топика
ModuleTopic_EntityTopicTag Объект сущности тега топика
ModuleTopic_MapperTopic Объект маппера для работы с БД
modules.user ModuleUser Модуль для работы с пользователями
ModuleUser_EntityChangemail Сущность смены емайла пользователем
ModuleUser_EntityField Сущность пользовательского поля у пользователя
ModuleUser_EntityFriend Сущность дружбу - связи пользователей друг с другом
ModuleUser_EntityInvite Сущность инвайта(приглашения)
ModuleUser_EntityNote Сущность заметки о пользователе
ModuleUser_EntityReminder Сущность восстановления пароля
ModuleUser_EntitySession Сущность сессии
ModuleUser_EntityUser Сущность пользователя
ModuleUser_MapperUser Маппер для работы с БД
modules.userfeed ModuleUserfeed Модуль пользовательских лент контента (топиков)
ModuleUserfeed_MapperUserfeed Маппер для работы с БД
modules.vote ModuleVote Модуль для работы с голосованиями
ModuleVote_EntityVote Сущность голосования
ModuleVote_MapperVote Маппер для работы с БД
modules.wall ModuleWall Модуль Wall - записи на стене профиля пользователя
ModuleWall_EntityWall Сущность записи на стене
ModuleWall_MapperWall Маппер для работы с БД

Источники

  1. 1,0 1,1 1,2 1,3 1,4 Знакомство с LiveStreet CMS // timeweb [2006–2018]. Дата обновления: 11.09.2017. URL: https://timeweb.com/ru/community/articles/znakomstvo-s-livestreet-cms-1 (дата обращения: 20.11.2018).
  2. 2,0 2,1 2,2 2,3 Топики LiveStreet CMS // LiveStreet CMS [2012–2018]. Дата обновления: 05.09.2018. URL: https://timeweb.com/ru/community/articles/znakomstvo-s-livestreet-cms-1 (дата обращения: 30.01.2019).
  3. Class Reference // LiveStreet CMS API [2018]. Дата обновления: 06.07.2018. URL: http://docs.livestreetcms.com/api/ (дата обращения: 20.11.2018).