Jump to content

Afficher un onglet produit personnalisé front-end


Recommended Posts

Bonjour, 


Je souhaite ajouter un onglet personnalisé dans mes fiches produits en front-end, et j'ai pour cela suivi le tutorial http://nemops.com/prestashop-products-new-tabs-fields/


Mon problème est le suivant : Je n'arrive pas à afficher dans le front-end le contenu des champs enregistré dans la base de données. J'ai encore un peu de mal avec les hook, je me demande si il n'existe pas un petit bout de code php simple que je puisse intégrer où je souhaite dans mon product.tpl pour ajouter le contenu de mon onglet. J'ai passé beaucoup de temps à chercher une solution par moi-même mais l'échéance approche et je sollicite votre aide pour résoudre ce problème.


Cordialement.

Link to comment
Share on other sites

Version de prestashop ?

 

Les hook concerne les modules.

Pour afficher/créer, un nouvel onglet de contenu personnalisé, vous pouvez le faire sans passez par un module.

Plusieurs tuto pour 1.5 et surement 1.6 peuvent vous montrer comment :

 

Il vous faut dissocier l'ajout du champ personnalisé en BO, de l'ajout de l'onglet en front.

Ex pour 1.5 : http://www.paulineghiazza.fr/ajouter-un-champ-dans-le-backoffice-prestashop-1-5/ 

Link to comment
Share on other sites

Wow, cela a marché bien plus simplement que je ne le pensais... Quand je m'étais renseigné j'avais surtout trouvé des modules qui venaient ajouter des onglets. Une dernière question, comment puis-je modifier tout cela pour avoir un éditeur de texte Tinymce à la place, qui gère également les différentes langues? Y a-t-il des spécificités ?

 

Merci beaucoup pour votre première réponse.

Link to comment
Share on other sites

Oups, je me permets une autre question, je n'arrive pas à ajouter d'autres champs, la solution se trouve sûrement dans Product.php qui ressemble à ceci :

class Product extends ProductCore
{
    public $ingredients;
 
    public function __construct($id_product = null, $full = false, $id_lang = null, $id_shop = null, Context $context = null)
    {
      Product::$definition['fields']['ingredients'] = array('type' => self::TYPE_HTML, 'lang' => true, 'validate' => 'isString');
      parent::__construct($id_product, $full, $id_lang, $id_shop, $context);
    }

}

Je souhaite ajouter un autre champ nommé "conseils", comment puis-je faire ?  Je l'ai crée dans la base de données, mais à priori le fait de dupliquer la classe ne marche pas. Quand je souhaite enregistrer ce que j'écris dans le champ, rien n'est sauvegardé dans la BD.

Edited by Malcom24 (see edit history)
Link to comment
Share on other sites

class Product extends ProductCore
{
public $ingredients;
public $conseils;

public function __construct($id_product = null, $full = false, $id_lang = null, $id_shop = null, Context $context = null)
{
Product::$definition['fields']['ingredients'] = array('type' => self::TYPE_HTML, 'lang' => true, 'validate' => 'isString');
Product::$definition['fields']['conseils'] = array('type' => self::TYPE_HTML, 'lang' => true, 'validate' => 'isString');
parent::__construct($id_product, $full, $id_lang, $id_shop, $context);
}

}

Il vous faut dupliquer les lignes, non pas la classe.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...