[Frage] Felder aus tt_content an user_func übergeben [Gelöst] TYPO3-Version: -

  • patriq patriq
    T3PO
    0 x
    14 Beiträge
    0 Hilfreiche Beiträge
    27. 09. 2014, 21:39

    Hallo Miteinander,

    was mache ich da falsch? An die Funktion werden keine Felder vom tt_content übergeben.

    1. tt_content.stdWrap.postUserFunc=my_class->my_func
    2. tt_content.stdWrap.postUserFunc.var=TEXT
    3. tt_content.sstdWrap.postUserFunc.var.value.field=header

    Der übergebene Parameter ist dann leer, selbstverständlich nach cObjGetSingle-Behandlung.

    Wenn ich field=uid einsetze, bekommt die Funktion nach cObjGetSingle die UID der Seite.
    Auch schon mit {field:uid} bzw. {field:header} etc. getestet - mit dem gleichen Ergebnis.
    Ich brauch hier aber ein Feld von tt_content.

    Danke im vorraus,
    Patrick

  • patriq patriq
    T3PO
    0 x
    14 Beiträge
    0 Hilfreiche Beiträge
    30. 09. 2014, 12:06 - Lösung

    Hallo Chrissli,
    auf jeden Fall mal Danke für Deine Hilfe.

    Ich habe heraufgefunden wie das alternativ funktioniert. In meinen Augen wäre zwar ne Umsetzung wie in meinem Ursprungspost lieber, aber hauptsache es geht.

    Die Lösung:
    In der Klasse wird beim Aufruf die Eigenschaft $cObj erstellt, welches das cObj des Aufrufers enthält.
    Somit stehen da auch die Felder des betroffenen tt_content Datensatzes zur Verfügung und nach meinem obigen Beispiel kann auf den Header in der Function mit $this->cObj->data['header'] zugegriffen werden.

    Viele Grüße,
    Patrick


  • 1
  • Chrissli Chrissli
    Jedi-General
    0 x
    1016 Beiträge
    28 Hilfreiche Beiträge
    29. 09. 2014, 09:34

    Mal abgesehen davon, dass du hier

    1. tt_content.sstdWrap.postUserFunc.var.value.field=header

    einen Tippfehler hast, warum greifst du nicht direkt auf
    1. var.field = header

    zu sondern machst den Umweg über value?

    Allerdings bin ich mir nicht sicher, ob postUserFunc überhaupt im
    scope des jeweiligen CE ausgeführt wird...

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

  • patriq patriq
    T3PO
    0 x
    14 Beiträge
    0 Hilfreiche Beiträge
    29. 09. 2014, 09:43

    Hallo Chrissli,

    der Tippfehler kommt vom übertragen ins Forum. Somit also nicht vorhanden im Originalsystem.

    Nun, ich habe postUserFunc verwendet weil ich wo anders gelesen habe dass preUserFunc und die normale userfunc declaration auf jeden fall nicht im Scope des CE sein sollen.

    var.field=header hatte ich auch schon, scheidet auch aus. Hab das nur mit meinem aktuellen tand aus dem System übertragen.

    Dann ist postUserFunc offensichtlich auch nicht im Scope. Such a mist.

    Irgendeine andere Idee?

    Patrick

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

    Kommt drauf an.
    Was hast du denn vor mit dem Header in der userFunc?

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

  • patriq patriq
    T3PO
    0 x
    14 Beiträge
    0 Hilfreiche Beiträge
    29. 09. 2014, 16:01

    Hallo Chrissli,

    würde das klappen, gäbe es jede Menge an Möglichkeiten.
    Z.B. Wörter im bodytext mit nem Lexikon-Hover versehen.

    Patrick

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

    Ok. Natürlich ist das immer abhängig davon, wie du deine Inhalte ausgibst, aber denkbar wäre z.b. mittels CONTENT dein renderObj als COA aufzubauen oder den entsprechenden Teil in tt_content auszunutzen um den header via LOAD_REGISTER ins Register zu laden, dann kannst du in deiner Funktion darauf zugreifen.

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

  • patriq patriq
    T3PO
    0 x
    14 Beiträge
    0 Hilfreiche Beiträge
    30. 09. 2014, 12:06

    Hallo Chrissli,
    auf jeden Fall mal Danke für Deine Hilfe.

    Ich habe heraufgefunden wie das alternativ funktioniert. In meinen Augen wäre zwar ne Umsetzung wie in meinem Ursprungspost lieber, aber hauptsache es geht.

    Die Lösung:
    In der Klasse wird beim Aufruf die Eigenschaft $cObj erstellt, welches das cObj des Aufrufers enthält.
    Somit stehen da auch die Felder des betroffenen tt_content Datensatzes zur Verfügung und nach meinem obigen Beispiel kann auf den Header in der Function mit $this->cObj->data['header'] zugegriffen werden.

    Viele Grüße,
    Patrick

  • 1