Jump to content

[Prestashop 1.7.6.4] Ajout d'un tab dans l'administration


acrob

Recommended Posts

Bonjour,

Je souhaiterais ajouter un tab dans l'administration à partir d'un module, mais ce module n'ayant pas d'autre fonction que d'afficher ce tab, je n'ai pas de table associé en base de données.

Les données s'affichant dans ce tab proviennent d'un requête SQL qui cible les tables ps_order_detail,  product, product_shop et customer.

Me basant sur ce que j'ai fait sur d'autre module, j'ai instancié la tab dans dans la fonction install() du module et dans le controller j'ai écrit ma requête SQL et $this->fields_list.

Cela ne fonctionne pas.

Prestashop exécute cette requête SELECT SQL_CALC_FOUND_ROWS a.* FROM `ps_configuration` a WHERE 1 ORDER BY a.id_configuration ASC LIMIT 0, 50

A priori je m'y prend mal, auriez-vous des pistes à m'indiquer pour solutionner mon problème ?

Merci

 

 

Link to comment
Share on other sites

Merci Mediacom87 pour ta réponse.

La création de tab en suivant les explications s'est bien dérouler, mais comment fait-on pour afficher du contenu dedans.

Je voudrais afficher les données de cette requête

$Reservations = Db::getInstance()->ExecuteS("SELECT product_id, od.product_name AS `Nom du produit`, od.product_quantity, DATE_FORMAT(tco.ordered_datetime,'%W %e %M %Y') AS `Date de la réservation`, DATEDIFF(tco.ordered_datetime, now()) as `Nb de jour`, cu.firstname, cu.lastname, cu.email, cu.id_default_group FROM "._DB_PREFIX_."order_detail od LEFT JOIN "._DB_PREFIX_."product p ON p.id_product = od.product_id LEFT JOIN ps_product_shop ps ON (ps.id_product=p.id_product AND ps.id_shop = od.id_shop) LEFT JOIN ps_terracalendar_order tco ON (tco.id_product=p.id_product AND tco.id_order =od.id_order) JOIN "._DB_PREFIX_."customer cu ORDER BY tco.ordered_datetime" );

Mais je ne sais pas comment il faut faire.

J'ai tenté dans :

public function __construct()

public function renderList()

public function renderDetails()

Mais aucun de ces essais n'a fonctionné.

 

Link to comment
Share on other sites

Précision, comme je n'ai pas de table associé à mon module, le système fait un double FROM puisqu'il cherche d'office dans le module, ce qui bien évidemment plombe le bigniou.

 

Ma requête initiale :

$this->_select = '* FROM `ps_reservation` AS od';
SELECT SQL_CALC_FOUND_ROWS `id_order_detail` , * FROM `ps_reservation` AS od FROM `ps_reservation` a

 

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

  • 2 years later...

Bonjour, désolé de déterrer un vieux sujet, mais après avoir suivi les explications de la documentation, je n'arrive pas a voir ma nouvelle colonne 

Voici mon code, il est bien dans la function __construct de mon module : 

    public function __construct()
 foreach (Language::getLanguages(true) as $lang) {
            $tabNames[$lang['locale']] = $this->trans('Link List', array(), 'Modules.Linklist.Admin', $lang['locale']);
        }
        $this->tabs = [
            [
                'name' => [
                    'en' => 'Merchant Expertise',
                    'fr' => 'Expertise PrestaShop',
                ],
                'class_name' => 'AdminGamification',
                'parent_class_name' => 'AdminOrders',
            ],
        ];

Merci 

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...