Accueil

Référence développeur · PrestaShop

Websource Link Lists pour PrestaShop — référence développeur

Hooks, emplacements, widget, méthodes PHP, gabarit, tables, cache et actions AJAX du module Websource Link Lists.

Version 1.3.0 · PrestaShop 1.7.7 à 9.x, PHP 7.1+, thème Websource Prestashop Theme (conseillé) · Mis à jour le 09/10/2026

Guide utilisateur

Cette extension existe aussi pour : WordPress

Vue d'ensemble

  • Module websourcelinklists, espace de noms Websource\LinkLists\ (PSR-4 dans src/), implémente WidgetInterface. Contrôleur d'administration AdminWebsourceLinkLists (Apparence > Listes de liens).
  • Link\LinkSources (types de liens), Link\LinkResolver (adresse et libellé par Link, langue et boutique du visiteur), Link\UrlSanitizer ; Render\ListViewBuilder, ListViewProvider, ListCache, JsonLdBuilder ; Hook\HookSynchronizer et HookDispatcher ; Placement\PlacementCatalog, PageDetector.

Hooks

HookRôle
displayFooter, displayFooterBefore, displayFooterAfter, displayNavFullWidth, displayLeftColumn, displayRightColumn, displayMyAccountBlockRendu des listes actives placées à cet endroit, pour la page courante.
Tout autre hook display*Emplacement « avancé » : greffé à l'enregistrement de la liste (registerHook), servi par __call() ; débranché quand plus aucune liste ne l'utilise.
actionFrontControllerSetMediaCharge views/css/front.css seulement si une liste s'affiche sur la page.
actionShopDataDuplicationDuplication d'une boutique.
actionWebsourceThemeExport, actionWebsourceThemeImportSection linklists du paquet de thème (listes, liens, emplacements).

Emplacements (Placement\PlacementCatalog)

PositionHookRemarque
topbar_leftdisplayNav1
topbar_rightdisplayWebsourceTopbarRighthook du thème Websource
footer_col1 … footer_col4displayFooterordre CSS 1 à 4 (classe wsll--o1 … wsll--o4) ; le thème doit rendre ce hook dans une grille ou un conteneur flex
before_footerdisplayFooterBefore
after_footerdisplayFooterAfter
under_headerdisplayNavFullWidth
left_column, right_columndisplayLeftColumn, displayRightColumn
account_blockdisplayMyAccountBlockpage account seulement
customhook libre

Page all = toutes les pages. 20 emplacements et 60 liens au plus par liste (Admin\ListPayloadSanitizer). Présentations : columns, inline, menu.

Widget et PHP

{widget name='websourcelinklists' list='demo-a-informations'}
{widget name='websourcelinklists' list=12}

list = identifiant texte (colonne identifier, généré depuis le nom) ou numéro de la liste. Sans list, le widget rend les listes placées sur le hook d'appel. getWidgetVariables() renvoie un tableau vide.

echo WebsourceLinkLists::renderListById(12);
echo Module::getInstanceByName('websourcelinklists')->renderList(12);

Seules les listes actives sont rendues, dans la langue et la boutique courantes.

Gabarit et balisage

views/templates/hook/list.tpl, surchargeable dans themes/<thème>/modules/websourcelinklists/views/templates/hook/list.tpl.

Balisage constaté : <nav class="wsll wsll--columns wsll--o2"> contenant <p class="wsll__title"> et <ul class="wsll__list">. Le CSS s'appuie sur les variables du thème avec repli : --color-brand-600, --color-ink, --color-line, --radius-xl, --wst-card-shadow.

Types de liens (Link\LinkSources::TYPES)

Lien libre (adresse url, ou urls par langue), cms, category, marque, product, page (clé de page : contact, plan du site, conditions générales, magasins, meilleures ventes, nouveaux produits, promotions, marques, fournisseurs, connexion, compte, commandes, panier). Options new_tab et nofollow.

Tables

  • {prefix}websourcelinklists_list : id_list, id_shop, identifier, name, layout, show_title, active, titles (JSON par langue), draft (brouillon JSON), date_add, date_upd.
  • {prefix}websourcelinklists_link : id_link, id_list, position, source, target_id, page_key, url, urls, new_tab, nofollow, labels (JSON par langue).
  • {prefix}websourcelinklists_placement : id_placement, id_list, page, position, hook, cms_id.

Cache

Fichiers JSON dans var/cache/<env>/websourcelinklists/, durée 3 600 secondes, vidés à chaque enregistrement (Render\ListCache, services()->cache()->flush()).

Actions AJAX du contrôleur

create, draft (sauvegarde automatique du brouillon), save (application à la boutique et synchronisation des hooks), toggle, delete, duplicate, search (recherche de cibles pour l'éditeur). Appel : ajax=1&action=<nom> avec le jeton du back-office ; réponses JSON.

Traductions

translations/fr.php, translations/en.php, translations/admin/en.php (interface de l'éditeur, I18n\Dictionary).