Hallo zusammen,
ich möchte auf meinen Webseiten gern einen bestimmten Textblock – in dem Fall Ansprechpartner mit Kontaktinfos – anzeigen. Dieser soll je nach Seite unterschiedlich und von Redakteuren für die jeweilige Seite leicht auszuwählen sein, ohne dass sie selbst Elemente in einer Backend-Layout-Spalte o. ä. erstellen müssen.
Bei meinen bislang bescheidenen Typo3-Kenntnissen habe ich mir gedacht: Da der Textblock auch noch formatiert werden muss (HTML/CSS), erstelle ich einfach (ähnlich variierender Templates) für jeden der drei oder vier Ansprechpartner, die sich ja sowieso so gut wie nicht ändern, eine kleine HTML-Datei (mit dem komplett formatierten Textblock), lege die Dateien in einem freigegebenen Ordner ab und lasse die Redakteure in den Seiteneigenschaften die jeweils benötigte Datei als Medien-Ressource hinzufügen.
Würde es um Bilder gehen, wäre ich an der Stelle fertig, denn dazu habe ich das folgende Script gefunden, das einwandfrei funktioniert:
lib.headerimage = IMAGE
lib.headerimage {
file {
import.data = levelmedia:-1, slide
treatIdAsReference = 1
import.listNum = 0
}
}
Aaaaaber, ich möchte ja nicht ein Bild, sondern HTML-Code importieren. Bislang bin ich bei allen Versuchen, das Image-Objekt anders zu definieren (z. B: HTML oder FILE statt IMAGE) bzw. mit Inhalt zu füllen, gescheitert. Daher meine Frage: Wie kann ich auf genannte Art statt des Bildes eine HTML-Datei importieren?
Viele Grüße
Covsoul
Statt IMAGE wäre wohl TEMPLATE sinnvoll.
Danke für die Antwort!
Leider funktioniert auch das nicht unmittelbar, vermutlich, weil ich den nachfolgenden Teil nicht korrekt hinbekomme. 🙁
So oder so denke ich aber, dass es doch eigentlich auch mit einem im Vergleich zu TEMPLATE "einfacheren" TEXT- oder HTML-Objekt funktionieren müsste, oder? Das Template selbst und die Zuweisungen des (in dem Fall) lib.headerimage-Objektes zum entsprechenden Marker in meinem Template existieren ja bereits, und wie gesagt: Wenn ich das obige Script so verwende und als Media-Ressource ein Bild einbinde, funktioniert alles – nur dass ich statt des Bildes eben HTML-Content einbinden möchte.
Ich suche also so etwas in der Art (die Objektbezeichnung "headerimage" ist dann natürlich nicht passend, aber das ist für das Problem ja erstmal nicht relevant), nur dass es so nicht funktioniert:
lib.headerimage = HTML
lib.headerimage {
file {
import.data = levelmedia:-1, slide
treatIdAsReference = 1
import.listNum = 0
}
}
Das cObject HTML besitzt keine Eigenschaft file,
daher funktioniert dein Code nicht.
Ich empfehle dir dringend,
mal einen Blick (oder auch mehr) in die TS Ref zu werfen.
Die Dokumentation habe ich bereits einige Male dazu befragt. Leider komme ich dort nicht weiter, sonst wäre meine Bitte um Hilfe ja überflüssig gewesen. 😉 Ja, ich möchte irgendwann zum TS-Profi werden und mir alles selbst oder mit Hilfe der Doku beantworten können, dazu ist aber noch ein wenig mehr Aufwand notwendig, als ich bislang aufbringen konnte. Ich ändere das Schritt für Schritt - versprochen! Dennoch stehe ich jetzt gerade vor oben genanntem Problem und versuche eine Lösung dafür zu finden.
Nein, das HTML-Objekt hat in der Tat keine file-Eigenschaft. Das war mir bewusst und es sollte lediglich als Beispiel für das dienen, was ich erreichen möchte und was mit einem IMAGE-Objekt bereits funktioniert. Das FILE-Objekt dagegen hat eine file-Eigenschaft, aber auch mit der komme ich nicht vorwärts. Ich habe ja auch keine Datei an sich, sondern die Ressource...
lib.headerimage = FILE
lib.headerimage {
file {
import.data = levelmedia:-1, slide
treatIdAsReference = 1
import.listNum = 0
}
}
"This object returns the content of the file specified in the property "file"."
Es "returned" an der Stelle den content nicht. Und ja, das tut es nicht, weil ich etwas daran noch nicht verstehe und daher den Code falsch anwende. Auch nach dem Lesen der Referenz. Dennoch bin ich mir sicher, dass es so oder so ähnlich funktionieren muss, einen variablen Inhalt aus einer Medienressource anzeigen zu lassen. Die Frage ist nur: Wie, oder warum nicht so? 🙂