Package SDK: modification.xml

Started by SleePy, March 17, 2009, 06:57:37 PM

Previous topic - Next topic

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>


  • <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

Jeremy D ~ Site Team / SMF Developer ~ GitHub Profile ~ Join us on IRC @ Libera.chat/#smf ~ Support the SMF Support team!

inter

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

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


<add><![CDATA[<script type="text/javascript"><!-- // --><![CDATA[...
// ]]></script>]]></add>
Sorry for my English

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:
<add><![CDATA[<script type="text/javascript"><!-- // --><![CD' . 'ATA[...
// ]' . ']></script>]]></add>


Take a peek at what I'm doing! ;D




Hai bisogno di supporto in Italiano?

Aiutateci ad aiutarvi: spiegate bene il vostro problema: no, "non funziona" non è una spiegazione!!
1) Cosa fai,
2) cosa ti aspetti,
3) cosa ottieni.

inter

Sorry for my English

emanuele

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


Take a peek at what I'm doing! ;D




Hai bisogno di supporto in Italiano?

Aiutateci ad aiutarvi: spiegate bene il vostro problema: no, "non funziona" non è una spiegazione!!
1) Cosa fai,
2) cosa ti aspetti,
3) cosa ottieni.

inter

brackets are not used for tag and as a punctuation mark
Sorry for my English

emanuele

So you mean that:
<search position="end" />
<add><![CDATA[$txt['key'] = '<<word>>';]]></add>

doesn't work?


Take a peek at what I'm doing! ;D




Hai bisogno di supporto in Italiano?

Aiutateci ad aiutarvi: spiegate bene il vostro problema: no, "non funziona" non è una spiegazione!!
1) Cosa fai,
2) cosa ti aspetti,
3) cosa ottieni.

inter

Quote from: emanuele on August 27, 2012, 01:09:28 PM
So you mean that:
<search position="end" />
<add><![CDATA[$txt['key'] = '<<word>>';]]></add>

doesn't work?
yes

solved: brackets can be changed to &lt; &gt;
Sorry for my English

Advertisement: