Customizing SMF > SMF Coding Discussion

Package SDK: modification.xml

(1/2) > >>

SleePy:
Before reading on, you should know some definitions used in this documentation:

* element aka tag: an instruction used to tell the package manager what to do. ie <install></install>
* attribute aka property: an additional value used to describe an element
* inline: code or text that is written in this file instead of coming from an outside source
* file: the name or location of a file to be used instead of "inline"
* location aka path: the location on the computer of a directory and/or file
* ignore: used to ignore an error
* skip: skip this operation/file
* fatal: stop the entire modification and return an error
There are also variables that may be used in place of a path. Italics denotes the commonly used path so you get an understanding of what the variable references.

* $boarddir: The directory where index.php is found. Usually one level beneath the source files are contained.
* $sourcedir: The directory where the source files are contained (ie Post.php, Admin.php, etc) /Sources
* $avatardir: The directory where the avatars may be found /Avatars
* $themedir: The directory of the default theme
* $themes_dir: The directory containing the default, and other themes
* $imagesdir: The images directory of the default theme
* $languagedir: The location of the directories of language files
* $smileysdir: The location of the smiley directory
modification.xml
All elements, unless otherwise stated, are not optional and contain no attributes.


* <modification></modification>

* Must encompass all other elements in the file.
* Attributes:
* xmlns: defaults to "http://www.simplemachines.org/xml/modification"; optional
* <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

Inter:
how to tell the installer to ignore the first right bracket?


--- Code: ---<search position="replace"><![CDATA[<script type="text/javascript"><!-- // --><![CDATA[...
// ]]></script>]]></search>
--- End code ---


--- Code: ---<add><![CDATA[<script type="text/javascript"><!-- // --><![CDATA[...
// ]]></script>]]></add>
--- End code ---

emanuele:
Unfortunately for the <search> there is no way around. You have to find another point to replace...

For the <add> you can do like this:

--- Code: ---<add><![CDATA[<script type="text/javascript"><!-- // --><![CD' . 'ATA[...
// ]' . ']></script>]]></add>
--- End code ---

Inter:
Error:

--- Code: ---$txt['key'] = '<<word>>';
--- End code ---

emanuele:
Could you be a bit more specific?
Are you using that one in the <search> or <add> tags? How?

Navigation

[0] Message Index

[#] Next page

Go to full version