LiveStreet Mod Installer v0.2
Данный модуль уже
Изменения новой версии:
v0.2.90616
— Реализована возможность создавать новые файлы на сервере. См. спецификацию.
— Реализована возможность выполнения произвольных SQL запросов. См. спецификацию.
— Инсталлятор доступен по запросу _http://ваш_сайт/mod
— Весь текст вынесен в отдельный языковой файл.
— Если парсер заметит путь до файла тега file вида «templates/skin/all», то система будет пытаться провести действия со всеми имеющимися шаблонами.
— Система копирует файл модификации в отдельную папку, изменяя его имя на системный id для дальнейшего манипулирования модификацией.
Для установки, скопируйте все файлы в корень вашего сайта.
Дополнение к описаной ранее
Чтобы произвести действие для всех шаблонов, в пути к файлу необходимо прописать «шаблон» all.
Пример:
<file name="templates/skin/all/actions/ActionRegistration/index.tpl">
Для создания нового файла на сервере, необходимо объявить его имя в теге file, в дочернем уровне указать тег create и добавить добавляемый контент в тег add.
Пример:
<file name="templates/skin/all/actions/ActionRegistration/new.tpl">
<create>
<add><![CDATA[protected function EventInvite() {
if (!USER_USE_INVITE) {
return parent::EventNotFound();
}
$this->Viewer_Assign('iCountInviteAvailable',$this->User_GetCountInviteAvailable($this->oUserCurrent));
$this->Viewer_Assign('iCountInviteUsed',$this->User_GetCountInviteUsed($this->oUserCurrent->getId()));
}
]]></add>
</create>
</file>
Для выполнения произвольного SQL запроса, необходимо обрамить его в тег sql в дочернем уровне тега modification.
Пример:
<modification>
<sql>INSERT INTO `prefix_adminban` VALUES (NULL , '388', '0', '2009-06-15 16:39:56', NULL , 'none', '0', '0');</sql>
</modification>
Ну и на засыпку
зы. прошу переместить тему в соответствующий блог.
17 комментариев
здесь без хранения истории и откатов никуда
С версиями пока не реализовано, но я ведь только начал :)
судя по логике скрипта, например, при команд «insert before» он вставить столько раз, сколько будет запущенна инсталяци.
Еще не понятен смысл версии ЛС для совместимости модуля, елси эта версия никак не проверяется.
К тому же код написан в стиле PHP4 + не соответсвует идеологии ЛС, например «модуль» ParseExecution не является модулем для ЛС. Не понятен смысл использования SofeeXmlParser, в PHP5 есть SimpleXML. И все доп либы надо класть в /classes/lib/
Версия лс уже проверяется (уже сделал).
С библиотеками разберусь позже.
зы. обработка ошибок:
хотя это уже будет почти не реально (ибо учёт модификаций по id), если только особо умные заменят этот id.
есть у кого предложения по данному поводу?