webleads-tracker

Widget spé : connaitre la zone dans laquelle il est appelé

Olivier
Bonjour,

Je ne savais pas trop dans quel forum poster cette demande, n'ayant pas vu de forum dédié à la programmation.

Je souhaiterais, au sein de mon fichier php widget, savoir dans quelle zone du template il a été appelé.

Exemple, j'ai un widget spé qui affiche des news aléatoirement, j'aimerais savoir s'il apparait dans la colonne principale ("Centre") ou dans la sidebar ("Gauche" ou "Droite").

Existe t'il une méthode pour le savoir ?

Julien
Salut Olivier,

en utilisant de manière jointe les tables 'boxes' et 'boxes_method' dans la bdd tu pourras extraire toutes les infos de contextualisation de tes widgets, y compris leur emplacement.

A+
J

Zéphyr Seb
Avatar
Bonjour,

je suis pile poil dans le même cas de figure, je cherche à récupérer une info propre à un widget.

Dans mon cas, je souhaite utiliser le même widget pour afficher des données différentes en fonction d'un paramètre. Mais je ne trouve pas le moyen de récupérer une info saisie dans les paramètres du widget.

Comme le dit Julien, on retrouve les données dans la tables 'boxes' mais comment faire le lien depuis le fichier php du widget ?

Autre exemple plus parlant peut-etre : on ne peut pas depuis le fichier php récupérer le nom de la classe saisie dans les options avancées.
Sébastien - Zéphyr

Zéphyr Seb
Avatar
Il y a t-il un début de solution ?
Sébastien - Zéphyr

Olivier
Ayant tenté de diverse manière, il semble que ce ne soit pas possible.

Les possibilités en mode développement comme en mode intégration sont trop limitées. Il n'y a pas de réelle API pour accéder aux infos.

Sur bien des CMS, on a accès à un objet qui recense les différentes données de la page en cours (modules appelés, titre de page, contenu textuels, classes, id etc...).

Toujours concernant ces limitations, je suis bien souvent bloqué par le système de template ModelX (qui n'est plus maintenu nulle part donc pourquoi ce choix) et qui n'offre que très peu de flexibilité. On se retrouve souvent à faire du code "crade" avec des balises vides ou à masquer en CSS des blocs juste parce qu'on ne peut pas les faire disparaitre autrement.

Ceci est juste une remarque d'ordre générale concernant les possibilités du CMS.

Julien
Bonjour Olivier,

je reviens à la source de ton problème.
Informations de bases : les données concernant les widgets sont stockées dans les tables "boxes" et "boxes_method".

Voici la méthode que j'emploierais :

1. lorsque tu créés un widget spécifique, E-Majine lui donne un nom du style "specifbox_lenomdetonwidget" (tu peux voir ça dans le dossier "spécifs" de ton FTP)

2. partant de là, si tu fais une requête SQL du style
"SELECT * FROM boxes_method LEFT JOIN boxes ON boxes_method.id_box=boxes.id_box WHERE `method` LIKE '%specifbox_lenomdetonwidget%'

tu obtiens un tableau de résultats dans lequel tu vas trouver les champs "Context" et "CSS" qui te permettent d'obtenir respectivement la zone du template et le style CSS appliqués à ton widget.

Voilà, dis-moi si cela répond à ta problématique.

A+
J