Для начала определимся с терминологией:
element или tag: в теги заключены инструкции для установщика, указывающие, что ему делать, например <install></install>
attribute или property: дополнительный параметр в тегах, конкретизирующий инструкцию
inline: код или текст, который будет подлежать замене
file: имя файла, который подлежит изменению
location или path: путь к файлу или директории
ignore: используется для игнорирования ошибок
skip: пропустить данную операцию
fatal: прерывает установку модификации и выдает код ошибки
Так же следует пояснить смысл некоторых переменных
$boarddir: Корневой каталог форума. Обычно это каталог, в котором расположен index.php
$sourcedir: Путь к каталогу Sources в котором расположены основные файлы движка (например Post.php, Admin.php и другие)
$avatardir: Путь к каталогу Avatars в котором расположены аватары.
$themedir: Путь к каталогу с текущей темой оформления
$themes_dir: Путь к каталогу со всеми темами
$imagesdir: Путь к директории с рисунками, используемые в выбранной теме
$languagedir: Путь к директории с языковыми файлами
$smileysdir: Путь к директории со смайлами
modification.xml
Все теги, если явно не указано иное, не являются обязательными и не обязаны содержать атрибуты.
<modification></modification>
- Описание:
Основной тег, внутри которого должны быть расположены все другие теги.
- Атрибуты:
xmlns: по умолчанию "http://www.simplemachines.org/xml/modification"; опционально
<id></id>
- Описание:
Contains the id of the package. Should be in the format of [username]:[package name]. For instance groundup:bestmod When submitting a mod to the mod site, the username should be your username from www.simplemachines.org
<version></version>
- Описание:
The package's current version.
<file></file>
- Описание:
The file to modify. Including all of the operations to take on this file.
- Attributes:
name: the name of the file and path
error: what to do when this file cannot be modified; "ignore" "fatal" or "skip"; use "ignore" to create a new file; optional; default to "fatal"
- Elements:
<operation></operation>
- Описание:
An operation to be perfomed on this file
- Attributes:
error: what to do if this operation can not be performed; "ignore" "fatal" or "required"; use "required" if this operation must fail; defaults to "fatal"; optional
- Elements:
<search></search> or <search /> (for use with position="end" only)
- Описание:
The code to search for
- Attributes:
position: the position of where the search code should exist after changes: "before" (to put the code before your addition), "after" (to put the code after your addition), or "replace"; required
whitespace: Whether to ignore whitespace or not: "exact" (default) or "loose"; optional; default: exact
regexp: If the search is a regularexpression or not. "true" or "false"; optional; default: false
<add></add>
- Описание:
The code to add
(Добавление)
Пример:
PHP:
<file name="$sourcedir/Display.php">
<operation>
<search position="after"><![CDATA[
if (empty($options['view_newest_first']))
$counter++;
else
$counter--;
]]></search>
<add><![CDATA[
// Allow editing $output array
call_integration_hook('integrate_message', array(&$output));
call_integration_hook('integrate_prepare_display_context', array(&$output, &$message));
]]></add>
</operation>
</file>