Date de modification d'un article

Programmation, discussions et suggestions pour l'amélioration de OpenCart

Date de modification d'un article

Messagepar lordbdp » 08 Nov 2011, 18:14

Cher Papa Noël Imaxine, pourrais-tu mettre à mon sapin un code me permettant d'avoir une nouvelle colonne coté admin pour les articles dans laquelle serait affichée la date de dernière modification du produit ?

Un grand merci d'avance pour ta gentillesse.
Open Cart 1.5.5.1 FR
Hébergement Planethoster
Avatar de l’utilisateur
lordbdp
 
Messages: 90
Inscrit le: 11 Oct 2011, 22:36

Re: Date de modification d'un article

Messagepar Imaxine » 08 Nov 2011, 19:59

Je présume que tu désires avoir cette colonne dans la liste de produits (product_list.php), n'est-ce pas ?
Imaxine
 
Messages: 3023
Inscrit le: 27 Juil 2009, 19:28

Re: Date de modification d'un article

Messagepar Imaxine » 09 Nov 2011, 05:46

Dans le fichier admin/controller/catalog/product.php

Chercher (ligne 382) :
Code: Tout sélectionner
            'status'     => ($result['status'] ? $this->language->get('text_enabled') : $this->language->get('text_disabled')),
Ajouter dessous :
Code: Tout sélectionner
            'date_modified'      => $result['date_modified'],
Chercher (ligne 400) :
Code: Tout sélectionner
      $this->data['column_status'] = $this->language->get('column_status');      
Ajouter dessous :
Code: Tout sélectionner
      $this->data['column_date_modified'] = $this->language->get('column_date_modified');
Chercher (ligne 460) :
Code: Tout sélectionner
      $this->data['sort_status'] = $this->url->link('catalog/product', 'token=' . $this->session->data['token'] . '&sort=p.status' . $url, 'SSL');
Ajouter dessous :
Code: Tout sélectionner
      $this->data['sort_date_modified'] = $this->url->link('catalog/product', 'token=' . $this->session->data['token'] . '&sort=p.date_modified' . $url, 'SSL');

Dans le fichier admin/language/french/catalog/product.php

Chercher (ligne 24) :
Code: Tout sélectionner
$_['column_status']         = 'État';
Ajouter dessous :
Code: Tout sélectionner
$_['column_date_modified']   = 'Date de modification';

Dans le fichier admin/model/catalog/product.php

Chercher (ligne 395) :
Code: Tout sélectionner
            'p.status',
Ajouter dessous :
Code: Tout sélectionner
            'p.date_modified',

Dans le fichier admin/view/template/catalog/product_list.tpl

Chercher (ligne 46 à 50) :
Code: Tout sélectionner
              <td class="left"><?php if ($sort == 'p.status') { ?>
                <a href="<?php echo $sort_status; ?>" class="<?php echo strtolower($order); ?>"><?php echo $column_status; ?></a>
                <?php } else { ?>
                <a href="<?php echo $sort_status; ?>"><?php echo $column_status; ?></a>
                <?php } ?></td>
Ajouter dessous :
Code: Tout sélectionner
              <td class="left"><?php if ($sort == 'p.date_modified') { ?>
                <a href="<?php echo $sort_date_modified; ?>" class="<?php echo strtolower($order); ?>"><?php echo $column_date_modified; ?></a>
                <?php } else { ?>
                <a href="<?php echo $sort_date_modified; ?>"><?php echo $column_date_modified; ?></a>
                <?php } ?></td>                               
Chercher (ligne 62 à 73) :
Code: Tout sélectionner
              <td><select name="filter_status">
                  <option value="*"></option>
                  <?php if ($filter_status) { ?>
                  <option value="1" selected="selected"><?php echo $text_enabled; ?></option>
                  <?php } else { ?>
                  <option value="1"><?php echo $text_enabled; ?></option>
                  <?php } ?>
                  <?php if (!is_null($filter_status) && !$filter_status) { ?>
                  <option value="0" selected="selected"><?php echo $text_disabled; ?></option>
                  <?php } else { ?>
                  <option value="0"><?php echo $text_disabled; ?></option>
                  <?php } ?>
Ajouter dessous :
Code: Tout sélectionner
              <td></td>
Chercher (ligne 101) :
Code: Tout sélectionner
              <td class="left"><?php echo $product['status']; ?></td>
Ajouter dessous :
Code: Tout sélectionner
              <td class="left"><?php echo $product['date_modified']; ?></td>

Je n'ai pas créé de zone de filtre car inutile. La date de modification étant mise en forme comme cela (2011-11-09 05:26:41), le filtrage ne peut se faire. Par contre on peut utiliser le tri par ordre.

Voila, je te laisse le soin maintenant de créer le fichier XML pour vQmod, que tu mettras dans ces forums, j'en suis sûr.

PS : Et moi, j'ai quoi sous le sapin,......des épines ?
Imaxine
 
Messages: 3023
Inscrit le: 27 Juil 2009, 19:28

Re: Date de modification d'un article

Messagepar lordbdp » 09 Nov 2011, 09:52

Oh grand merci pour notre Gourou adoré !

Je vais de suite m'affairer à tenter de réaliser le vqmod correspondant selon ta demande suprême...
Open Cart 1.5.5.1 FR
Hébergement Planethoster
Avatar de l’utilisateur
lordbdp
 
Messages: 90
Inscrit le: 11 Oct 2011, 22:36

Re: Date de modification d'un article

Messagepar Imaxine » 09 Nov 2011, 10:15

lordbdp a écrit:Je vais de suite m'affairer à tenter de réaliser le vqmod correspondant...
... et à mettre [Résolu] après test, bien entendu.
Imaxine
 
Messages: 3023
Inscrit le: 27 Juil 2009, 19:28

Re: Date de modification d'un article

Messagepar lordbdp » 09 Nov 2011, 10:29

Alors quand je lance le fichier xml créé il me dit
Warning: VQMod script XML syntax does not appear to be valid!


N'ayant pas trouvé de tutoriel pour vqmod (les infos sont assez succinctes sur le web) je vous donne le code réalisé :
Code: Tout sélectionner
<modification>

   <id>Ajout d'une colonne date de modification pour la liste produits coté admin</id>
   <version>1.0.0</version>
   <vqmver>2.1.2</vqmver>
   <author>Imaxine</author>

   <file name="admin/controller/catalog/product.php">
        <operation>
            <search position="after"><![CDATA[
[ 'status'     => ($result['status'] ? $this->language->get('text_enabled') : $this->language->get('text_disabled')), ]
         ]]></search>
            <add><![CDATA[
'date_modified'      => $result['date_modified'],
         ]]></add>
        </operation>
        <operation>
            <search position="after"><![CDATA[
[ $this->data['column_status'] = $this->language->get('column_status'); ]
         ]]></search>
            <add><![CDATA[
$this->data['column_date_modified'] = $this->language->get('column_date_modified');
         ]]></add>
        </operation>
        <operation>
            <search position="after"><![CDATA[
[ $this->data['sort_status'] = $this->url->link('catalog/product', 'token=' . $this->session->data['token'] . '&sort=p.status' . $url, 'SSL'); ]
         ]]></search>
            <add><![CDATA[
$this->data['sort_date_modified'] = $this->url->link('catalog/product', 'token=' . $this->session->data['token'] . '&sort=p.date_modified' . $url, 'SSL');
         ]]></add>
        </operation>
        <operation>
            <search position="after"><![CDATA[
[ $_['column_status']         = '&Eacute;tat'; ]
         ]]></search>
            <add><![CDATA[
$_['column_date_modified']   = 'Date de modification';
         ]]></add>
        </operation>
        <operation>
            <search position="after"><![CDATA[
[ 'p.status', ]
         ]]></search>
            <add><![CDATA[
'p.date_modified',
         ]]></add>
        </operation>
   </file>   
   
   <file name="admin/view/template/catalog/product_list.tpl">
        <operation>
            <search position="after"><![CDATA[
[ <td class="left"><?php if ($sort == 'p.status') { ?>
                <a href="<?php echo $sort_status; ?>" class="<?php echo strtolower($order); ?>"><?php echo $column_status; ?></a>
                <?php } else { ?>
                <a href="<?php echo $sort_status; ?>"><?php echo $column_status; ?></a>
                <?php } ?></td> ]
         ]]></search>
            <add><![CDATA[
<td class="left"><?php if ($sort == 'p.date_modified') { ?>
                <a href="<?php echo $sort_date_modified; ?>" class="<?php echo strtolower($order); ?>"><?php echo $column_date_modified; ?></a>
                <?php } else { ?>
                <a href="<?php echo $sort_date_modified; ?>"><?php echo $column_date_modified; ?></a>
                <?php } ?></td>
         ]]></add>
        </operation>
        <operation>
            <search position="after"><![CDATA[
[ <td><select name="filter_status">
                  <option value="*"></option>
                  <?php if ($filter_status) { ?>
                  <option value="1" selected="selected"><?php echo $text_enabled; ?></option>
                  <?php } else { ?>
                  <option value="1"><?php echo $text_enabled; ?></option>
                  <?php } ?>
                  <?php if (!is_null($filter_status) && !$filter_status) { ?>
                  <option value="0" selected="selected"><?php echo $text_disabled; ?></option>
                  <?php } else { ?>
                  <option value="0"><?php echo $text_disabled; ?></option>
                  <?php } ?> ]
         ]]></search>
            <add><![CDATA[
<td></td>
         ]]></add>
        </operation>
        <operation>
            <search position="after"><![CDATA[
[ <td class="left"><?php echo $product['status']; ?></td> ]
         ]]></search>
            <add><![CDATA[
<td class="left"><?php echo $product['date_modified']; ?></td>
         ]]></add>
        </operation>
   </file>

</modification>


PS : Papa Noël tu n'auras pas de cadeau puisque c'est toi qui les distribues ;) Mais je demanderais à ton supérieur si on peut obtenir une dérogation :?
Open Cart 1.5.5.1 FR
Hébergement Planethoster
Avatar de l’utilisateur
lordbdp
 
Messages: 90
Inscrit le: 11 Oct 2011, 22:36

Re: Date de modification d'un article

Messagepar Imaxine » 09 Nov 2011, 11:53

Il est logique qu'il t"affiche cette erreur car :

- tes crochets d'ouverture et de fermeture se trouvent désolidarisés de la commande.
- Tu as des crochets supplémentaires
- Puis tu as omis l'appel de deux fichiers "admin/language/french/catalog/product.php" et "admin/model/catalog/product.php" ce qui entraine que ces modifications sont prises en compte dans le fichier "admin/controller/catalog/product.php".

Compare mon fichier au tien et constateras où se trouve tes erreurs.

Code: Tout sélectionner
<modification>

   <id>Add Column Date Modified In Product List In Admin.xml</id>
   <version>1.0.0</version>
   <vqmver>2.1.2</vqmver>
   <author>Imaxine</author>

   <file name="admin/controller/catalog/product.php">
      <operation>
            <search position="after"><![CDATA[
            'status'     => ($result['status'] ? $this->language->get('text_enabled') : $this->language->get('text_disabled')),
            ]]></search>
            <add><![CDATA[
            'date_modified'      => $result['date_modified'],
            ]]></add>
        </operation>
      <operation>
            <search position="after"><![CDATA[
      $this->data['column_status'] = $this->language->get('column_status');      
            ]]></search>
            <add><![CDATA[
      $this->data['column_date_modified'] = $this->language->get('column_date_modified');
            ]]></add>
        </operation>
      <operation>
            <search position="after"><![CDATA[
      $this->data['sort_status'] = $this->url->link('catalog/product', 'token=' . $this->session->data['token'] . '&sort=p.status' . $url, 'SSL');
            ]]></search>
            <add><![CDATA[
      $this->data['sort_date_modified'] = $this->url->link('catalog/product', 'token=' . $this->session->data['token'] . '&sort=p.date_modified' . $url, 'SSL');
            ]]></add>
        </operation>
   </file>
   
   <file name="admin/language/french/catalog/product.php">
      <operation>
            <search position="after"><![CDATA[
$_['column_status']         = '&Eacute;tat';
            ]]></search>
            <add><![CDATA[
$_['column_date_modified']   = 'Date de modification';
            ]]></add>
        </operation>
   </file>
   
   <file name="admin/model/catalog/product.php">
      <operation error="skip|abort">
            <search position="after"><![CDATA[
         if (isset($data['filter_status']) && !is_null($data['filter_status'])) {
            $sql .= " AND p.status = '" . (int)$data['filter_status'] . "'";
         }
            ]]></search>
            <add><![CDATA[
         
         if (isset($data['filter_date_modified']) && !is_null($data['filter_date_modified'])) {
            $sql .= " AND p.date_modified = '" . (int)$data['filter_date_modified'] . "'";
         }
            ]]></add>
        </operation>
      <operation error="skip|abort">
            <search position="after"><![CDATA[
            'p.status',
            ]]></search>
            <add><![CDATA[
            'p.date_modified',
            ]]></add>
        </operation>
      <operation error="skip|abort">
            <search position="after"><![CDATA[
      if (isset($data['filter_status']) && !is_null($data['filter_status'])) {
         $sql .= " AND p.status = '" . (int)$data['filter_status'] . "'";
      }
            ]]></search>
            <add><![CDATA[
      
      if (isset($data['filter_date_modified']) && !is_null($data['filter_date_modified'])) {
         $sql .= " AND p.date_modified = '" . (int)$data['filter_date_modified'] . "'";
      }
            ]]></add>
        </operation>
   </file>
   
   <file name="admin/view/template/catalog/product_list.tpl">
      <operation error="skip|abort">
            <search position="after"><![CDATA[
              <td class="left"><?php if ($sort == 'p.status') { ?>
                <a href="<?php echo $sort_status; ?>" class="<?php echo strtolower($order); ?>"><?php echo $column_status; ?></a>
                <?php } else { ?>
                <a href="<?php echo $sort_status; ?>"><?php echo $column_status; ?></a>
                <?php } ?></td>
            ]]></search>
            <add><![CDATA[
              <td class="left"><?php if ($sort == 'p.date_modified') { ?>
                <a href="<?php echo $sort_date_modified; ?>" class="<?php echo strtolower($order); ?>"><?php echo $column_date_modified; ?></a>
                <?php } else { ?>
                <a href="<?php echo $sort_date_modified; ?>"><?php echo $column_date_modified; ?></a>
                <?php } ?></td>                               
            ]]></add>
        </operation>
      <operation error="skip|abort">
            <search position="after"><![CDATA[
              <td><select name="filter_status">
                  <option value="*"></option>
                  <?php if ($filter_status) { ?>
                  <option value="1" selected="selected"><?php echo $text_enabled; ?></option>
                  <?php } else { ?>
                  <option value="1"><?php echo $text_enabled; ?></option>
                  <?php } ?>
                  <?php if (!is_null($filter_status) && !$filter_status) { ?>
                  <option value="0" selected="selected"><?php echo $text_disabled; ?></option>
                  <?php } else { ?>
                  <option value="0"><?php echo $text_disabled; ?></option>
                  <?php } ?>
            ]]></search>
            <add><![CDATA[
           <td></td>
            ]]></add>
        </operation>
      <operation error="skip|abort">
            <search position="after"><![CDATA[
              <td class="left"><?php echo $product['status']; ?></td>
            ]]></search>
            <add><![CDATA[
              <td class="left"><?php echo $product['date_modified']; ?></td>
            ]]></add>
        </operation>
   </file>

</modification>


Et moi qui voulais éviter de faire le fichier XML, je me le suis coltiné quand même.
Imaxine
 
Messages: 3023
Inscrit le: 27 Juil 2009, 19:28

Re: Date de modification d'un article

Messagepar lordbdp » 09 Nov 2011, 12:40

Désolé mais sans tutos c'est un peu la jungle pour en réaliser un nickel du premier coups...

Merci pour ton travail mais ça ne s'affiche pas de mon coté. Je bascule en mode debug pour voir...
Open Cart 1.5.5.1 FR
Hébergement Planethoster
Avatar de l’utilisateur
lordbdp
 
Messages: 90
Inscrit le: 11 Oct 2011, 22:36

Re: Date de modification d'un article

Messagepar Imaxine » 09 Nov 2011, 13:11

J'ai modifié le fichier XML, tu peux le reprendre dans le topic précédent.
Imaxine
 
Messages: 3023
Inscrit le: 27 Juil 2009, 19:28

Re: Date de modification d'un article

Messagepar lordbdp » 09 Nov 2011, 13:18

Désolé mais pas de changements de mon coté. Ca marche chez toi ?
Open Cart 1.5.5.1 FR
Hébergement Planethoster
Avatar de l’utilisateur
lordbdp
 
Messages: 90
Inscrit le: 11 Oct 2011, 22:36

Re: Date de modification d'un article

Messagepar Imaxine » 09 Nov 2011, 13:39

A moitié, y a quand même un problème d'affichage (case tronquée). Souvent ça le fait avec les XML vQmod, je ne sais pas à quoi cela est dû !

Sinon, tu peux modifier les fichiers originaux !
Imaxine
 
Messages: 3023
Inscrit le: 27 Juil 2009, 19:28

Re: Date de modification d'un article

Messagepar lordbdp » 09 Nov 2011, 13:45

Je n'ai rien peut-être du fait d'avoir la dernière version de vQmod :?

C'est dommage de ne pas profiter de ce système afin d'éviter de toucher au core. Mais si c'est la seule solution...

Merci encore.
Open Cart 1.5.5.1 FR
Hébergement Planethoster
Avatar de l’utilisateur
lordbdp
 
Messages: 90
Inscrit le: 11 Oct 2011, 22:36


Retour vers Développement

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