Участник+

Зарегистрирован: Apr 2004
Место проживания: Питер
Публикаций: 38
Статус:  |
Данный хак представляет собой не что иное, как инструмент для инсталляции других хаков (нечто вроде InstallShield). Создание такой системы преследует 2 цели: во-первых, можно легко отслеживать, что и где в движке форума вы когда-либо меняли, во-вторых, большинство замен можно делать с помощью скрипта, не копаясь руками в файлах, что облегчает установку хаков на порядок. (а также снимает с автора хака задачу написания своего инсталлятора)
Из похожих хаков мне известен только Hack Tracking Log (HTL), но он мне не нравится по многим причинам: излишне запутан и громоздок, при этом не умеет автоматически выполнять замены в файлах/темплейтах, и много чего еще..
Принцип действия
Любой хак (хак можно определить как инструкцию по добавлению той или иной фичи в движок форума) можно представить как совокупность нескольких модификаций - отдельных шагов, которые надо выполнить для успешной установки новой фичи. Модификации можно разделить на 3 основные категории:- Модификация базы - SQL-запрос, как правило, добавляющий новую таблицу, новые поля в имеющуюся таблицу или просто новые записи в таблицу. Частный случай последнего - настройки vB Options или фразы;
- Модификация файла - что-то вида "открой файл такой-то, около такой-то строчки найди что-то, поменяй на это" (или "добавь после этого").
Создание нового файла можно рассматривать как частный случай модификации;
- Модификация шаблона - аналогично с файлами, однако, пользователю предоставляется возможность выбора, в какой стиль (набор темплейтов) вносить изменения.
Для каждой модификации система хранит состояние - установлена она или нет. Хак считается полностью установленным, если установлены все его модификации.
При инсталляции хака посредством этой системы пользователю выводится список всех модификаций, описанных в этом хаке, далее предоставляется выбор, какие из этих модификаций должны быть выполнены автоматически, а какие пользователь предпочитает проделать вручную. Если в хаке есть модификации шаблонов, предлагается выбрать стиль, на который будут применены эти изменения.
По ходу инсталляции выводится отчет о всех проделанных изменениях, а также об ошибках, если таковые возникают (самый распространенный случай - не удалось найти в файле требуемый фрагмент кода). Очевидно, что для внесения каких-либо изменений в файлы PHP должен обладать правами записи на них; в случае отсутствия таких прав, автоматические файловые модификации невозможны.
Любую установленную модификацию можно отменить (деинсталлировать). В случае с файлами и шаблонами просто производится обратная замена, то есть ищется фрагмент, на который меняли при инсталляции и заменяется на исходный фрагмент. В случае с SQL-запросами посложнее: так как далеко не всегда можно автоматически сформировать запрос, "обратный" к указанному, задача составления этого обратного запроса, который и исполняется при деинсталляции, возлагается на автора хака. Так что, если при деинсталляции хака не все удалилось, или же, наоборот, удалилось что-то лишнее, то, скорее всего, здесь виноваты кривые руки автора хака, а вовсе не разработчика этой системы. 
Фичи- возможность полностью автоматической инсталляции и деинсталляции хаков, включая автоматическое создание новых файлов/шаблонов (а при деинсталляции - их уничтожение);
- степень автоматизации контролируется - при желании часть модификаций можно сделать вручную (или не делать вообще), часть - скриптом; хак можно инсталлировать в несколько этапов.
- возможность создания резервных копий файлов перед внесением в них изменений;
- автоматическое создание запросов для добавления/удаления хаком фраз и настроек vB Options;
- корректная работа с измененными именами директорий "admincp" и "modcp"; поддержка префиксов таблиц.
- работа с темплейтами postbit и postbit_legacy: модификации, затрагивающие postbit, применяются не к нему, а к postbit_legacy, если форум использует именно postbit_legacy;
- возможость импортировать/экспортировать хаки в формате XML (ВЕСЬ хак - в одном файле!);
- возможность импортировать и устанавливать хаки формата HTL.
(примечание: данная возможность находится в состоянии тестирования; работоспособность не гарантируется в 100% случаев)
Файл: hackmanager.zip
Был скачан 40 раз(а).
__________________
вот так вот...
ICQ 937160
Сообщить модератору об этом сообщении | Предупреждение | IP: определен
|