[Résolu] Problème de langue dans le module minislider

Ce forum est destiné uniquement aux modules de langues.

[Résolu] Problème de langue dans le module minislider

Messagepar cricri92 » 17 Juin 2011, 08:32

Bonjour
J'ai trouvé sur le forum anglais un module permettant de faire défiler les produits d'une boutique. Ce module se nomme "Minislider". voir exemple sur ma boutique : http://www.decapod.fr/boutique. il fonctionne très bien, mais le problème est qu'il inscrit mes produits en anglais et non en français, car je travail actuellement sur la traduction de mon site en langue anglaise. La langue par défaut dans opencart est le français. Voici le code de la partie catalog.
Code: Tout sélectionner
<?php
class ControllerModuleminislider extends Controller {
   public function index() {

      if ($this->config->get('iconmodule_status')) {
         $this->data['iconmodule'] = html_entity_decode($this->config->get('iconmodule_code'), ENT_QUOTES);
      } else {
         $this->data['iconmodule'] = '';
      }

      $this->load->model('catalog/minislider');
      $this->load->model('catalog/product');
      $this->load->model('catalog/review');
      $this->load->model('tool/seo_url');
      $this->load->model('tool/image');
      
      $this->data['heading_title'] = htmlspecialchars_decode($this->config->get('minislider_title'));
      $this->data['show_category'] = $this->config->get('minislider_category');
      $this->data['show_effect'] = $this->config->get('minislider_effect');
      
      $this->data['products'] = array();

      foreach ($this->model_catalog_minislider->getRandomProductByCategoryId($this->data['show_category']) as $result) {         
         if ($result['image']) {
            $image = $result['image'];
         } else {
            $image = 'no_image.jpg';
         }
         
         $rating = $this->model_catalog_review->getAverageRating($result['product_id']);   
         
         $special = FALSE;
         
         $discount = $this->model_catalog_product->getProductDiscount($result['product_id']);
         
         if ($discount) {
            $price = $this->currency->format($this->tax->calculate($discount, $result['tax_class_id'], $this->config->get('config_tax')));
         } else {
            $price = $this->currency->format($this->tax->calculate($result['price'], $result['tax_class_id'], $this->config->get('config_tax')));
         
            $special = $this->model_catalog_product->getProductSpecial($result['product_id']);
         
            if ($special) {
               $special = $this->currency->format($this->tax->calculate($special, $result['tax_class_id'], $this->config->get('config_tax')));
            }                  
         }
            
             $this->data['products'][] = array(
               'name'    => $result['name'],
            'model'   => $result['model'],
               'rating'  => $rating,
            'stars'   => sprintf($this->language->get('text_stars'), $rating),
            'thumb'   => $this->model_tool_image->resize($image, $this->config->get('config_image_product_width'), $this->config->get('config_image_product_height')),
               'price'   => $price,
            'special' => $special,
            'href'    => $this->model_tool_seo_url->rewrite(HTTP_SERVER . 'index.php?route=product/product&product_id=' . $result['product_id'])
             );
      }
      
      if (!$this->config->get('config_customer_price')) {
         $this->data['display_price'] = TRUE;
      } elseif ($this->customer->isLogged()) {
         $this->data['display_price'] = TRUE;
      } else {
         $this->data['display_price'] = FALSE;
      }
      
      $this->id       = 'minislider';
      $this->template = $this->config->get('config_template') . '/template/module/minislider.tpl';
      $this->render();
   }
}
?>

Quelqu'un pourrait il me dire ce qu'il manque dans ce code pour avoir la description de mes produits en français.
Grand merci par avance.
Dernière édition par cricri92 le 23 Juin 2011, 06:31, édité 2 fois au total.
Version Opencart 1.4.8 Fr sur serveur Infomaniak
Version Opencart 1.5.4.1 sur JOOMLA avec module AceShop
modules additionnels : CMS Categories, Stock report, Product extra fields, Poll, Visiteur counter, NextAndPreviousProductLink, MiniSlider
Avatar de l’utilisateur
cricri92
 
Messages: 139
Inscrit le: 02 Juil 2010, 05:28
Localisation: haut de Seine

Re: Probleme de langue dans le module minislider

Messagepar Imaxine » 18 Juin 2011, 11:56

cricri92 a écrit:Bonjour
J'ai trouvé sur le forum anglais un module permettant de faire défiler les produits d'une boutique
Il aurait été logique que tu mettes le lien qui permet de télécharger ce module !!
Imaxine
 
Messages: 3023
Inscrit le: 27 Juil 2009, 19:28

Re: Problème de langue dans le module minislider

Messagepar Imaxine » 19 Juin 2011, 13:37

Je vois que tu as solutionné ton problème, pourrais-tu donner l'explication pour ceux qui rencontrerait ce manque ainsi que mettre |Résolu] dans le titre de ton sujet.

Nous t'en remercions.
Imaxine
 
Messages: 3023
Inscrit le: 27 Juil 2009, 19:28

Re: Problème de langue dans le module minislider

Messagepar Fred » 19 Juin 2011, 22:19

Hello,

Je suis volontier preneur pour le lien vers ton module Minislider (j'ai cherché en vain..)

Merci!
Version 1.4.9 française / Template Black Village / Hébergé par Easy-hébergement
Fred
 
Messages: 17
Inscrit le: 19 Déc 2010, 01:19

Re: Problème de langue dans le module minislider

Messagepar cricri92 » 21 Juin 2011, 09:48

J'ai trouvé ce module à cette adresse :
http://eliesdesign.com/index.php?route=product/category&path=48_87
Par contre je n'ai pas résolu mon problème, car les produits qui s'affichent en français sont en faite dans la partie anglaise, dès que je mets le titre du produit dans la partie anglaise, c'est le nom en anglais qui apparait et non le titre français.
Version Opencart 1.4.8 Fr sur serveur Infomaniak
Version Opencart 1.5.4.1 sur JOOMLA avec module AceShop
modules additionnels : CMS Categories, Stock report, Product extra fields, Poll, Visiteur counter, NextAndPreviousProductLink, MiniSlider
Avatar de l’utilisateur
cricri92
 
Messages: 139
Inscrit le: 02 Juil 2010, 05:28
Localisation: haut de Seine

Re: Problème de langue dans le module minislider

Messagepar Imaxine » 21 Juin 2011, 10:18

Je vais tester ce module et voir les modifications ou corrections à effectuer.
Imaxine
 
Messages: 3023
Inscrit le: 27 Juil 2009, 19:28

Re: Problème de langue dans le module minislider

Messagepar Imaxine » 21 Juin 2011, 14:27

Déjà il y a des oublis ou omissions et du code inutile au niveau des langues (pas les fichiers "language" mais le fonctionnement des langues), puisque dans les paramétrages du module, il y a dans la partie admin le paramètre "Titre" à remplir.
Or celui-ci n'est pas en multilingue puis se trouve déjà paramétré dans le fichier de langue de la boutique > catalog/language/english/module/minislider.php.
Ce paramètre étant inutile en l'état, on peut donc, sans souci supprimer :

Dans admin/controller/module/minislider.php, ces lignes :
Code: Tout sélectionner
      if (isset($this->request->post['minislider_title'])) {
         $this->data['minislider_title'] = $this->request->post['minislider_title'];
      } else {
         $this->data['minislider_title'] = $this->config->get('minislider_title');
      }

Puis ces lignes :
Code: Tout sélectionner
         if($this->request->post['minislider_title'] == ''){
            $this->error['warning'] = "You specify a title for your Minislider.";
         }
Dans
admin/language/english/module/minislider.php, ces lignes :
Code: Tout sélectionner
$_['entry_title']   = 'Minislider Title:';
Ainsi que pour les autres langues que vous avez pu créer.
Dans admin/view/template/module/minislider.tpl, ces lignes :
Code: Tout sélectionner
      <tr>
        <td><?php echo $entry_title; ?></td>
        <td><input type="text" name="minislider_title" value="<?php echo $minislider_title; ?>" size="30" /></td>
      </tr>

Comme cela, le titre de la sideboxe correspondra réellement à celui se trouvant dans le fichier de langue.
Imaxine
 
Messages: 3023
Inscrit le: 27 Juil 2009, 19:28

Re: Problème de langue dans le module minislider

Messagepar Imaxine » 21 Juin 2011, 15:44

Il manquait la jointure de la langue dans la requête situé dans le fichier catalog/model/catalog/minislider.php

Chercher cette ligne :
Code: Tout sélectionner
      $sql = "SELECT *, pd.name AS name, p.image, m.name AS manufacturer, ss.name AS stock, (SELECT AVG(r.rating) FROM " . DB_PREFIX . "review r WHERE p.product_id = r.product_id GROUP BY r.product_id) AS rating FROM " . DB_PREFIX . "product p LEFT JOIN " . DB_PREFIX . "product_description pd ON (p.product_id = pd.product_id) LEFT JOIN " . DB_PREFIX . "manufacturer m ON (p.manufacturer_id = m.manufacturer_id) LEFT JOIN " . DB_PREFIX . "stock_status ss ON (p.stock_status_id = ss.stock_status_id) LEFT JOIN " . DB_PREFIX . "product_to_category p2c ON (p.product_id = p2c.product_id) WHERE p.status = '1' AND p.date_available <= NOW()";
La remplacer par celle-ci :
Code: Tout sélectionner
      $sql = "SELECT *, pd.name AS name, p.image, m.name AS manufacturer, ss.name AS stock, (SELECT AVG(r.rating) FROM " . DB_PREFIX . "review r WHERE p.product_id = r.product_id GROUP BY r.product_id) AS rating FROM " . DB_PREFIX . "product p LEFT JOIN " . DB_PREFIX . "product_description pd ON (p.product_id = pd.product_id) LEFT JOIN " . DB_PREFIX . "manufacturer m ON (p.manufacturer_id = m.manufacturer_id) LEFT JOIN " . DB_PREFIX . "stock_status ss ON (p.stock_status_id = ss.stock_status_id) LEFT JOIN " . DB_PREFIX . "product_to_category p2c ON (p.product_id = p2c.product_id) WHERE p.status = '1' AND p.date_available <= NOW() AND pd.language_id = '" . (int)$this->config->get('config_language_id') . "'";

Cela devrait fonctionner, maintenant.
Imaxine
 
Messages: 3023
Inscrit le: 27 Juil 2009, 19:28

Re: Problème de langue dans le module minislider

Messagepar Imaxine » 21 Juin 2011, 16:22

Et afin de finaliser le tout, il faut aussi traduire "All" qui se situe dans le menu déroulant du choix des catégories.

Pour ce faire il faut,

Dans le fichier admin/controller/module/minislider.php

Ajouter cette ligne :
Code: Tout sélectionner
      $this->data['text_all'] = $this->language->get('text_all');
Avant cette ligne :
Code: Tout sélectionner
      $this->data['text_enabled'] = $this->language->get('text_enabled');

Dans le fichier admin/language/french/module/minislider.php

Ajouter cette ligne :
Code: Tout sélectionner
$_['text_all']         = '----- Toutes les cat&eacute;gories -----';
Ainsi que dans les autres fichiers de langues.

Dans le fichier admin/view/template/module/minislider.tpl

Chercher ces lignes :
Code: Tout sélectionner
      <tr>
      <td width="30%"><?php echo $entry_category ?></td>
      <td><select name="minislider_category">
            <option value="0"
            <?php
              if($minislider_category == 0) {
                 ?>selected<?php
            }?>
            >All</option>
            <?php
            foreach($entry_categories as $category){
               ?>
                <option value="<?php echo $category['category_id']; ?>" <?php if($category['category_id'] == $minislider_category){ echo "selected"; }?>><?php echo $category['name']; ?></option>
                <?php
            }
            ?>
          </select></td>
      </tr>
Et les remplacer par celles-ci :
Code: Tout sélectionner
     <tr>
      <td width="30%"><?php echo $entry_category; ?></td>
      <td><select name="minislider_category">
        <option value="0"><?php echo $text_all; ?></option>
        <?php foreach ($entry_categories as $category) { ?>
        <?php if ($category['category_id'] == $minislider_category) { ?>
        <option value="<?php echo $category['category_id']; ?>" selected="selected"><?php echo $category['name']; ?></option>
        <?php } else { ?>
        <option value="<?php echo $category['category_id']; ?>"><?php echo $category['name']; ?></option>
        <?php } ?>
        <?php } ?>
      </select></td>
     </tr>
Imaxine
 
Messages: 3023
Inscrit le: 27 Juil 2009, 19:28

Re: Problème de langue dans le module minislider

Messagepar cricri92 » 22 Juin 2011, 09:34

Merci Imaxine pour toutes tes réponses pour ce module.
Je vais rapidement faire les modifications et vous tenir informé.
Encore un grand merci pour toutes tes interventions qui nous aides énormément pour valoriser nos sites internet.
Version Opencart 1.4.8 Fr sur serveur Infomaniak
Version Opencart 1.5.4.1 sur JOOMLA avec module AceShop
modules additionnels : CMS Categories, Stock report, Product extra fields, Poll, Visiteur counter, NextAndPreviousProductLink, MiniSlider
Avatar de l’utilisateur
cricri92
 
Messages: 139
Inscrit le: 02 Juil 2010, 05:28
Localisation: haut de Seine

Re: Problème de langue dans le module minislider

Messagepar cricri92 » 22 Juin 2011, 12:37

J'ai effectué tout les changements, mais le problème maintenant je n'ai plus rien aucun produit qui s’affiche dans le module.
Version Opencart 1.4.8 Fr sur serveur Infomaniak
Version Opencart 1.5.4.1 sur JOOMLA avec module AceShop
modules additionnels : CMS Categories, Stock report, Product extra fields, Poll, Visiteur counter, NextAndPreviousProductLink, MiniSlider
Avatar de l’utilisateur
cricri92
 
Messages: 139
Inscrit le: 02 Juil 2010, 05:28
Localisation: haut de Seine

Re: Problème de langue dans le module minislider

Messagepar cricri92 » 22 Juin 2011, 12:47

L'erreur vient dans la partie admin. Je n'ai pas la rubrique "Toutes catégories" dans le choix, j'ai le message suivant qui s'affiche.
[img]
minislider.PNG
[/img]
Pièces jointes
minislider.PNG
minislider.PNG (11.86 Kio) Consulté 9419 fois
Version Opencart 1.4.8 Fr sur serveur Infomaniak
Version Opencart 1.5.4.1 sur JOOMLA avec module AceShop
modules additionnels : CMS Categories, Stock report, Product extra fields, Poll, Visiteur counter, NextAndPreviousProductLink, MiniSlider
Avatar de l’utilisateur
cricri92
 
Messages: 139
Inscrit le: 02 Juil 2010, 05:28
Localisation: haut de Seine

Re: Problème de langue dans le module minislider

Messagepar cricri92 » 22 Juin 2011, 12:56

J'ai trouver l'erreur pour la partie "Admin"
"Toutes les catégories " s'affiche bien, mais j'ai toujours rien dans le module dans la boutique, ni le titre, ni les images. Par contre si je choisi une seule catégorie, là les images défilent dans le module, mais toujours pas de titre du module.
Version Opencart 1.4.8 Fr sur serveur Infomaniak
Version Opencart 1.5.4.1 sur JOOMLA avec module AceShop
modules additionnels : CMS Categories, Stock report, Product extra fields, Poll, Visiteur counter, NextAndPreviousProductLink, MiniSlider
Avatar de l’utilisateur
cricri92
 
Messages: 139
Inscrit le: 02 Juil 2010, 05:28
Localisation: haut de Seine

Re: Problème de langue dans le module minislider

Messagepar Imaxine » 22 Juin 2011, 13:19

Alors repars sur une version vierge et fait toutes les modifications sauf celle de la traduction de "All" et reviens nous dire ce qu'il en est.
Imaxine
 
Messages: 3023
Inscrit le: 27 Juil 2009, 19:28

Re: Problème de langue dans le module minislider

Messagepar cricri92 » 22 Juin 2011, 13:46

J'ai remis le module dans sa configuration inital, j'ai effectué les changements sauf celle de "ALL", mais idem, pas d'images qui défiles dan "all", mais dans les autres catégories pas de soucis, les images défiles bien et en français.
Version Opencart 1.4.8 Fr sur serveur Infomaniak
Version Opencart 1.5.4.1 sur JOOMLA avec module AceShop
modules additionnels : CMS Categories, Stock report, Product extra fields, Poll, Visiteur counter, NextAndPreviousProductLink, MiniSlider
Avatar de l’utilisateur
cricri92
 
Messages: 139
Inscrit le: 02 Juil 2010, 05:28
Localisation: haut de Seine

Suivant

Retour vers Langues

Qui est en ligne ?

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

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