[Frage] Page Template überschreiben bei bestimmter Action [Gelöst] TYPO3-Version: 9.5.21

  • s_reinecke s_reineck...
    TYPO3-Anwärter
    0 x
    5 Beiträge
    0 Hilfreiche Beiträge
    25. 09. 2020, 13:35

    Hallo,

    ich habe eine einfache Extension mit dem Extension-Builder erstellt. Das Frontend hat die üblichen zwei actions/views "list" und "show".

    Die Ausgabe von "list" soll ganz normal im Frontend ausgegeben werden = kein Problem.

    Die "show" allerdings als Lightbox/Popup ohne das komplette Page-Template. Also ohne Header, Footer usw., quasi ein eigenes Frontend-Template. Genau hier hakt es.

    Ich weiß, dass ich das Page-Template überschreiben kann mit:
    [code]page.10.file >
    page.10.file = pfad/zum/template/Private/Layouts/Popup.html[/code]

    Aber damit überschreibe ich ja beide Views meiner Extension, ich möchte ja nur beim Popup (show) das Template überschreiben.

    Wie mache ich das? Geht das überhaupt?

    Danke schon mal,
    Stephan

  • s_reinecke s_reineck...
    TYPO3-Anwärter
    0 x
    5 Beiträge
    0 Hilfreiche Beiträge
    29. 09. 2020, 09:22 - Lösung

    Danke, das war der "Schubser" in die richtige Richtung. :)

    Für alle die das gleiche Problem haben, hier meine Lösung:

    Ich habe in meiner Extension im Setup folgendes hinzugefügt:
    [code]ajaxcall_page = PAGE
    ajaxcall_page {
    typeNum = 427590

    config {
    disableAllHeaderCode = 1
    additionalHeaders = Content-type:application/html
    xhtml_cleaning = 0
    debug = 0
    no_cache = 1
    admPanel = 0
    }

    10 < tt_content.list.20.EXTENSIONNAME
    }
    [/code]

    EXTENSIONNAME muss natürlich ersetzt werden!

    Und dann nur noch beim Link, wo die Action "show" aufgerufen wird, folgendes hinzufügen:
    [code]additionalParams="{type : '427590'}"
    [/code]

    Im meinem Fall nutze ich die Colorbox, die ich einfach über die Klasse "ajax" aufrufe:
    [code]$(".ajax").colorbox();
    [/code]


  • 1
  • Teisinger Teisinger
    Jedi-Meister
    0 x
    457 Beiträge
    31 Hilfreiche Beiträge
    26. 09. 2020, 19:02

    Da gibts mehrere Möglichkeiten z. B.:
    - die Action als json versenden: https://usetypo3.com/json-view.html
    - eine zusätzliche "Page" anlegen die ohne den Header - Footer etc. auskommt: https://stackoverflow.com/questions/27925797/typo3-extbase-json-output

    https://github.com/groundstack-org

  • s_reinecke s_reineck...
    TYPO3-Anwärter
    0 x
    5 Beiträge
    0 Hilfreiche Beiträge
    29. 09. 2020, 09:22

    Danke, das war der "Schubser" in die richtige Richtung. :)

    Für alle die das gleiche Problem haben, hier meine Lösung:

    Ich habe in meiner Extension im Setup folgendes hinzugefügt:
    [code]ajaxcall_page = PAGE
    ajaxcall_page {
    typeNum = 427590

    config {
    disableAllHeaderCode = 1
    additionalHeaders = Content-type:application/html
    xhtml_cleaning = 0
    debug = 0
    no_cache = 1
    admPanel = 0
    }

    10 < tt_content.list.20.EXTENSIONNAME
    }
    [/code]

    EXTENSIONNAME muss natürlich ersetzt werden!

    Und dann nur noch beim Link, wo die Action "show" aufgerufen wird, folgendes hinzufügen:
    [code]additionalParams="{type : '427590'}"
    [/code]

    Im meinem Fall nutze ich die Colorbox, die ich einfach über die Klasse "ajax" aufrufe:
    [code]$(".ajax").colorbox();
    [/code]

  • 1