[Frage] Bearbeitung vom Inhalt eines Shortcuts

  • KingDumah KingDumah
    TYPO3-Anwärter
    0 x
    7 Beiträge
    0 Hilfreiche Beiträge
    01. 07. 2019, 10:10

    Guten Tag,

    ich komme einfach nicht weiter. Ich verwende Typo3 9.5 mit Fluid und Text & Medien. Meine Redakteure haben die Möglichkeit bei Text & Medien Elementen ein Layout zu setzen, welches den Inhalt dann in einen Slideblock/Accordion umwandelt oder als eine Infobox markiert welche dann speziell hervorgehoben wird. Diese beiden Layouts unterscheiden sich mehr oder weniger stark vom Default.

    Wenn nun aber ein Redakteur ein Element welches als Slideblock/Accordion über Shortcut geholt wird, ist dies immer noch ein Slideblock/Accordion, da es aber vom Slideblock importiert wurde, hätte ich gerne, dass das Element das Layout des Shortcuts verwendet und nicht das Layout des Ursprungs. So dass ich z.b. eine Infobox per Shortcut hole, im Shortcut Slideblock/Accordion einstelle und das Element dann nicht als Infobox sondern Slideblock/Accordion angezeigt wird.

    Im Template Shortcut wird ja aber nur die Variable {shortcuts} aufgerufen, welche bereits das fertige Element enthält. Also bin ich mit Fluid ja zu spät dran. Gibt es die Möglichkeit per Typoscript einem Content-Element einen Wert mitzugeben wenn es von einem Shortcut geholt wird?

    Mit fällt mit meinem Typoscript keine Lösung. Ich bezweifle sogar dass es sogar möglich ist. Aber vlt kennt jemand ja eine Möglichkeit.

    Dankeschön


  • 1
  • Teisinger Teisinger
    Jedi-Ratsmitglied
    0 x
    502 Beiträge
    38 Hilfreiche Beiträge
    01. 07. 2019, 12:11

    Das macht für mich überhaupt keinen Sinn, weil das "Shortcut" eben genau für das da ist was es macht...

    Möglich ist es aber schon: wenns nur styling betrifft, hast du ja sowieso ne zusätzliche "class" als wrapper um dein element.
    Ansonsten gibts sicherlich nen passenden Hook.
    Mit TypoScript könnte sein, weiß ich jetzt aber nicht....

    https://github.com/groundstack-org

  • KingDumah KingDumah
    TYPO3-Anwärter
    0 x
    7 Beiträge
    0 Hilfreiche Beiträge
    15. 08. 2019, 15:36

    Ich habe oft den Fall, dass Redakteure einen Datensatz von irgendwo nehmen und wollen dass er auf dieser Seite aber ein anderes Layout hat. Einen kleinen Schritt habe ich geschafft, ich habe nun einen Weg gefunden wie ich nur Inhalte vom Shortcut bearbeite:
    [code]tt_content.shortcut {
    settings {
    values {
    wert2 = Test1
    }
    }
    variables.shortcuts = RECORDS
    variables.shortcuts {
    conf.tt_content.textmedia =< lib.contentElement
    conf.tt_content.textmedia {
    settings {
    values {
    wert2 = Test2
    }
    }
    layoutRootPaths {
    10 = fileadmin/templates/fluid/own_typo3_core/layoutsShortcut/
    }
    }
    }
    }
    [/code]

    hier habe ich dann ein eine Default.html und in dieser verschiebe ich z.B. die ID des Records in die Class um doppelten ID's zu verhindern falls ein Datensatz zweimal ausgelesen wird und entferne alle Classes die in Abhängigkeit von dem eingestellten Layout gesetzt werden.

    Dieser doppelte Div stört mich allerdings noch immer, da ich im Javascript immer den Fall abdecken muss falls der Record importiert wurde und darum ein weiterer div um alles ist.

    Gibt es eine Möglichkeit, wie ich in die Variable "wert2" und eine weitere Variable an dieser Stelle die ID und das Layout des "Insert Record" bekomme? Selbst nach einer gefühlten Ewigkeit mit Google konnte ich keinen Weg finden diese Werte weiterzugeben.

    Ich habe einen anderen Ansatz versucht, je nach gewähltem Layout vom "Insert Record" ein anderes Layout für meine Inhalte zu nutzen. Dann wüsste ich ja im Grunde auch welches Layout gewählt wurde. Hier scheitere ich aber daran den layoutRootPaths anzupassen.

    Auf dieser Seite is ein Beispiel:
    https://docs.typo3.org/m/typo3/reference-typoscript/master/en-us/ContentObjects/Records/Index.html#selection-with-source
    [code]tt_content.shortcut = COA
    tt_content.shortcut {
    20 = CASE
    20.key.field = layout
    20.0 = RECORDS
    20.0 {
    source.field = records
    tables = {$content.shortcut.tables}
    }
    ...
    }
    [/code]

    dies sollte dies ja tun, allerdings wird geschrieben dass es von css_styled_content ist und ich bekomme es nicht zum laufen unter fluid, egal was ich versuche.

    Kann mir jemand bei einem der Probleme weiterhelfen?

  • Teisinger Teisinger
    Jedi-Ratsmitglied
    0 x
    502 Beiträge
    38 Hilfreiche Beiträge
    15. 08. 2019, 20:03

    du kannst ja den "zusätzlichen" div löschen, im FLUID-Template vom ShortCut bzw. dessen Layout das im Template aufgerufen wird, entsprechend verändern. Hilft dir das?

    https://github.com/groundstack-org

  • 1