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 комментариев

avatar
что будет если запустить установку 2 раза?
здесь без хранения истории и откатов никуда
  • ort
  • +2
avatar
с какими модами совместим данный инсталлер???
avatar
это уж точно не к Максиму )
avatar
Со всеми, в теории. Только нужно написать сначала установщики. Смотрите внизу аттач.
avatar
Не знаю, как насчет откатов, но вот какой-то механизм отслеживания, был ли уже установлен данный модуль — это надо обязательно. Причем, не просто факт установки, а с отслеживанием версии. Чтоб на более раннюю версию можно было ставить, а на более позднюю — нет. Причем, иногда ведь нельзя накатывать сразу самый новый апдейт, а нужно последовательно несколько апдейтов сделать. Было б классно, если б такая фича тоже была предусмотрена.
avatar
Отслеживание есть. Если бы вы поставили модуль — вы бы увидели)
С версиями пока не реализовано, но я ведь только начал :)
avatar
А вообще планирую всю инфу о модификации хранить в базе…
avatar
Ничего плохого не будет. Пройдёт в холостую и ничего не изменит.
avatar
в холостую — это как?
судя по логике скрипта, например, при команд «insert before» он вставить столько раз, сколько будет запущенна инсталяци.
Еще не понятен смысл версии ЛС для совместимости модуля, елси эта версия никак не проверяется.
К тому же код написан в стиле PHP4 + не соответсвует идеологии ЛС, например «модуль» ParseExecution не является модулем для ЛС. Не понятен смысл использования SofeeXmlParser, в PHP5 есть SimpleXML. И все доп либы надо класть в /classes/lib/
avatar
Уже реализована проверка на повторную вставку путём регистрации модуля в базе.

Версия лс уже проверяется (уже сделал).

С библиотеками разберусь позже.
avatar
Зы. по поводу SofeeXmlParser и SimpleXML не всё ли равно? Ну если трезво посудить?)
avatar
SimpleXML — вшит в PHP, зачем инклудить лишний код?
avatar
С ним проще натива… имхо. Я так же как и вы не стал делать свой велосипед :)

зы. обработка ошибок: files.getdropbox.com/u/931817/ls/errors.jpg
хотя это уже будет почти не реально (ибо учёт модификаций по id), если только особо умные заменят этот id.
avatar
какой велосипед? все методы уже реализованы в самом simpleXML — ru.php.net/manual/ru/simplexml.examples-basic.php — практически аналогичное чтение XML, но без лишних библиотек
avatar
Перевёл систему на SimpleXML.
avatar
Возможно переведу на симпл, посмотрим.
avatar
files.getdropbox.com/u/931817/ls/version_3.jpg
есть у кого предложения по данному поводу?
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.