Использование LiveStreet как фреймворка

LiveStreet — это не просто хабра-подобный движок. И даже не столько движок для
создания сообществ, сколько замечательный фреймворк, который подходит для создания самых разнообразных сайтов.
Получается, что от хостинга требуется только php, т.к. для простого сайта-визитки работать с БД совсем необязательно!
Разумеется сайт из пары страниц можно оставить на простом html, но этим постом я хочу показать, что LS можно использовать для создания сайтов абсолютно любого типа.
В общем, кому стало интересно — прошу под кат.

Итак, как же можно это использовать.
Рассмотрим на примере 0.4 (почти всё остаётся в силе и для 0.4.1).
Распаковываем архив на сервере и приступаем к удалению лишнего.
Весь необходимый функционал движка лежит в директории
engine
, а вот весь функционал блогов, юзеров и прочего лежит в директории
classes
заходим туда и удаляем ненужные файлы блоков, модулей, хуков и экшенов.
В директории экшенов (actions) необходимо оставить

Init.class.php
— инициализация экшенов
ActionIndex.class.php
— работа над отображением главной странички
ActionError.class.php
— отображение ошибок

Очищаем include/ajax
далее идём в
templates/skin/new/
и удаляем ненужные шаблоны
(впрочем этот шаг можно и нужно сделать по-другому — просто полность создав свой шаблон, но более быстрый путь — переделка дефолтного шаблона, который потом можно переименовать по-новому)

я оставил только
footer.tpl
footer.light.tpl
header.tpl
header.light.tpl
system_message.tpl


в
templates/skin/new/actions
оставляем только шаблоны для
ActionError
ActionIndex


разумеется, шаблон ActionIndex теперь нужно подправить и вместо вывода списка топиков прописать подключение нового шаблона, например так:

{include file='header.tpl'}

{include file='index.tpl'}

{include file='footer.tpl'}


Что дальше?
Дальше можно удалить ненужные картинки из
templates/skin/new/images
и залить туда свои.
Не забыть сменить favicon.ico ;)
Закинуть js-скрипты и новые css-файлы.

Далее нужно очистить оставшиеся файлы от вызовы модуля… User :)
Да-да модуль User оказался самым вездесущим.
Первым делом нужно удалить блок статистики для админа из корневого
index.php (в 0.4.1 этого блока уже нет)
— в 0.4 этот блок идёт в самом низу и начинается строчками
<?php 
$oUser=$oRouter->User_GetUserCurrent();
if (Router::GetIsShowStats() and $oUser and $oUser->isAdministrator()) { 
?>

Так же User вызывается в конструкторе classes\actions\Init.class.php — убираем.

Далее идём в конфигурационный файл и убираем этот же модуль из автозагрузки :)
// Какие модули должны быть загружены на старте
$config['module']['autoLoad'] = array('Hook','Cache','Security','Session','Lang','Message');


Там же прописываем название сайта, ключевые слова и настраиваем остальные параметры.

Настраиваем нужным образом роутинг, убрав лишнее и оставив необходимое:

$config['router']['rewrite'] = array();
// Правила реврайта для REQUEST_URI
$config['router']['uri'] = array(
	// короткий вызов топиков из личных блогов
	'~^(\w+)\.html~i' => "index/\\1.html",
);
// Распределение action
$config['router']['page']['error']         = 'ActionError';
$config['router']['page']['index']         = 'ActionIndex';

// Глобальные настройки роутинга
$config['router']['config']['action_default']   = 'index';
$config['router']['config']['action_not_found'] = 'error';

удаляем из
$config['block']
подгрузку ненужных блоков

из
$config['head']['default']['js'] 
ненужных js-файлов
(это подразумевает, что при желании можно вместо mootools-а использовать jQuery — тут вы полный хозяин положения :)

, а из
$config['head']['default']['css']
ненужных css-файлов.

Вот и всё. Остаётся прописать нужную логику в
ActionIndex.class.php

пример:

public function Init() {
		$this->SetDefaultEvent('index');
	}
	/**
	 * Регистрация евентов
	 *
	 */
	protected function RegisterEvent() {
		$this->AddEvent('index','EventIndex');		
	}
		
	
	/**********************************************************************************
	 ************************ РЕАЛИЗАЦИЯ ЭКШЕНА ***************************************
	 **********************************************************************************
	 */

	/**
	 * Реализация евента
	 *
	 */
	protected function EventIndex() {	
		/**
		 * Устанавливаем шаблон вывода
		 */
		$this->SetTemplateAction('index');
	}


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

Главное — не забыть добавить в футере гордую строчку: © Powered by «LiveStreet»

UPD
Пример чистого шаблона для статьи можно скачать здесь:
livestreet.ru/addons/158/

18 комментариев

avatar
я хочу показать что LS можно использовать для создания сайтов абсолютно любого типа
с этим нельзя не согласиться :) Вот пример такого «любого» сайта seogenerator.ru
  • ort
  • +2
avatar
Это уже извращение))
avatar
Единственно что не хватает в статье: ссылки на архив с вычищенными по описанию кодом.
*или будет время почищу выложу)
avatar
может быть. но лучше — каждому проделать эти простые шаги самостоятельно. Так можно поближе познакомиться с устройством движка ;)
пример вычищенного шаблона
avatar
лучше и продуктивней если у пользователя будет выбор, в ввиде готового фреймворка и блогосоциального движока, потому что человеку которому нужен чистый и рабочий фреймворк сразу для работы, не нужно «ближе знакомиться с устройством движка», он плюнет и найдет нормальный рабочий вариант без танцев с бубнами.это аналогично что выложить весь движок LS по частям и написать «соберите, тут все просто, заодно поближе познакомитесь с устройством движка»

такие статьи должны быть, безусловно, но как правильно заметил noonv, для ознакомления с устройством движка.
avatar
А потом танцевать с бубном при обновлениях )))

— Зачем обновлять такие сайты? Вполне можно будет поставить и забить!
— А зачем тогда на такие сайты ставить LS? Вполне можно поставить безбазовый движок на сотню килобайт, из которого вообще не понадобится ничего вычищать (и который легче для хостинга).
avatar
Основа движка (фреймворка) начиная с версии 0.4 для этого и вынесена в отдельный каталог engine. Так что больших проблем при обновлении быть не должно.
Я никого не агитирую использовать данный метод. Просто показал, что такое возможно и очень просто реализуется.
avatar
Долго ждал статью о движке, с такой тематикой)
Спасибо вам. Сейчас можно пробовать сделать что-нить другое, модифицировать двиг.
avatar
Не очень ясно — зачем очищать/удалять?
avatar
можете не удалять :)
avatar
осталось только чтобы наконец-то появилась фреймворк-версия! :)
и можно писать плагин для ORM/ActiveRecord
avatar
Перенесите в новый каталог
avatar
Фреймворк версия LS доступна здесь github.com/livestreet/livestreet/tree/framework
  • ort
  • 0
avatar
Респект! Ну, вот, чистый, красивый код фреймворка. Делай, что хочешь. Приятно в руки взять :)
avatar
Использовать CMS как фреймворк — априори нехорошо. Есть Yii, CodeIgniter для этих целей — и проще, и удобнее, и мощнее.
avatar
открываем глаза, не пишем глупости. есть cms, а есть отдельно фреймворк с тем же названием, на котором эта cms построена:
github.com/livestreet/livestreet-framework
avatar
Скачал, поставил.

Fatal error: Uncaught exception 'Zend_Cache_Exception' with message 'cache_dir is not writable' in /Applications/XAMPP/xamppfiles/htdocs/lsf/engine/lib/external/DklabCache/Zend/Cache.php:141 Stack trace: #0 /Applications/XAMPP/xamppfiles/htdocs/lsf/engine/lib/external/DklabCache/Zend/Cache/Backend/File.php(149): Zend_Cache::throwException('cache_dir is no...') #1 /Applications/XAMPP/xamppfiles/htdocs/lsf/engine/lib/external/DklabCache/Zend/Cache/Backend/File.php(121): Zend_Cache_Backend_File->setCacheDir('/Applications/X...') #2 /Applications/XAMPP/xamppfiles/htdocs/lsf/engine/modules/cache/Cache.class.php(149): Zend_Cache_Backend_File->__construct(Array) #3 /Applications/XAMPP/xamppfiles/htdocs/lsf/engine/classes/Engine.class.php(326): ModuleCache->Init() #4 /Applications/XAMPP/xamppfiles/htdocs/lsf/engine/classes/Engine.class.php(390): Engine->InitModule(Object(ModuleCache)) #5 /Applications/XAMPP/xamppfiles/htdocs/lsf/engine/classes/Engine.class.php(409): Engine->LoadModule('ModuleCache') #6 /Applications/XAMPP/xamppfi in /Applications/XAMPP/xamppfiles/htdocs/lsf/engine/lib/external/DklabCache/Zend/Cache.php on line 141
avatar
Информация по установке есть здесь www.youtube.com/watch?v=gwmz0opCdJw
По ошибке — нужно необходимым каталогам дать права на запись
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.