Forums de la communauté francophone du CMS TYPO3: Extension Custom, Plusieurs Plugins Sur La Même Page Avec Action Différente - Forums de la communauté francophone du CMS TYPO3

Aller au contenu

Page 1 sur 1
  • Vous ne pouvez pas commencer un sujet
  • Vous ne pouvez pas répondre à ce sujet

Extension Custom, Plusieurs Plugins Sur La Même Page Avec Action Différente

#1 L'utilisateur est hors-ligne   sloughi 

  • Nouveau
  • Pip
  • Groupe : Membres
  • Messages : 6
  • Inscrit(e) : 23-novembre 16

Posté 23 novembre 2016 à 15:49

Hello !

A l'époque de pibase, il m'est arrivé de placer plusieurs fois le même plugin , sur la même page, avec des vues différentes :
Exemple "semi" fictif :
  • tt_news en mode LIST en colonne centrale
  • tt_news en mode SINGLE juste en dessous
  • tt_news en mode LATEST en colonne de droite
  • tt_news en mode TOP dans le footer


Avec extbase, j'ai l'impression que ce n'est pas possible ?
Du moins je ne sais pas faire :D

Lorsque je suis sur une page avec un seul plugin configuré en vue liste je génère des liens vers une page de détail sur laquelle se trouve deux instances du même plugins, configuré avec deux switchableControllerActions différent ( Story->List pour l'un et Story->detail pour l'autre )... et j'envoie dans l'URL :
tx_stories_storylisting[action]='detail'

Du coup, les deux extensions tentent de m'afficher l'action detail... ce qui est confifuré dans le FlexForm ne prend pas le dessus !

Une idée ?

Bonne journée,

Laurent
0

#2 L'utilisateur est hors-ligne   CMD 

  • Membre fidèle
  • PipPipPipPipPip
  • Groupe : Membres
  • Messages : 448
  • Inscrit(e) : 16-mai 07

Posté 24 novembre 2016 à 10:23

Bonjour,

Je n'ai pas tenté par flexform (je n'avais aucun intérêt à l'utiliser) en revanche j'ai posé 3 plugins dans la même page :
1 par tt_content standard
2 par typoscript

lib.monPlugin1 < tt_content.monext_plugin.20
lib.monPlugin1 {
    controller = MonController
    action = monaction
    switchableControllerActions.MonController {
        1 = monaction
    }
    mvc.callDefaultActionIfActionCantBeResolved = 1
}

# plugin for displaying the sidebar
lib.monPlugin2 < tt_content.monext_plugin.20
lib.monPlugin2 {
    controller = MonController2
    action = monaction
    switchableControllerActions.MonController2 {
        1 = monaction
        2 = masecondeaction
    }
    mvc.callDefaultActionIfActionCantBeResolved = 1
}


Ici j'avais 3 controller dans la même page, mais ca marchera avec 1 seul de la même manière.
Le mvc.callDefaultActionIfActionCantBeResolved = 1 permet au controller de ne pas planter s'il ne trouve pas l'action demandé, à la place il utilisera l'action par defaut (qui est redéfini pour chaque lib)

Tu peux envisager de copier et modifier le code TS des plugins que tu ajouterai en te basant sur l'idée de code que je te fourni Image IPB (plusieurs item de la list plugin_type / CTyoe peuvent appeler la même extension avec un comportement différent).

J'ai déjà eu ajouté des items à la liste uniquement par TS afin d'avoir un comportement spécifique pour 1 plugin, inutile de se prendre la tete a le déclarer dans ton ext_localconf.php

Cordialement
Thorfin

Ce message a été modifié par CMD - 24 novembre 2016 à 10:24.

Intégrateur TYPO3 certifié - Développeur TYPO3 - Société Archriss
--- http://cmonard.com/ ---
0

#3 L'utilisateur est hors-ligne   sloughi 

  • Nouveau
  • Pip
  • Groupe : Membres
  • Messages : 6
  • Inscrit(e) : 23-novembre 16

Posté 24 novembre 2016 à 12:35

Merci Thorfin !

Je me suis inspiré de ton code, d'un exemple du bouquin "TYPO3 Extbase", et de la doc de tx_news pour pondre un code qui fonctionne sur mon installation.
J'ai donc réussi à ajouter un mode LIST et un mode DETAIL sur la même page..même si l'action était envoyée dans l'URL ( réécrite ou pas )


En fait la ligne magique c'est, comme tu l'expliques très bien : mvc.callDefaultActionIfActionCantBeResolved = 1

Je me suis ensuite dit que c'était triste de ne pas pouvoir utiliser les flexForms, car je trouve bien pratique de pouvoir surcharger une variable initialisée en TypoScript via le FlexForm ( même si dans cette version de TYPO3 ils sont - pour l'instant - bugués et perdent pour le moment leur intérêt.. mais j'ai bon espoir :D )

Bref, en ajoutant la conf :
plugin.tx_stories_storylisting.mvc.callDefaultActionIfActionCantBeResolved = 1
dans le setup.ts de mon extension, je peux insérer mon plugin avec différentes actions, sur la même page ! Top !

Merci encore et bonne journée,

Laurent


0

Partager ce sujet :


Page 1 sur 1
  • Vous ne pouvez pas commencer un sujet
  • Vous ne pouvez pas répondre à ce sujet

1 utilisateur(s) en train de lire ce sujet
0 membre(s), 1 invité(s), 0 utilisateur(s) anonyme(s)