Sie sind auf Seite 1von 6

vQmod

vQmod est un systme conu pour viter d'avoir modifier les fichiers du noyau. Au lieu
d'apporter des modifications aux fichiers de base directement, les changements sont crs sous
la forme de scripts xml de recherche /remplacement dans les fichiers PHP. En ne modifiant pas
les fichiers du noyau, les changements ne seront pas altrs lors d'une mise jour de Opencart.
Cependant, les fichiers VQMOD sont conus pour fonctionner avec certaines versions de
Opencart. Il y a donc un risque d'incompatibilit lors des mises jour.

Comment crer des Scripts vQmod


Un script simple de remplacement a cette structure:
<?xml version="1.0" encoding="UTF-8"?>
<modification>
<id>Nom du script</id>
<version>1.0.0</version>
<vqmver>1.0.9</vqmver>
<author>Auteur du script</author>
<file name="relative/path/monfichier.php">
<operation>
<search position="replace">
<![CDATA[$var = 'valeur remplacer';]]>
</search>
<add>
<![CDATA[$var = ' valeur de remplacement ';]]>
</add>
</operation>
</file>
</modification>

Syntaxe: signification des paramtres


modification

lment racine du fichier.

Nom et description du script.

/id

/ version

Version du script.

F. Abouzaid

Page 1

/vqmver

Version minimale requise de VirtualQMod.


Format: Number and Decimal (1.0.0) (Informational)
Un attribute required="true" peut tre ajout pour dsactiver le script si la version ne
correspond pas.

/file

Nom du fichier modifier


Requiert un attribut "name" qui indique la position relative du fichier (e.g.
catalog/controller/product/product.php). On peut utiliser plusieurs noms de fichiers
spars par des virgules. On peut aussi utiliser des jokers (wildcard (*)).
- catalog/view/theme/*/template/product/product.tpl
- catalog/view/theme/*/*/product/product.tpl

Un fichier xml peut concerner plusieurs scripts.. Chaque fichier aura ses propres
oprations.
Pour viter les rptitions on utilisera un attribut "path" pour prfixer les noms de
fichiers.
Exemple:
<file path="path/to/" name="a.php,b.php,c.php">

Un attribut "error" peut tre utilis et prendra ses valeurs dans log|skip|abort
o skip : le fichier sera ignor;
o log : comme skip, mais l'erreur sera journalise (valeur par dfaut);
o abort : journalise l'erreur et annule les oprations restantes dans le script. Pas
de retour en arrire sur les oprations dj effectues et n'arrte pas les autres
fichiers xml.
o Les chemins avec des jokers ignorent compltement l'attribut "error".

/file/operation

Opration raliser. Il peut y en avoir plusieurs pour le mme fichier.


L'attribut Optionel "info" donne de l'information sur l'extension.
L'attribut Optionel "error" prend ses valeurs dans skip|log|abort
o skip : toutes les uatres oprations seront ralises malgr l'erreur. Ps de
journalisation;
o log : idem skip mais avec journalisation;
o abort : journalise l'erreur et revient au code source original. (comportement par
dfaut)

/file/operation/ignoreif

Balise facultative qui permet d'ignorer une ligne si la recherche est positive.

F. Abouzaid

Page 2

L'attribut optionel "regex' prend les valeurs true|false. Il prcise


l'expression rgulire vrifier, entre guillemets. Par dfaut la valeur est
false.
Exemple:

<file name="path/to/myfile.php">
<operation info="After ABC, add 123 if XYZ not in file">
<ignoreif><![CDATA[
XYZ
]]></ignoreif>
<search position="after"><![CDATA[
$var = 'ABC';
]]></search>
<add><![CDATA[
$var = '123';
]]></add>
</operation>
</file>

/file/operation/search

C'est le premier lment (tape) de l'opration. Il n'y en a qu'un seul.


La recherche se fait sur des lignes uniques On utilisera les attributs offset et index pour
des cas plus complexes.
Il est recommand d'envelopper le code par CDATA.
L'attribut "position" est obligatoire et prend ses valeurs dans :
before|after|replace|top|bottom|ibefore|iafter.
replace remplace le texte dans la balise search par les donnes dans la balise
add;
o before (resp. after) insrent les donnes de la balise add juste avant (resp.
aprs) le texte dans la balise search;
o top (resp. bottom) ralisent l'insertion au dbut (resp. la fin ) du fichier.
o ibefore (resp. iafter)
L'attribut Optionel "offset" va de pair avec la position
o permet de dcaler l'insertion ou le remplacement de "n" lignes de la position
donne par search. Par exemple,
 si l'attribut position est before et offset "3", le texte de add
sera insr 3 lignes au dessus de la ligne cherche.
 si position est replace et l'offset 3, il enlvera le code de la
ligne cherche et les 3 lignes suivantes et le remplacera par le texte de
add.
o L'attribut Optionel "index" prcise quelle instance de la recherche sera
impacte par l'opration. Exemple:
o

F. Abouzaid

Page 3

o
o

Si on cherche "echo" et qu'il y en a 5 et que l'on souhaite remplacer seulement


le premier et le 3me, on utilisera index="1,3"
L'attribut Optionel "regex" permet de spcifier si on utilise ou non une
expression rgulire. Exemples:
<search regex="true" position="replace">
<![CDATA[~\$this->load->model\(.*?\);~]]>
</search>
<file name="admin/view/template/*/*.tpl">
<operation>
<search regex="true" position="replace">
<![CDATA[~<h1>.*?</h1>~]]>
</search>
<add>
<![CDATA[<h1><?php echo $heading_title;
?></h1>]]>
</add>
</operation>
</file>

o
o

Si la valeur est true, le texte de search doit tre une expression rgulire
valide.
L'attribut Optionel "trim" est un boolen qui spcifie si on supprime ou non les
espaces et les retours la ligne (true par dfaut).

/file/operation/add

Peut concerner des lignes multiples;


Un seul add par opration.
L.adjonction se fait la position indique par search;
On peut utiliser l'attribut boolen optionnel "trim".

<![CDATA[ ]]>

Balise CDATA indique que les donnes ne doivent pas tre values. Il est
recommand de toujours l'utiliser pour les balises search et add.

F. Abouzaid

Page 4

Installer vQmod
Tlcharger la dernire version l'adresse :
https://code.google.com/p/vqmod/downloads/list

Extraire l'archive dans le rpertoire vqmod dans le rpertoire d'installation d'OpenCart. Ouvrir
ensuite le fichier : vqmod/install/index.php.
Si a marche on obtient le message: VQMOD HAS BEEN INSTALLED ON YOUR SYSTEM!

Exemple d'utilisation
Crez un fichier XML vqmod_homepage.xml dans le rpertoire vqmod/xml. Copiez-y le
code suivant:
<?xml version="1.0" encoding="UTF-8"?>
<modification>
<id>Remplace la proprit CSS du l'entte dans la page
d'accueil. </id>
<version>1.0</version>
<vqmver>2.X</vqmver>
<author>xyz</author>
<file
name="catalog/view/theme/default/template/common/home.tpl">
<operation info=" Remplace la proprit CSS du l'entte
dans la page d'accueil.">
<search position="replace">
<![CDATA[<h1 style="display:none;">]]>
</search>
<add>
<![CDATA[<h1>]]>
</add>
</operation>
</file>
</modification>

En ouvrant la page d'accueil, le nom du magasin est affich en <h1>. Tous les fichiers dans le
rpertoire vqmod/xml sont dtects automatiquement et les changements appliqus.

F. Abouzaid

Page 5

Installer une extension existante


Exemple:
- Stars On Off
http://www.opencart.com/index.php?route=extension/extension/info&extension_id=17103&fil
ter_search=star&filter_license=0
- Imprimer la facture en PDF
http://www.opencart.com/index.php?route=extension/extension/info&extension_id=6331
Grer les extensions vQmod
Tlcharger et installer VQMod Manager :
http://www.opencart.com/index.php?route=extension/extension/info&extension_id=2969
Suivre les instructions d'installation dans le pdf.

F. Abouzaid

Page 6

Das könnte Ihnen auch gefallen