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 Imaxine » 30 Jan 2011, 19: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>Imaxine</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.
Imaxine
 
Messages: 3023
Inscrit le: 27 Juil 2009, 19:28

Re: VirtualQMod le module le plus abouti pour les modificati

Messagepar Marc » 01 Fév 2011, 16: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 Imaxine pour ce partage !
Seul on va plus vite, ensemble on va plus loin...
Image
Avatar de l’utilisateur
Marc
 
Messages: 105
Inscrit le: 03 Août 2010, 14:08
Localisation: France - Tours

Re: VirtualQMod le module le plus abouti pour les modificati

Messagepar Imaxine » 01 Fév 2011, 16: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.
Imaxine
 
Messages: 3023
Inscrit le: 27 Juil 2009, 19:28

Re: VirtualQMod le module le plus abouti pour les modificati

Messagepar Marc » 01 Fév 2011, 16: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...
Image
Avatar de l’utilisateur
Marc
 
Messages: 105
Inscrit le: 03 Août 2010, 14:08
Localisation: France - Tours

Re: VirtualQMod le module le plus abouti pour les modificati

Messagepar Imaxine » 01 Fév 2011, 17: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.
Imaxine
 
Messages: 3023
Inscrit le: 27 Juil 2009, 19:28

Re: VirtualQMod le module le plus abouti pour les modificati

Messagepar creation » 12 Avr 2011, 16: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
 
Messages: 7
Inscrit le: 30 Mars 2011, 19:38

Re: VirtualQMod le module le plus abouti pour les modificati

Messagepar michelk » 30 Juin 2011, 08: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
 
Messages: 3
Inscrit le: 01 Mai 2011, 14:48
Localisation: Paris, Cupertino CA et Austin, TX

Re: VirtualQMod le module le plus abouti pour les modificati

Messagepar Imaxine » 10 Fév 2012, 19: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"
Imaxine
 
Messages: 3023
Inscrit le: 27 Juil 2009, 19:28

Re: VirtualQMod le module le plus abouti pour les modificati

Messagepar Imaxine » 10 Fév 2012, 19: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"
Imaxine
 
Messages: 3023
Inscrit le: 27 Juil 2009, 19:28

Re: VirtualQMod le module le plus abouti pour les modificati

Messagepar sabtrefle » 09 Mars 2013, 18: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.5.1_FR
- Hébergeur 1&1
- modules installés :
- Remove Wishlist and Compare
- telephone-always-optionnal
- Template par défaut modifié
- PHP5
Avatar de l’utilisateur
sabtrefle
 
Messages: 23
Inscrit le: 07 Mars 2013, 18:22

Re: VirtualQMod le module le plus abouti pour les modificati

Messagepar Imaxine » 09 Mars 2013, 18: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.
Imaxine
 
Messages: 3023
Inscrit le: 27 Juil 2009, 19:28

Re: VirtualQMod le module le plus abouti pour les modificati

Messagepar sabtrefle » 09 Mars 2013, 19:28

Merci Imaxine ! Je vais régler le nouveau problème grrrrrr
- Version d'OpenCart 1.5.5.1_FR
- Hébergeur 1&1
- modules installés :
- Remove Wishlist and Compare
- telephone-always-optionnal
- Template par défaut modifié
- PHP5
Avatar de l’utilisateur
sabtrefle
 
Messages: 23
Inscrit le: 07 Mars 2013, 18:22

Re: VirtualQMod le module le plus abouti pour les modificati

Messagepar Thibout » 03 Juin 2013, 11:59

Bonjour,

je me permets de participer à ce post pour informer ceux qui aurait une erreur interne de serveur lors de l'installation de vqmod.
En effet, après avoir uploader votre dossier, donné les droits d'accès aux fichiers index (ou les avoir modifiés dans le cas d'une installation manuel), vous tapez votre adresse /vqmod/install et la vous tombez sur une INTERNAL SERVER ERROR...

Après plusieurs recherches sur différents forum, il suffit simplement de supprimer le .htaccess qui se trouve dans votre dossier vqmod.
Une fois le .htaccess supprimé du dossier vqmod, vous lancez l'installation et obtenez le message suivant : VQMOD HAS BEEN INSTALLED ON YOUR SYSTEM!

Pour ma part, je n'ai trouvé cette information qu'après un temps dingue de recherche... Et si cette information est quelque part sur le forum, je pense qu'il serait bon de la rajouter à la suite du topic d'installation du mod :D

Une excellente journée à tous :)
Opencart : 1.5.5.1
Thème : aucun
Hébergeur : One.com
Thibout
 
Messages: 17
Inscrit le: 03 Juin 2013, 10:57

Re: VirtualQMod le module le plus abouti pour les modificati

Messagepar Imaxine » 03 Juin 2013, 12:25

Merci pour cette information Thibout :)
Imaxine
 
Messages: 3023
Inscrit le: 27 Juil 2009, 19:28

Re: VirtualQMod le module le plus abouti pour les modificati

Messagepar silverwolf » 19 Juil 2013, 03:22

Bonjour à tous
J’ai finalement suivi le conseil qui m’a été donné d’installer vqmod. L’installation c’est bien passée pour ma boutique.

J’ai cependant ouvert une autre boutique pour ma copine, et tentée d’installer vqmod, malheureusement j’ai changé le nom de son administration (admin) pour (admincontrol).
J’ai bien sûr changé les fichiers mentionner dans ce topic : http://forum.opencart-france.com/soutien-general/changer-l-acces-admin-sur-opencart-t617.html, ainsi que ceux de vqmod, mais vqmod ne fonctionne toujours pas sur la boutique a ma copine.

J’ai le message installation réussi, mais impossible d’installer des modules supplémentaires avec vqmod.
La boutique à ma copine est la version 1.5.1.1 et la template par défaut modifiée au niveau du css. La boutique est ici : http://www.decoadhesif.net

Je sais qu’il y as aussi une modif a faire au niveau path replace.php situer dans le dossier vqmod, mais quand je l’applique le site devient blanc.

Pouvez-vous m’aider? svp
Dernière édition par silverwolf le 20 Juil 2013, 17:25, édité 1 fois au total.
silverwolf
 
Messages: 56
Inscrit le: 30 Déc 2012, 09:38
Localisation: Canada

Suivant

Retour vers vQmod

Qui est en ligne ?

Utilisateur(s) parcourant actuellement ce forum : Aucun utilisateur inscrit et 1 invité

Copyright © 2009-2013 OpenCart France - Tous droits réservés