Joachim: Typo3: css_styled_content - html modifizieren

Hi,

bin immer noch in meinem persönlichen Typo3-Selbsterfahrungskurs...

Inzwischen läuft also die vertikale (Ausklapp) Navi, eine Seitennavi, auch mailformplus habe ich weitgehend gezähmt. Dabei versuche ich aber zunächst, ohne allzuviel Extensions auszukommen, um auch die Typo3 Basics besser zu kapieren.

Was mich überhaupt nicht befriedigt sind die Möglichkeiten, simple Dinge wie eine Liste von (ggf. verlinkten) Bildern zu erstellen. Als einzige Option bietet sich hier das Download-Modul an, nur so kann man Bilder per Contentmodul in eine Liste laden. Aber ohweh: was macht css_styled_content daraus: eine Tabellenkontruktion.

Die Frage ist nun: kann ich den erzeugten html-Output manipulieren? Ich habe spasseshalber in meinen entsprechenden Marker mal eine untergeordnete Vorlage geladen, die ich mit renderObj befülle, weil ich das html selber erzeugen möchte. Das clearing für das Subtemplate habe ich ausgeschaltet, so dass es vom Parent-Template erbt.

Praktikabel erscheint mir das aber nicht, insbesondere, über die id des Eintrages gehen zu müssen. Ist eine entsprechende Extension also doch der einzige Weg, eine saubere, über den Fileadmin befüllbare Bilderliste zu generieren?

hier mal das Subtemplate:
seite.1.marks.CONTENTTEXT.10 = TEMPLATE
seite.1.marks.CONTENTTEXT.10 {
    template = FILE
    template.file = fileadmin/user_upload/templates/test.html
    marks.GALLERY = COA
    marks.GALLERY.10 = CONTENT
    marks.GALLERY.10 {
        wrap = <ul>|</ul>
        table = tt_content
 select.where = uid=52
        renderObj = TEXT
        renderObj.field = media
        renderObj.split {
            token = ,
            cObjNum = 1
            1.current = 1
            1.wrap = <li><img src="/uploads/media/|" /></li>
        }
    }
}

Gruesse, Joachim

--
Am Ende wird alles gut.
  1. bin immer noch in meinem persönlichen Typo3-Selbsterfahrungskurs...

    der wird lange dauern, aber sinnvoll sein ;) TYPO3 schreibt man in grossbuchstaben btw

    Dabei versuche ich aber zunächst, ohne allzuviel Extensions auszukommen, um auch die Typo3 Basics besser zu kapieren.

    äusserst sinnvoll, zu viele extensions sind der tod eines jeden typo3 - wenn man jemals versucht hat, ein web mit über 100[sic] extensions upzudaten, weiss man warum das eine schlechte idee ist - 5 bis 10 extensions reichen meistens bei weitem aus (mit ausnahme der vorinstallierten system extensions)

    Was mich überhaupt nicht befriedigt sind die Möglichkeiten, simple Dinge wie eine Liste von (ggf. verlinkten) Bildern zu erstellen. Als einzige Option bietet sich hier das Download-Modul an, nur so kann man Bilder per Contentmodul in eine Liste laden. Aber ohweh: was macht css_styled_content daraus: eine Tabellenkontruktion.

    nicht wirlich, du hast ggf. das falsche static-template gewählt ;) normalerweise sollte das ding eine extrem irre div-wüste mit vielen defintionslisten erzeugen - das entsprechende content element heisst "bild" oder "images only" - eine fileliste der ähliches ist das falsche :)

    Die Frage ist nun: kann ich den erzeugten html-Output manipulieren?

    ja, das sollst du sogar - denn der orignal html-output ist eine frechheit (wie du selbst sicher schon festgestellt hast)

    die ich mit renderObj befülle, weil ich das html selber erzeugen möchte.

    schlechte idee, nutze css_styled_content, überschreibe aber die typoscript-defintionen mit "normalen" elementen bzw schreibe die bestehenden um - das ist einfacher und verständlicher

    Das clearing für das Subtemplate habe ich ausgeschaltet, so dass es vom Parent-Template erbt.

    gute idee, vererbung der templates ist das um und auf bei jeder template-engine - wenn du templates oder nur teile davon nicht vererbst, kannst du gleich statische seiten machen (und jede einzeln)

    Praktikabel erscheint mir das aber nicht, insbesondere, über die id des Eintrages gehen zu müssen. Ist eine entsprechende Extension also doch der einzige Weg, eine saubere, über den Fileadmin befüllbare Bilderliste zu generieren?

    wie gesagt, du suchst das content-element "nur bild" (oder wie es auch immer in deiner version oder sprache heisst) - dinge direkt aus einer bestimmten seiten id zu holen ist nur dann schlau, wenn sie sich niemals ändert (z.b. die wurzelseite deines webs

    das fügst du ein - der daraus resultierende code (eben irgendwas mit vielen divs und definitionslisten und klassen wie etwa 'csc-textpic') kommt aus
    /typo3/sysext/css_styled_content/static/setup.txt - dort suchst du nach den betreffenden stellen

    für die bilder sollte das dort irgendwo so ab zeile 350 mit '# CType: image' losgehen, der rest findet sich dann irgendwo ab 1200 (aber aufpassen, das zeug wird für 'text mit bild' auch verwendet ;)

    hier mal das Subtemplate:

    gewöhne dir an die dinger "typoscript template" oder "extension template" zu nennen, dann findest du in der doku schneller hilfe

    seite.1.marks.CONTENTTEXT.10 = TEMPLATE
    seite.1.marks.CONTENTTEXT.10 {

    das page objekt "page" zu nennen ist kein fehler - ebenso nicht, wenn man mit "page.10" beginnt, ab und an möchte man in sagen wir "page.5" noch den html-head manipulieren oder noch andere dinge davor machen, lieber ein paar löcher lassen bei der nummerierung, sollte später was reinkommen
    anstatt mit markern (marks) mit subparts zu arbeiten auch nicht

    template = FILE
        template.file = fileadmin/user_upload/templates/test.html

    das template in "user_upload" zu packen ist ebenfalls unsinnig, isoliere das template vom wartbaren inhalt - das template ist nur ein "skin" der mit dem hinhalt nix zu tun hat, er hat da drin nix verloren ;)

    1. Hi Suit,

      vielen Dank für Deine - wie immer- ausführlichen Tipps. Hatte gestern leider Stress und konnte nicht reagieren.

      Das Typoscript zu überschreiben leuchtet mir ein, den Ansatz werde ich verfolgen und weiter berichten ;-)

      Überhaupt sind mir Tipps zur sinnvollen Strukturierung immer willkommen, ich denke, da kommt man als TYPO3-Anfänger am ehesten ins Schleudern. Btw.: Ich habe in einem Deiner Postings auch gelesen, dass es _keinen_ Sinn macht, den TYPO3-Header komplett auszuschalten, das werde ich also auch wieder umbasteln...

      Gruesse, Joachim

      --
      Am Ende wird alles gut.
      1. dass es _keinen_ Sinn macht, den TYPO3-Header komplett auszuschalten, das werde ich also auch wieder umbasteln...

        dass es keinen sinn macht, hab ich nicht gesagt (vermutlich nicht) und wenn, hätte ich das nicht sagen sollen :D

        diese funktion hat durchaus einen sinn - zb wenn du xml anstatt html ausgeben willst, dann hast du mit dem doctype oder dem head-element (und den kindern davon) keine freude

        oder wenn du anstatt html mal latex ausgeben willst :)

        was imho sinnvoll ist: die standard javascript und css-einbindung ausblenden sowie das title-element entfernen - diese kann man dann mit headerData im page-objekt wieder einfügen (mit "schönerem" code)