Passenden Bereich im Object-Browser ausfindig machen

  • DirkHo DirkHo
    T3PO
    0 x
    8 Beiträge
    0 Hilfreiche Beiträge
    29. 09. 2011, 15:14

    Hallo,

    ich habe diese Frage auch schon in der Typo3-Mailinglist gefragt, dort jedoch leider keine Antwort erhalten.

    Und zwar will ich beim Seiteninhaltselement "Bilder" dem umschließenden "ul"-tag eine ID verpassen, um darüber dann ein jQuery-Skript zu starten.

    Nun wurde mir bereits der Tipp gegeben, ich solle doch mal im Object-Browser unter

    tt_content.image.20.1

    zu suchen. Dort wurde ich jedoch nicht fündig. Ich habe dann jedoch über die CSS-Klasse "csc-textpic-imagewrap" fündig geworden.

    Und zwar

    tt_content.image.20.imageStdWrap.dataWrap = <div class="csc-textpic-imagewrap" style="width:{register:totalwidth}px;"> | </div>

    allerdings fehlt da das der ul-tag. Auch da wurde ich vermeintlich unter

    tt_content.image.20.rendering.ul

    fündig. Allerdings brachten Anpassungen dort gar nichts.

    Meine Fragen nun:

    a) Wie geht man denn vor um die entsprechenden Bereiche im Object-Browser zu finden? Wenn ich z.B. den dataWrap wie oben beschrieben gefunden habe weiß ich ja immer noch nicht, wo denn nun der ul-tag herkommt.

    b) Wie setze ich denn eine ID in TypoScript? addClasses habe ich bisher als Key im Object-Browser schon gefunden, addId, o.ä. allerdings noch nicht.

    Wäre super, wenn ihr mir weiterhelfen könntet. So langsam weiß ich nämlich echt nicht mehr weiter.

    Vielen Dank und viele Grüße,

    Dirk


  • 1
  • varchar varchar
    T3PO
    0 x
    8 Beiträge
    0 Hilfreiche Beiträge
    30. 09. 2011, 00:33

    Hi DirkHo,

    ... tt_content.image.20.1 zu suchen ... Dort wurde ich jedoch nicht fündig. Ich habe dann jedoch über die CSS-Klasse "csc-textpic-imagewrap" fündig geworden. tt_content.image.20.1 ...

    Grundsätzlich ist das was Du machst der richtige Weg um das FE-Rendering zu manipulieren. Schau aber zusätzlich im "Template Analyzer" mal in die gesamte Notation von tt_content.image.. der css_styled_content rein. Dann sollten Dir die Zusammenhänge klarer werden. Das "tt_content.image-Setup" alleine ist umfangreich und der Object-Browser zeigt Dir mehr einen "Teilauschnitt" des momentanen Setups. Der Analyzer zeigt das gesamte TS: da sieht man dann dass der gesetzte Wert nur in Abhängigkeit von irgendwas anderem gilt. (bsp: wrappe <ul>|</ul> wenn feld caption aber etwas enthält dann wrappe <div>|</div>)

    Wenn Du im Content Element die Bilder als ul ausgeben willst, müsstest Du das default rendering als dl erst auf ul ändern:

    1. tt_content.image.20.renderMethod = ul

    Und zwar will ich beim Seiteninhaltselement "Bilder" dem umschließenden "ul"-tag eine ID verpassen, um darüber dann ein jQuery-Skript zu starten.

    1. tt_content.image.20.rendering.ul.noRowsStdWrap.wrap = <ul id=ul{field: uid}>|</ul>
    2. tt_content.image.20.rendering.ul.noRowsStdWrap.insertData=1

    das tuts aber auch nur dann, wenn bei der Bildauswahl im Content Element "keine Reihen" angehakt ist ... (Abhängigkeiten ...)

    Die mit "tt_content.image.20.x." erzeugten Bild- & Text/wBild Content Elemente werden auf der Seite wird in [i]Abhängigkeit[/i] der im Formular des/der Content Elements eingestellten Werte wie Caption, Position, Bildskalierung usw. teils sehr unterschiedlich als HTML Code gerendert. Und das für jedes Bild in jedem Bild- bzw. Text/wBild Element. Wenn Du also in das Rendering von einzelnen Bildern oder der Liste der Bilder eingreifen, wären Eventualitäten wie Caption - ja oder nein, ein Bild oder mehrere, Regen oder Sonnenschein :-) immer alle zu berücksichtigen.

    Wenn Du eine id="xyz" reinschreibst, dann hast Du u.U. doppelte ids auf einer Seite sobald Du zweimal das Inhaltselement Bild-/Text/mBild verwendest => . Da musst Du die id="xyz-1" oder so :-) vereinzigartigen ...

    b) Wie setze ich denn eine ID in TypoScript? addClasses habe ich bisher als Key im Object-Browser schon gefunden, addId, o.ä. allerdings noch nicht.

    Die Content Elemente die tt_content.xxx.20 liefert sind regelmäßig "viele" und nicht "einzig". Daher halt classes. Ids werden immer
    zusammengesetzt aus einem unique Attribut, wie der Content-Element-UID.
    Siehe: Die id="c1234", die Du brauchst um die Bilder im Dom zu fiden gibts schon: und zwar einmal um jedes Content-Element <div> gewrappt. (Auch in css_styled_content zu finden).

    1. tt_content.stdWrap.innerWrap.cObject.default.10.value =<div id="c{field:uid}"

    damit hättest Du doch einen identifier für <ul> innerhalb des <div> für JQuery. Würde das nicht JQuery nicht ausreichen, die Bilder zu finden?

  • DirkHo DirkHo
    T3PO
    0 x
    8 Beiträge
    0 Hilfreiche Beiträge
    01. 10. 2011, 22:10

    Hallo varchar,

    vielen, vielen Dank für deine ausführliche Antwort! Ich werde mir das morgen oder spätestens am Montag im Template Analyzer anschauen und dann versuchen entsprechend umzusetzen.

    Vielen Dank und viele Grüße,

    Dirk

  • 1