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

27
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/
  • +11
  • 11 июня 2010, 15:11
  • noonv

Комментарии (12)

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

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

— Зачем обновлять такие сайты? Вполне можно будет поставить и забить!
— А зачем тогда на такие сайты ставить LS? Вполне можно поставить безбазовый движок на сотню килобайт, из которого вообще не понадобится ничего вычищать (и который легче для хостинга).
-4
Основа движка (фреймворка) начиная с версии 0.4 для этого и вынесена в отдельный каталог engine. Так что больших проблем при обновлении быть не должно.
Я никого не агитирую использовать данный метод. Просто показал, что такое возможно и очень просто реализуется.
+2
Долго ждал статью о движке, с такой тематикой)
Спасибо вам. Сейчас можно пробовать сделать что-нить другое, модифицировать двиг.
0
Не очень ясно — зачем очищать/удалять?
0
можете не удалять :)
0
осталось только чтобы наконец-то появилась фреймворк-версия! :)
и можно писать плагин для ORM/ActiveRecord
0
Перенесите в новый каталог
0
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.