Nous ne répondons seulement qu'aux sujets dont l'auteur a complété sa signature [Lire]


VirtualQMod le module le plus abouti pour les modifications.

Section destinée aux modules XML pour vQmod

VirtualQMod le module le plus abouti pour les modifications.

Messagepar LeorLindel » 30 Jan 2011, 18:20

Bonjour à tous,

Je voulais vous parler du module qu'a fait l'excellent Qphoria (Administrateur du forum anglophone).

Ce module vous permet de faire toutes les modifications de code que vous souhaitez sur votre boutique (admin et catalog) sans modifier un seul fichier initial.

En effet ces modifications s'exécutent virtuellement à la volée grâce à des fichiers XML.

Vous pouvez télécharger le module ici.

La procédure d'installation est très simple, je la décris pour les non-anglophones :

1 - Dé-zipper le package
2 - Transférer le répertoire "vqmod" à la racine de votre boutique ou dans votre répertoire "upload" si vous travaillez en local et que vous avez ce répertoire à la racine de votre site, sur votre disque dur.
3 - Avec votre éditeur de texte, ouvrir le fichier "index.php" et chercher ces lignes :
Code: Tout sélectionner
// Startup
require_once(DIR_SYSTEM . 'startup.php');

// Application Classes
require_once(DIR_SYSTEM . 'library/customer.php');
require_once(DIR_SYSTEM . 'library/currency.php');
require_once(DIR_SYSTEM . 'library/tax.php');
require_once(DIR_SYSTEM . 'library/weight.php');
require_once(DIR_SYSTEM . 'library/length.php');
require_once(DIR_SYSTEM . 'library/cart.php');

Et les remplacer par celles-ci :
Code: Tout sélectionner
//VirtualQMOD
require_once('./vqmod/vqmod.php');
$vqmod = new VQMod();

// Startup
require_once($vqmod->modCheck(DIR_SYSTEM . 'startup.php'));

// Application Classes
require_once($vqmod->modCheck(DIR_SYSTEM . 'library/customer.php'));
require_once($vqmod->modCheck(DIR_SYSTEM . 'library/currency.php'));
require_once($vqmod->modCheck(DIR_SYSTEM . 'library/tax.php'));
require_once($vqmod->modCheck(DIR_SYSTEM . 'library/weight.php'));
require_once($vqmod->modCheck(DIR_SYSTEM . 'library/length.php'));
require_once($vqmod->modCheck(DIR_SYSTEM . 'library/cart.php'));

4 - Avec votre éditeur de texte, ouvrir le fichier "admin/index.php" et chercher ces lignes :
Code: Tout sélectionner
// Startup
require_once(DIR_SYSTEM . 'startup.php');

// Application Classes
require_once(DIR_SYSTEM . 'library/currency.php');
require_once(DIR_SYSTEM . 'library/user.php');
require_once(DIR_SYSTEM . 'library/weight.php');
require_once(DIR_SYSTEM . 'library/length.php');

Et les remplacer par celles-ci :
Code: Tout sélectionner
//VirtualQMOD
require_once('../vqmod/vqmod.php');
$vqmod = new VQMod();

// Startup
require_once($vqmod->modCheck(DIR_SYSTEM . 'startup.php'));

// Application Classes
require_once($vqmod->modCheck(DIR_SYSTEM . 'library/currency.php'));
require_once($vqmod->modCheck(DIR_SYSTEM . 'library/user.php'));
require_once($vqmod->modCheck(DIR_SYSTEM . 'library/weight.php'));
require_once($vqmod->modCheck(DIR_SYSTEM . 'library/length.php'));


Vous devriez avoir à la racine de votre site, ceci : admin - catalog - ....etc - vqmod
Et dans le répertoire "vqmod" vous devez avoir ces deux répertoires : vqcache et xml
Il faut que vous ayez impérativement le fichier "vqmod_opencart.xml" dans le répertoire vqmod/xml/, il ne faut pas l'effacer.

Voici l'arborescence que vous devez avoir :
- admin
- catalog
- download
- image
- system
- vqmod/vqmod.php
.........../vcache
.........../ xml/vqmod_opencart.xml


C'est tout votre module VQMod est prêt à l'emploi.

Maintenant vous allez pouvoir faire un essai avec un fichier "xml".

Voici une modification dont vous trouverez le sujet ici, que j'ai ré-écrit pour l'appliquer à la structure .xml :
Code: Tout sélectionner
<modification>

   <id>Admin replace text select_all/unselect_all by buttons</id>
   <version>1.0.0</version>
   <vqmver>1.0.8</vqmver>
   <author>LeorLindel</author>

   <file name="admin/view/template/common/header.tpl">
        <operation>
            <search position="replace"><![CDATA[
       $(this).after('<span><a onclick="$(\'' + sbox + ' :checkbox\').attr(\'checked\', \'checked\');"><u><?php echo $text_select_all; ?></u></a> / <a onclick="$(\'' + sbox + ' :checkbox\').attr(\'checked\', \'\');"><u><?php echo $text_unselect_all; ?></u></a></span>');
         ]]></search>
            <add><![CDATA[
       $(this).after('<br /><a class="button" onclick="$(\'' + sbox + ' :checkbox\').attr(\'checked\', \'checked\');"><u><span><?php echo $text_select_all; ?></span></u></a>&nbsp;<a class="button" onclick="$(\'' + sbox + ' :checkbox\').attr(\'checked\', \'\');"><u><span><?php echo $text_unselect_all; ?></span></u></a></span>');
         ]]></add>
        </operation>
   </file>

</modification>


Légende de la structure du fichier :
<!--
<modification> - Il s'agit du plus haut niveau du fichier et il ne peut y avoir qu'un seul
<id> - C'est le nom du module de modification. Format :Texte libre. (informatif)
<version> - Ceci est la version du module de modification. Format : Nombre et Décimal (1.0.0) (informatif)
<vqmver> - Ceci est la version minimale requise de VirtualQMod nécessaire pour que le script fonctionne. Format : Nombre et Décimal (1.0.0) (informatif)
<author> - C'est l'auteur du module de modification. Format :Texte libre. (informatif)
<file> - C'est le nom du fichier à modifier. Nécessite l'attribut "name" comme nom de fichier relatif (catalog/contrôller/product/product.php). Il peut y avoir plusieurs.
<operation> - C'est l'enveloppe de l'opération réelle pour que cela s'exécute. Il peut y avoir de multiples opérations dans le même fichier. Peut utiliser une option "erreur" attribut | abort (arrêt est par défaut). skip signifie toutes les autres opérations seront appliquées, même si on ne peut pas. abandonner les moyens de revenir à la source originale.
<search> - Il s'agit de la première étape nécessaire à l'opération. Utilise un attribut optionnel "position" réglé avec les options avant, après et remplacer (before, after, replace). remplacer (replace) est l'option par défaut. Un pour chaque opération. Utiliser les balises CDATA pour envelopper le code.
<add> - Il s'agit de la deuxième étape nécessaire à l'opération. Utilise un attribut optionnel "trim " a la valeur true et false à rogner les espaces et les sauts de ligne. false par défaut. Un pour chaque opération. L'emplacement des données ajoutée ou remplacées dépend de la position de la commande <search>. Utiliser les balises CDATA pour envelopper le code.
<![CDATA[ ]]> - On les appelle des balises CDATA et elles sont utilisées par xml afin de préciser que les données situées entre ces balises ne doivent pas être évalués.
-->


6 - Transférer le fichier .xml sur votre serveur dans le répertoire upload/vqmod/xml
7 - Constater le changement sur votre boutique.

Si les modifications ne vous intéressent plus, il suffit de supprimer le fichier .xml du dossier upload/vqmod/xml et votre boutique redeviendra comme à l'origine.

Vous pouvez mettre en téléchargement dans ce sujet les fichiers de modifications que vous aurez créé.

Bon amusement.
Image
1 - A lire avant de poster un sujet
2 - Politique sur la signature.

Quand le sujet est résolu, pensez à ajouter la petite coche verte Image dans le titre initial en éditant votre premier message et non dans votre dernière réponse.
Merci


Toutes les extensions commerciales (templates ou modules payants) ne peuvent pas faire l'objet d'ouverture de sujet, prière de bien vouloir s'adresser au concepteur en cas de problème ou demande de renseignements.

Seul, on avance plus vite, à plusieurs on avance plus loin.
Avatar de l’utilisateur
LeorLindel
Administrateur
Administrateur
 
Messages: 4236
Inscription: 19 Fév 2010, 12:44
Localisation: Lutéce

Re: VirtualQMod le module le plus abouti pour les modificati

Messagepar Marc » 01 Fév 2011, 15:16

Excellent !

Merci pour cette info...
Voilà de quoi livrer des patchs tout prêts à l'emploi !

Par contre, la limite reste au niveau de la compatibilité des patchs entre eux... Seuls les patchs modifiants des codes dans des fichiers différents (ou à des emplacements différents) peuvent coexister je suppose...

Enfin, ça reste un système très pratique !

Bravo à Qphoria ! Et merci LeorLindel pour ce partage !
Seul on va plus vite, ensemble on va plus loin...
Avatar de l’utilisateur
Marc
Utilisateur enregistré
Utilisateur enregistré
 
Messages: 86
Inscription: 03 Aoû 2010, 13:08
Localisation: France - Tours

Re: VirtualQMod le module le plus abouti pour les modificati

Messagepar LeorLindel » 01 Fév 2011, 15:25

Marc a écrit:... Seuls les patchs modifiants des codes dans des fichiers différents (ou à des emplacements différents) peuvent coexister je suppose...

Tout à fait, mais l'on peut aussi assembler les fichiers xml entre eux afin de profiter de l'intégralité des modifications.
Image
1 - A lire avant de poster un sujet
2 - Politique sur la signature.

Quand le sujet est résolu, pensez à ajouter la petite coche verte Image dans le titre initial en éditant votre premier message et non dans votre dernière réponse.
Merci


Toutes les extensions commerciales (templates ou modules payants) ne peuvent pas faire l'objet d'ouverture de sujet, prière de bien vouloir s'adresser au concepteur en cas de problème ou demande de renseignements.

Seul, on avance plus vite, à plusieurs on avance plus loin.
Avatar de l’utilisateur
LeorLindel
Administrateur
Administrateur
 
Messages: 4236
Inscription: 19 Fév 2010, 12:44
Localisation: Lutéce

Re: VirtualQMod le module le plus abouti pour les modificati

Messagepar Marc » 01 Fév 2011, 15:48

Le fin du fin serait de faire un détecteur de conflits et de proposer l'ajout de l'une, de l'autre, des 2 ou d'un mix (qui serait à fournir) pour rendre compatibles 2 patchs en 2 coups de cuillère à pot !
Y a plus qu'à ! :mrgreen:
Seul on va plus vite, ensemble on va plus loin...
Avatar de l’utilisateur
Marc
Utilisateur enregistré
Utilisateur enregistré
 
Messages: 86
Inscription: 03 Aoû 2010, 13:08
Localisation: France - Tours

Re: VirtualQMod le module le plus abouti pour les modificati

Messagepar LeorLindel » 01 Fév 2011, 16:17

Il y a le fichier vqmod.log qui est là pour ça. D'ailleurs dès que je trouverais le temps, je compte faire un journal dans l'admin qui permette de lire ce fichier, comme le fait actuellement le Journal d'erreurs situé dans le menu Système.
Image
1 - A lire avant de poster un sujet
2 - Politique sur la signature.

Quand le sujet est résolu, pensez à ajouter la petite coche verte Image dans le titre initial en éditant votre premier message et non dans votre dernière réponse.
Merci


Toutes les extensions commerciales (templates ou modules payants) ne peuvent pas faire l'objet d'ouverture de sujet, prière de bien vouloir s'adresser au concepteur en cas de problème ou demande de renseignements.

Seul, on avance plus vite, à plusieurs on avance plus loin.
Avatar de l’utilisateur
LeorLindel
Administrateur
Administrateur
 
Messages: 4236
Inscription: 19 Fév 2010, 12:44
Localisation: Lutéce

Re: VirtualQMod le module le plus abouti pour les modificati

Messagepar creation » 12 Avr 2011, 15:51

J'ai essayé vqmod mais chez moi ça marche pas, je pense parce que j'ai joocart sous joomla
pensez vous comment le faire fonctionner
voici les erreurs:

Notice: Undefined variable: vqmod in /homez.312/motopist/www/components/com_opencart/vqmod/vqcache/vqcache_system_startup.php on line 79

Fatal error: Call to a member function modCheck() on a non-object in /homez.312/motopist/www/components/com_opencart/vqmod/vqcache/vqcache_system_startup.php on line 79

Merci pour de l'aide
creation
Utilisateur enregistré
Utilisateur enregistré
 
Messages: 7
Inscription: 30 Mar 2011, 18:38

Re: VirtualQMod le module le plus abouti pour les modificati

Messagepar michelk » 30 Juin 2011, 07:37

Bonjour,

Excusez mon francais et mon clavier qwerty. J'utilise maintenant vQmod sur ma version US mais j'y ai apporte quelques changements qui permettent de l'utiliser autrement sans nuire a son design de base.

Tel quel, vQmod permet de mettre les mods dans un fichier XML. Ces mods remplacent des lignes de code au vol et le resultat est ecrit dans un fichier plus ou moins temporaire. Le but est evidemment de garder les fichiers opencart d'origine et d'avoir les mods a part.

Par experience (j'ai ecrit mon 1er programme en 1969 :) j'ai toujours garde les mods par numero de version et j'ai toujours trouve complique (cumbersome) de regarder a differents endroits pour voir le code final, ou meme le mettre au point.

Ma modification (extension plutot) de vQmod est tres simple. Je vais prendre un example:

J'ai voulu change
catalog\controller\information\information.php


J'ai creer une ligne
Code: Tout sélectionner
<file name="catalog\controller\information\information.php" version="1" ></file>
dans le fichier xml dans lequel j'indique un numero de version.

Je duplique
catalog\controller\information\information.php
en un fichier:

catalog\controller\information\information_v1.php


Noter le
v_1
ou le 1 est le numero de version.

La modification de vQmod permet d'utiliser directement
catalog\controller\information\information_v1.php


Bien sur, on peut facilement changer le code pour utiliser des sous-directories comme:

catalog\controller\information\v_1\information.php


si on prefere.


Voici les mods du script vqmod.php, le seul a changer:

Ajouter ces 2 lignes vers le haut:

Code: Tout sélectionner
    public $useVersion = true;                          // use a pre-loaded version _vx file
    private $filesToVersion = array();               // Keeps a list of all the files that have version number in xml


Dans
function __construct
, apres
$source = str_replace("\\", "/", $this->cwd . '/' . $source);
, ajouter:

Code: Tout sélectionner
                if (strpos($source,"|") !== false) {
                    $sx = explode("|",$source);
                    $source = $sx[0];
                    $version = $sx[1];
                    if ($version != '') $this->filesToVersion[$source] = $version;
                    }



Dans
public function modCheck
, avant
// Create tempfile
, ajouter:

Code: Tout sélectionner
        if ($this->virtualMode &&
            $this->useVersion &&
            array_key_exists ($sourcefile,$this->filesToVersion)) {
         
            $sx = explode("/",$sourcefile);
            $last = array_pop($sx);
            $sxx = explode(".",$last);
       
            $sxx[0] .= "_v".$this->filesToVersion[$sourcefile];
       
            $last = implode(".",$sxx);
            array_push($sx,$last);
            $tempfile = implode("/",$sx);

            if (file_exists($tempfile)) {
                $msg  = ("SOURCEFILE:  $sourcefile\r\n");
                $msg .= ("USING VERSION: $tempfile\r\n");
                $this->log($msg);
                return $tempfile;
                }
      
            }


Dans
private function getFilesToMod
, remplacer
$filepaths[] = $file->getAttribute('name');
par:
Code: Tout sélectionner
$filepaths[] = $file->getAttribute('name')."|". $file->getAttribute('version');
 


Voila, c'est tout.
Crafting Sellable, Shippable, Supportable and Scaleable Software Solutions Since 1969 with a passion for perfection.

http:/www.emediacart.com/

http://www.emediaboard.com/
Avatar de l’utilisateur
michelk
Utilisateur enregistré
Utilisateur enregistré
 
Messages: 3
Inscription: 01 Mai 2011, 13:48
Localisation: Paris, Cupertino CA et Austin, TX

Re: VirtualQMod le module le plus abouti pour les modificati

Messagepar LeorLindel » 10 Fév 2012, 18:02

La dernière version de vQmod ne nécessite plus de modifications à effectuer, il suffit de dé-zipper le pack de le charger sur son serveur et d'exécuter l'install automatique, en tapant dans la barre d'adresse : http://www.monsite/vqmod/install.

Je vous recommande aussi d'installer le Gestionnaire vQmod que vous trouverez ici.
Puis d'aller dans l'admin > Extensions > Modules > VqMod Manager et sauvegarder la configuration en cliquant sur le bouton "Sauvegarder"
Image
1 - A lire avant de poster un sujet
2 - Politique sur la signature.

Quand le sujet est résolu, pensez à ajouter la petite coche verte Image dans le titre initial en éditant votre premier message et non dans votre dernière réponse.
Merci


Toutes les extensions commerciales (templates ou modules payants) ne peuvent pas faire l'objet d'ouverture de sujet, prière de bien vouloir s'adresser au concepteur en cas de problème ou demande de renseignements.

Seul, on avance plus vite, à plusieurs on avance plus loin.
Avatar de l’utilisateur
LeorLindel
Administrateur
Administrateur
 
Messages: 4236
Inscription: 19 Fév 2010, 12:44
Localisation: Lutéce

Re: VirtualQMod le module le plus abouti pour les modificati

Messagepar LeorLindel » 10 Fév 2012, 18:04

La dernière version de vQmod ne nécessite plus de modifications à effectuer, il suffit de dé-zipper le pack de le charger sur son serveur et d'exécuter l'install automatique, en tapant dans la barre d'adresse : http://www.monsite/vqmod/install.

Je vous recommande aussi d'installer le Gestionnaire vQmod que vous trouverez ici.
Puis d'aller dans l'admin > Extensions > Modules > VqMod Manager et sauvegarder la configuration en cliquant sur le bouton "Sauvegarder"
Image
1 - A lire avant de poster un sujet
2 - Politique sur la signature.

Quand le sujet est résolu, pensez à ajouter la petite coche verte Image dans le titre initial en éditant votre premier message et non dans votre dernière réponse.
Merci


Toutes les extensions commerciales (templates ou modules payants) ne peuvent pas faire l'objet d'ouverture de sujet, prière de bien vouloir s'adresser au concepteur en cas de problème ou demande de renseignements.

Seul, on avance plus vite, à plusieurs on avance plus loin.
Avatar de l’utilisateur
LeorLindel
Administrateur
Administrateur
 
Messages: 4236
Inscription: 19 Fév 2010, 12:44
Localisation: Lutéce

Re: VirtualQMod le module le plus abouti pour les modificati

Messagepar sabtrefle » 09 Mar 2013, 17:15

J'ai une question pour l'installation de Vqmod manager, il suffit de mettre le dossier upload dans la racine ?

Car je ne vois pas le module parmi mes autres modules.
- Version d'OpenCart 1.5_FR
- Hébergeur 1&1
- Aucun modules installés
- Template par défaut modifié
- PHP5
Avatar de l’utilisateur
sabtrefle
Utilisateur enregistré
Utilisateur enregistré
 
Messages: 13
Inscription: 07 Mar 2013, 17:22

Re: VirtualQMod le module le plus abouti pour les modificati

Messagepar LeorLindel » 09 Mar 2013, 17:17

sabtrefle a écrit:J'ai une question pour l'installation de Vqmod manager, il suffit de mettre le dossier upload dans la racine ?

Non, il faut mettre les dossiers contenus dans le répertoire "upload" à la racine.
Image
1 - A lire avant de poster un sujet
2 - Politique sur la signature.

Quand le sujet est résolu, pensez à ajouter la petite coche verte Image dans le titre initial en éditant votre premier message et non dans votre dernière réponse.
Merci


Toutes les extensions commerciales (templates ou modules payants) ne peuvent pas faire l'objet d'ouverture de sujet, prière de bien vouloir s'adresser au concepteur en cas de problème ou demande de renseignements.

Seul, on avance plus vite, à plusieurs on avance plus loin.
Avatar de l’utilisateur
LeorLindel
Administrateur
Administrateur
 
Messages: 4236
Inscription: 19 Fév 2010, 12:44
Localisation: Lutéce

Re: VirtualQMod le module le plus abouti pour les modificati

Messagepar sabtrefle » 09 Mar 2013, 18:28

Merci LeorLindel ! Je vais régler le nouveau problème grrrrrr
- Version d'OpenCart 1.5_FR
- Hébergeur 1&1
- Aucun modules installés
- Template par défaut modifié
- PHP5
Avatar de l’utilisateur
sabtrefle
Utilisateur enregistré
Utilisateur enregistré
 
Messages: 13
Inscription: 07 Mar 2013, 17:22


Retourner vers vQmod

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités

cron