Onglet supplémentaire dans la fiche produit
10 messages
• Page 1 sur 1
Onglet supplémentaire dans la fiche produit
Suite à un souhait exprimé par CORSIDISCOUNT, voici une modification de code qui vous permet d'ajouter un onglet supplémentaire à la fiche produit.
J'ai nommé cet onglet "Caractéristiques", le nom est abrégé dans l'onglet de la fiche produit du catalogue par mesure de place (voir l'image de la fiche produit du catalogue, plus bas).
Il vous faut créer un champ supplémentaire dans la table "product_description" en injectant cette requête via l'onglet "sql" situé dans phpMyAdmin de votre base de données :
Dans le fichier upload\admin\controller\catalog\product.php,
Chercher cette ligne :
Dans le fichier upload\admin\language\french\catalog\product.php,
Ajouter cette ligne :
Dans le fichier upload\admin\view\template\catalog\product_form.tpl,
chercher ces lignes :
Dans le fichier upload\admin\model\catalog\product.php,
chercher cette ligne :
Dans le fichier upload\catalog\controller\product\product.php
chercher ces lignes :
Dans le fichier upload\catalog\language\french\product\product.php
ajouter cette ligne :
Dans le fichier upload\catalog\view\theme\default\template\product\product.php
chercher cette ligne :
Comme vous le constaterez sur l'image de l'admin je n'ai pas inclus l'éditeur HTML "ckeditor" parce que je n'ai pas voulu chercher mais aussi parce qu' il vous suffit de mettre votre texte en code source HTML pour qu'il soit interprété.
Voila ce que cela donne en images :
J'ai nommé cet onglet "Caractéristiques", le nom est abrégé dans l'onglet de la fiche produit du catalogue par mesure de place (voir l'image de la fiche produit du catalogue, plus bas).
Il vous faut créer un champ supplémentaire dans la table "product_description" en injectant cette requête via l'onglet "sql" situé dans phpMyAdmin de votre base de données :
ALTER TABLE `product_description` ADD `characteristic` text collate utf8_bin NOT NULL;
Dans le fichier upload\admin\controller\catalog\product.php,
Chercher cette ligne :
- Code: Tout sélectionner
$this->data['entry_tags'] = $this->language->get('entry_tags');
- Code: Tout sélectionner
$this->data['entry_characteristic'] = $this->language->get('entry_characteristic');
Dans le fichier upload\admin\language\french\catalog\product.php,
Ajouter cette ligne :
- Code: Tout sélectionner
$_['entry_characteristic'] = 'Caractéristiques :';
Dans le fichier upload\admin\view\template\catalog\product_form.tpl,
chercher ces lignes :
- Code: Tout sélectionner
<tr>
<td><?php echo $entry_description; ?></td>
<td><textarea name="product_description[<?php echo $language['language_id']; ?>][description]" id="description<?php echo $language['language_id']; ?>"><?php echo isset($product_description[$language['language_id']]) ? $product_description[$language['language_id']]['description'] : ''; ?></textarea></td>
</tr>
- Code: Tout sélectionner
<tr>
<td><?php echo $entry_characteristic; ?></td>
<td><textarea name="product_description[<?php echo $language['language_id']; ?>][characteristic]" cols="125" rows="5"><?php echo isset($product_description[$language['language_id']]) ? $product_description[$language['language_id']]['characteristic'] : ''; ?></textarea></td>
</tr>
Dans le fichier upload\admin\model\catalog\product.php,
chercher cette ligne :
- Code: Tout sélectionner
$this->db->query("INSERT INTO " . DB_PREFIX . "product_description SET product_id = '" . (int)$product_id . "', language_id = '" . (int)$language_id . "', name = '" . $this->db->escape($value['name']) . "', meta_description = '" . $this->db->escape($value['meta_description']) . "', description = '" . $this->db->escape($value['description']) . "'");
- Code: Tout sélectionner
$this->db->query("INSERT INTO " . DB_PREFIX . "product_description SET product_id = '" . (int)$product_id . "', language_id = '" . (int)$language_id . "', name = '" . $this->db->escape($value['name']) . "', meta_description = '" . $this->db->escape($value['meta_description']) . "', description = '" . $this->db->escape($value['description']) . "', characteristic = '" . $this->db->escape($value['characteristic']) . "'");
- Code: Tout sélectionner
$this->db->query("INSERT INTO " . DB_PREFIX . "product_description SET product_id = '" . (int)$product_id . "', language_id = '" . (int)$language_id . "', name = '" . $this->db->escape($value['name']) . "', meta_description = '" . $this->db->escape($value['meta_description']) . "', description = '" . $this->db->escape($value['description']) . "'");
- Code: Tout sélectionner
$this->db->query("INSERT INTO " . DB_PREFIX . "product_description SET product_id = '" . (int)$product_id . "', language_id = '" . (int)$language_id . "', name = '" . $this->db->escape($value['name']) . "', meta_description = '" . $this->db->escape($value['meta_description']) . "', description = '" . $this->db->escape($value['description']) . "', characteristic = '" . $this->db->escape($value['characteristic']) . "'");
- Code: Tout sélectionner
'description' => $result['description']
- Code: Tout sélectionner
'description' => $result['description'],
'characteristic' => $result['characteristic']
Dans le fichier upload\catalog\controller\product\product.php
chercher ces lignes :
- Code: Tout sélectionner
if (isset($this->request->get['description'])) {
$url .= '&description=' . $this->request->get['description'];
}
- Code: Tout sélectionner
if (isset($this->request->get['characteristic'])) {
$url .= '&characteristic=' . $this->request->get['characteristic'];
}
- Code: Tout sélectionner
if (isset($this->request->get['description'])) {
$url .= '&description=' . $this->request->get['description'];
}
- Code: Tout sélectionner
if (isset($this->request->get['characteristic'])) {
$url .= '&characteristic=' . $this->request->get['characteristic'];
}
- Code: Tout sélectionner
$this->data['tab_description'] = $this->language->get('tab_description');
- Code: Tout sélectionner
$this->data['tab_characteristic'] = $this->language->get('tab_characteristic');
- Code: Tout sélectionner
$this->data['description'] = html_entity_decode($product_info['description'], ENT_QUOTES, 'UTF-8');
- Code: Tout sélectionner
$this->data['characteristic'] = html_entity_decode($product_info['characteristic'], ENT_QUOTES, 'UTF-8');
- Code: Tout sélectionner
if (isset($this->request->get['description'])) {
$url .= '&description=' . $this->request->get['description'];
}
- Code: Tout sélectionner
if (isset($this->request->get['characteristic'])) {
$url .= '&characteristic=' . $this->request->get['characteristic'];
}
Dans le fichier upload\catalog\language\french\product\product.php
ajouter cette ligne :
- Code: Tout sélectionner
$_['tab_characteristic'] = 'Caract.';
Dans le fichier upload\catalog\view\theme\default\template\product\product.php
chercher cette ligne :
- Code: Tout sélectionner
<div class="tabs"><a tab="#tab_description"><?php echo $tab_description; ?></a><a tab="#tab_image"><?php echo $tab_image; ?></a><a tab="#tab_review"><?php echo $tab_review; ?></a><a tab="#tab_related"><?php echo $tab_related; ?></a></div>
- Code: Tout sélectionner
<div class="tabs"><a tab="#tab_description"><?php echo $tab_description; ?></a><a tab="#tab_characteristic"><?php echo $tab_characteristic; ?></a><a tab="#tab_image"><?php echo $tab_image; ?></a><a tab="#tab_review"><?php echo $tab_review; ?></a><a tab="#tab_related"><?php echo $tab_related; ?></a></div>
- Code: Tout sélectionner
<div id="tab_description" class="tab_page"><?php echo $description; ?></div>
- Code: Tout sélectionner
<div id="tab_characteristic" class="tab_page"><?php echo $characteristic; ?></div>
Comme vous le constaterez sur l'image de l'admin je n'ai pas inclus l'éditeur HTML "ckeditor" parce que je n'ai pas voulu chercher mais aussi parce qu' il vous suffit de mettre votre texte en code source HTML pour qu'il soit interprété.
Voila ce que cela donne en images :
- Pièces jointes
-
- characteristic_admin.png (77.3 Kio) Consulté 11402 fois
-
- characteristic_catalog.png (172.59 Kio) Consulté 11404 fois
- Imaxine
- Messages: 3023
- Inscrit le: 27 Juil 2009, 19:28
Re: Onglet supplémentaire dans la fiche produit
Et je confirme que cela fonctionne parfaitement une fois mis en place !!
Une fois de plus, merci beaucoup !
Une fois de plus, merci beaucoup !
V 1.4.7 Fr
- CORSIDISCOUNT
- Messages: 19
- Inscrit le: 07 Avr 2010, 12:20
Re: Onglet supplémentaire dans la fiche produit
Bonjour,
J'ai une bête question:
Ces modifications sont-elles à refaire en cas de mise à jour d'Opencart ?
Merci d'avance
J'ai une bête question:
Ces modifications sont-elles à refaire en cas de mise à jour d'Opencart ?
Merci d'avance
OpenCart v1.4.8b Fr - O2Switch
-
Pilou - Messages: 42
- Inscrit le: 14 Avr 2010, 10:36
- Localisation: Belgique
Re: Onglet supplémentaire dans la fiche produit
Oui tout à fait puisqu'elles ne figurent pas dans la version originelle, ce sont un développement spécifique.
C'est pour cela qu'il est nécessaire que vous ayez un logiciel de comparaison de fichier. Personnellement j'utilise WinMerge qui est gratuit : http://winmerge.org/, et qui me convient. D'autres sont de meilleure facture mais payants.
C'est pour cela qu'il est nécessaire que vous ayez un logiciel de comparaison de fichier. Personnellement j'utilise WinMerge qui est gratuit : http://winmerge.org/, et qui me convient. D'autres sont de meilleure facture mais payants.
- Imaxine
- Messages: 3023
- Inscrit le: 27 Juil 2009, 19:28
Re: Onglet supplémentaire dans la fiche produit
Moi j'utilise "Compare it" qui est pas mal également
V 1.4.7 Fr
- CORSIDISCOUNT
- Messages: 19
- Inscrit le: 07 Avr 2010, 12:20
Re: Onglet supplémentaire dans la fiche produit
Bonjour,
j'ai tenté d'utiliser votre tutoriel pour mettre en place en nouvel onglet: "recette", seulement je rencontre quelque problème.
Premièrement, lorsque je suis sur la partie admin que je saisi du texte pour pour nouvel onglet, celui-ci n'est pas enregistré en bdd. (je n'ai aucun message d'erreur.)
[Edit]Pardon, le texte est bien enregistré en BDD [/edit]
Deuxièmement, lorsque je suis sur la partie Catalog, j'ai bien le nouvel onglet qui s'affiche mais pas le contenu.
Là par-contre j'ai un message d'erreur :
qui correspond à cette ligne :
Je confirme bien que j'ai modifié dans l'ensemble du tuto "characteristic" par "recette".
Je précise que je suis sur la version 1.5.1.
Merci d'avance de votre aide
/*-------------------- SOLUTION--------------*/
dans catalog\model\catalog\product.php
il faut ajouter cette ligne
ou par rapport au tuto :
j'ai tenté d'utiliser votre tutoriel pour mettre en place en nouvel onglet: "recette", seulement je rencontre quelque problème.
Premièrement, lorsque je suis sur la partie admin que je saisi du texte pour pour nouvel onglet, celui-ci n'est pas enregistré en bdd. (je n'ai aucun message d'erreur.)
[Edit]Pardon, le texte est bien enregistré en BDD [/edit]
Deuxièmement, lorsque je suis sur la partie Catalog, j'ai bien le nouvel onglet qui s'affiche mais pas le contenu.
Là par-contre j'ai un message d'erreur :
Notice: Undefined index: recette in ***/web/catalog/controller/product/product.php on line 303
qui correspond à cette ligne :
- Code: Tout sélectionner
$this->data['recette'] = html_entity_decode($product_info['recette'], ENT_QUOTES, 'UTF-8');
Je confirme bien que j'ai modifié dans l'ensemble du tuto "characteristic" par "recette".
Je précise que je suis sur la version 1.5.1.
Merci d'avance de votre aide
/*-------------------- SOLUTION--------------*/
dans catalog\model\catalog\product.php
il faut ajouter cette ligne
- Code: Tout sélectionner
'recette' => $query->row['recette'],
ou par rapport au tuto :
- Code: Tout sélectionner
'characteristic' => $query->row['characteristic'],
Dernière édition par Christouphh le 24 Fév 2012, 15:42, édité 4 fois au total.
OpenCart 1.5.1 || template : defaut
- Christouphh
- Messages: 4
- Inscrit le: 08 Déc 2011, 23:01
Re: Onglet supplémentaire dans la fiche produit
Bonjour,
Pour ton problème, cela me fait penser qu'il doit manquer la variable "recette" dans catalog/model/product/product.php dans les requêtes "INSERT", "DELETE" et "UPDATE' qui mettent à jour la base de données
Pour ton problème, cela me fait penser qu'il doit manquer la variable "recette" dans catalog/model/product/product.php dans les requêtes "INSERT", "DELETE" et "UPDATE' qui mettent à jour la base de données
- Imaxine
- Messages: 3023
- Inscrit le: 27 Juil 2009, 19:28
Re: Onglet supplémentaire dans la fiche produit
Super tutoriel en effet! Merci!
Vs Opencart: OpenCart v1.5.1Fr
Hébergeur OVH
Hébergeur OVH
- Niecbaso
- Messages: 18
- Inscrit le: 22 Fév 2012, 00:24
Re: Onglet supplémentaire dans la fiche produit
Hello!
Tout d'abord merci pour ce SUPER tuto
J'ai une question, qui s'avère être assez ardue je penses. Comment faire pour que le champ ajouté à mes tabs soit administrables avec un éditeur WISIWIG? Je suis pas très friand des solutions coûteuse car je préfère apprendre à développer. J'ai vu que des postes proposaient un module et je ne trouve aucune doc à ce sujet..Du coup ça coince..Y a-t-il des cracks qui peuvent m'éclairer un peu sur le sujet ?
Bref je sais que je déterre quelque peu ce poste mais ça me semblerai intéressant d'ajouter cette petite touche de folie
Un grand MERCI d'avance à tous ceux qui pourront m'aider!
Tout d'abord merci pour ce SUPER tuto
J'ai une question, qui s'avère être assez ardue je penses. Comment faire pour que le champ ajouté à mes tabs soit administrables avec un éditeur WISIWIG? Je suis pas très friand des solutions coûteuse car je préfère apprendre à développer. J'ai vu que des postes proposaient un module et je ne trouve aucune doc à ce sujet..Du coup ça coince..Y a-t-il des cracks qui peuvent m'éclairer un peu sur le sujet ?
Bref je sais que je déterre quelque peu ce poste mais ça me semblerai intéressant d'ajouter cette petite touche de folie
Un grand MERCI d'avance à tous ceux qui pourront m'aider!
Débutant sur Opencart... Mais ne m'appelez pas noob s'il vous plaît
hébergeur : oxito
version : 1.5.1 VERSION FRANCAISE (FR)
hébergeur : oxito
version : 1.5.1 VERSION FRANCAISE (FR)
- dan
- Messages: 37
- Inscrit le: 16 Oct 2010, 17:32
10 messages
• Page 1 sur 1
Qui est en ligne ?
Utilisateur(s) parcourant actuellement ce forum : Aucun utilisateur inscrit et 2 invité(s)