[Frage] Contentelement mehrer Klassen zuweisen TYPO3-Version: 6.1.7

  • audi_s audi_s
    T3PO
    0 x
    28 Beiträge
    0 Hilfreiche Beiträge
    19. 09. 2014, 10:26

    Hallo,
    ich wollte fragen, ob Ihr eine Möglichkeit kennt, dass ich einem ContentElement mehrere CSS-Klassen zuweisen kann. Idee wäre, die section_frames (Rahmen und Einrückungen) oder Layout (Layout 1, 2 etc.) zu nutzen als Multiselect Element. Das geht aber anscheinend nicht einfach so.
    Die beiden Möglichkeiten sind schon super, nur habe ich das Problem, dass ich immer jeweils nur eine Klasse/Eigenschaft darüber zuweisen kann und nicht mehrere.

    Ansonsten wäre ein Ansatz, über ein neues tt_content Feld und über TCA-Einstellungen ein entsprchendes Feld vom type=select mit multipler Auswahl anzubieten. Da wäre ich auch schon kurz vorm Ziel, habe da aber auch noch Probleme. Dazu mache ich noch einen weiteren Thread auf mit einer anderen Frage.

    Frage ist, ob Ihr andere Alternativen für mein Problem kennt?

    Danke!!!


  • 1
  • jenses jenses
    Flash Gordon
    0 x
    3087 Beiträge
    106 Hilfreiche Beiträge
    19. 09. 2014, 12:53

    Du kannst schon section_frame dafür nutzen,
    du mußt im BE ja lediglich das TCA so anpassen,
    daß daraus ein multi select wird.

    Schwieriger wird die Auswertung für das Frontend,
    da wird section_frame ja standardmäßig per CASE-Objekt ausgewertet,
    und das nützt uns in diesem Fall dann ja nichts.

    Eventuell kann man die Auswertung per TEXT-Objekt und split machen (siehe tt_content.bullets),
    ansonsten würde ich mir dazu in PHP eine user function schreiben.

  • audi_s audi_s
    T3PO
    0 x
    28 Beiträge
    0 Hilfreiche Beiträge
    19. 09. 2014, 13:44

    danke - ich schaue mir das mal an...

    Hier ein anderer Ansatz mit einer Frage: ich habe tt_content und das TCA erweitert um eine Selectbox mit multiselect (maxitems) erweitert:

    'config'=>array(
    'type'=>'select',
    'size' => '5',
    'minitems' => 1,
    'maxitems' => 9999,
    'autoSizeMax' => 5,
    'items'=>array(
    array('klasse1','klasse1'),
    array('klasse2','klasse2'),
    array('klasse3','klasse3'),
    array('klasse4','klasse4'),
    (...)

    Über t3lib_extMgm::addTCAcolumns, t3lib_extMgm::addToAllTCAtypes und am Ende t3lib_extMgm::addStaticFile (für meine setup.txt) kriege ich die Ausgabe auch hin.

    [code]tt_content.stdWrap.outerWrap = <div class="{field:tx_myclasses}> | </div>[/code]

    Das Problem:aufrgund des type=select, wird mir die Liste der Klassen kommasepariert ausgegeben.

    class="klasse1,klasse2"

    Habt Ihr eine Idee, wie ich die Kommas durch ein Leerzeichen ersetzen kann?

    VIELEN DANK!

  • Chrissli Chrissli
    Jedi-General
    0 x
    1016 Beiträge
    28 Hilfreiche Beiträge
    19. 09. 2014, 15:43

    In den aktuellen Typo3 Versionen bietet stdWrap eine "replace"-Funktion

    God's in his heaven, all's right with the world

  • audi_s audi_s
    T3PO
    0 x
    28 Beiträge
    0 Hilfreiche Beiträge
    19. 09. 2014, 18:38

    ah, ok!
    wobei mir ehrlich gesagt in diesem Fall nicht ganz klar ist,
    wie und wo ich bei

    tt_content.stdWrap.outerWrap = <div class="{field:tx_myclasses}> | </div>

    ansetzen soll?
    Ich muss ja das {field:tx_myclasses} (mit insertData=1) ansprechen beim replacement.
    Wie mache ich das in diesem Fall?
    Oder denke ich zu kompliziert?
    Keine Ahnung, wie die Syntax da aussehen könnte?!

    Danke für die Hilfe!!

  • audi_s audi_s
    T3PO
    0 x
    28 Beiträge
    0 Hilfreiche Beiträge
    19. 09. 2014, 18:47

    ich habe es geschafft, etwas in dem String anzupassen, allerdings scheint das replacement vor dem indertData zu passieren, denn an die ersetzten Werte komme ich nicht ran :-(
    Eine andere Idee?

    Danke :-)

  • 1