|
|
mods:installation_manuelle_xml [2010/06/30 14:53] |
mods:installation_manuelle_xml [2024/01/07 02:31] (Version actuelle) |
| ====== Installation manuelle d'un mod (au format .xml) ===== |
| |
| ===== Avant de commencer... ===== |
| D'abord, une petite note pour dire qu'un fichier ''.xml'' peut être ouvert avec n'importe quel éditeur de texte simple, comme le Bloc-Notes de Windows. Mais il est peut-être préférable de se tourner vers un autre outil comme [[http://www.context.cx|ConText]], [[http://bluefish.openoffice.nl|Bluefish]], gEdit, [[http://www.macromedia.com|Macromedia Dreamweaver]], [[http://www.mpsoftware.dk|MPSoftware PHP Designer 2005]] ou autre, car ils proposent la colorisation syntaxique de ce type de fichiers. |
| |
| Pour saisir comment installer manuellement un mod dont le fichier d'installation est au format ''.xml'', nous prendrons un mod existant à titre d'exemple. Nous étudierons la première étape de l'installation du mod [[http://mods.simplemachines.org/index.php?mod=163|Board Notes]], par Akabugeyes. |
| |
| La première étape décrite dans le fichier d'installation ''install.xml'' de ce mod est celle-ci: |
| <code xml> |
| <file name="$themedir/ManageBoards.template.php"> |
| <operation> |
| <!-- Search for this text before the code we add. You can also search for after, and the end of the file. --> |
| <search position="before"><![CDATA[ |
| <td> |
| <b>', $txt['mboards_description'], '</b><br /> |
| ', $txt['mboards_description_desc'], '<br /><br /> |
| </td> |
| <td valign="top" align="right"> |
| <textarea name="desc" rows="2" cols="29">', $context['board']['description'], '</textarea> |
| </td> |
| ]]></search> |
| <!-- Add this text when we find it. Note that it's on it's own line on purpose, and the CDATA keeps things clean. --> |
| <add><![CDATA[ |
| <tr> |
| <td> |
| <b>', $txt['topblock_title'], '</b><br /> |
| ', $txt['topblock'], '<br /><br /> |
| </td> |
| <td valign="top" align="right"> |
| <textarea name="topblock" rows="2" cols="29">', $context['board']['topblock'], '</textarea> |
| </td></tr> |
| ]]></add> |
| </operation> |
| </file> |
| </code> |
| |
| Décortiquons cette étape. |
| |
| ===== Désignation du fichier à modifier ===== |
| |
| <code xml> |
| <file name="$themedir/ManageBoards.template.php"> |
| </code> |
| Cette ligne contient le chemin et le nom du fichier à modifier. Certaines variables peuvent être utilisées pour exprimer un chemin: |
| * **$themedir** désigne ''/Themes/default'' |
| * **$languagedir** désigne ''/Themes/default/languages'' |
| * **$sourcedir** désigne ''/Sources'' |
| |
| |
| ===== Opération ===== |
| <code xml> |
| <operation> |
| </code> |
| Une opération consiste en une recherche et une action à prendre. |
| |
| ==== Commentaire ===== |
| <code xml> |
| <!-- Search for this text before the code we add. You can also search for after, and the end of the file. --> |
| </code> |
| |
| Comme en HTML, le texte contenu entre **''<!--''** et **''-->''** est un commentaire. Il est possible que certains installateurs incluent des commentaires pour mieux guider les utilisateurs désirant installer un mod manuellement ; d'autres mods n'inclueront aucun commentaires. |
| |
| |
| ==== Recherche ==== |
| <code xml> |
| <search position="before"><![CDATA[ |
| <td> |
| <b>', $txt['mboards_description'], '</b><br /> |
| ', $txt['mboards_description_desc'], '<br /><br /> |
| </td> |
| <td valign="top" align="right"> |
| <textarea name="desc" rows="2" cols="29">', $context['board']['description'], '</textarea> |
| </td> |
| ]]></search> |
| </code> |
| |
| Ici se trouve notre recherche. Le gestionnaire de paquet tentera de trouver le texte *exact* (donc: espaces, tabulations, etc. doivent être respectées) situé entre **''<![CDATA[''** et **'']]>''** ; cela a pour effet de conserver les règles de formatage du texte. L'attribut **''position''**, dans la balise **''<search>''**, peut prendre 3 valeurs: **''replace''** (remplacer), **''before''** (avant) ou **''after''** (après). |
| |
| * Dans le premier cas, le texte recherché sera remplacé par le texte à ajouter. |
| * Dans les second et troisième cas, l'attribut **''position''** renseigne quant à la position de ce texte à rechercher **//par rapport au texte à ajouter//**. |
| |
| |
| <code xml> |
| <!-- Add this text when we find it. Note that it's on it's own line on purpose, and the CDATA keeps things clean. --> |
| </code> |
| Encore un commentaire. |
| |
| ==== Ajout ==== |
| <code xml> |
| <add><![CDATA[ |
| <tr> |
| <td> |
| <b>', $txt['topblock_title'], '</b><br /> |
| ', $txt['topblock'], '<br /><br /> |
| </td> |
| <td valign="top" align="right"> |
| <textarea name="topblock" rows="2" cols="29">', $context['board']['topblock'], '</textarea> |
| </td></tr> |
| ]]></add> |
| </code> |
| |
| La balise **''<add>''** contient le texte à ajouter. Ce texte est encore une fois situé entre **''<![CDATA[''** et **'']]>''** afin de préserver les règles de formatage (espaces, tabulations, etc.) ; il sera donc ajouté au fichier tel qu'il apparaît. |
| |
| |
| ==== Fin de l'opération ==== |
| <code xml> |
| </operation> |
| </code> |
| |
| L'opération étant terminée, on ferme la balise **''<operation>''**. |
| |
| |
| ===== Fin de la modification dans le fichier ===== |
| <code xml> |
| </file> |
| </code> |
| |
| S'il n'y a plus de modification à apporter dans le fichier que nous éditions, on ferme la balise **''<file>''** |
| |
| ===== |
| |
| Dans un langage plus compréhensible pour les humains, nous pourrions lire les instructions de cette façon: |
| |
| Dans le fichier ''/Themes/default/ManageBoards.php'' //(''<file name="$themedir/ManageBoards.template.php">'')//, nous recherchons le texte suivant //(''<search position="before"><![CDATA[ ... ]]></search>'')// ; ce texte se trouvera avant //(''position="before"'')// le texte que nous ajoutons //(''<add><![CDATA[ ... ]]></add>'')//. |