[Frage] tt_content.search bildausgabe mit FAL TYPO3-Version: -

  • OnkelEdi OnkelEdi
    Jedi-Ritter
    0 x
    129 Beiträge
    2 Hilfreiche Beiträge
    25. 03. 2015, 08:45

    Hallo,

    wahrscheinlich ist es garnicht schwer, aber ich hab ein kleines Problem mit der Ausgabe von Bildern über TS mit FAL.
    Situation ist folgende:
    Es geht um eine Mitarbeiterdarstellung. Die Mitarbeiter liegen in Form von tt_content Datensätzen vor.
    Es soll auch nach Mitarbeiter gesucht werden können. Das ist mit der tt_content.search über Typoscript gelöst.
    (ja ich weiß es gibt Addressdatensätze und gute Suchextensions, aber das soll halt so bleiben).
    Das ganze hat bis jetzt auf typo3 4.5 gut geklappt und geht auch nach dem upgrade immer noch.
    Nur das Bild wird natürlich auf Grund von FAL nicht mehr ausgegeben.
    Folgender Code wurde für die Ausgabe des Bildes im tt_content searchresult verwendet:

    1. tt_content.search.20.renderObj.30.20 = IMAGE
    2. tt_content.search.20.renderObj.30.20{
    3. file.import = uploads/pics/
    4. file.import.field = tt_content_image
    5. maxW = 200
    6. wrap = <div class="image">|</div>
    7. }
    Ich weiß es gibt unzählige Anleitungen für die Ausgabe mit FAL (FILES statt IMAGE, threadItAsReference etc.), hat aber bis jetzt nix funktioniert, außerdem sind das fast alles nur Beispiele, die sich auf das Media-feld der Seite beziehen.

    Kann mir vielleicht jemand weiterhelfen oder hat irgendwie einen Hinweis/Link?
    typo3 version ist übrigens 6.2.10

    Grüße
    Eduard


  • 1
  • Chrissli Chrissli
    Jedi-General
    0 x
    1016 Beiträge
    28 Hilfreiche Beiträge
    25. 03. 2015, 11:38

    Etwa so:

    1. 20 = FILES
    2. 20 {
    3. references {
    4. table = tt_content
    5. uid.data = field:uid
    6. # dummthin from here
    7. fieldName = image
    8. }
    9. renderObj = IMAGE
    10. renderObj {
    11. file.import.data = file:current:uid
    12. file.treatIdAsReference = 1
    13. altText.data = file:current:title
    14. }
    15. }

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

  • OnkelEdi OnkelEdi
    Jedi-Ritter
    0 x
    129 Beiträge
    2 Hilfreiche Beiträge
    25. 03. 2015, 12:08

    Hi,

    danke für die schnelle Antwort. Bekomme damit folgende Fehlermeldung:

    Catchable Fatal Error: Argument 3 passed to TYPO3\CMS\Frontend\Page\PageRepository::getFileReferences() must be an array... usw

    und noch so einige mehr :)

    Wahrscheinlich ist das nur nicht die richtige Stelle in der tt_content search an der ich es anbringe.

  • Chrissli Chrissli
    Jedi-General
    0 x
    1016 Beiträge
    28 Hilfreiche Beiträge
    25. 03. 2015, 16:16

    Nur damit wir die gleiche Basis haben.
    Der TS-Teil sollte nun so aussehen:

    1. tt_content.search.20.renderObj.30 = COA # das sollte ja ein COA sein, standard ist das ja nicht vorhanden
    2. ...
    3. tt_content.search.20.renderObj.30.20 = FILES
    4. tt_content.search.20.renderObj.30.20 {
    5. references {
    6. table = tt_content
    7. uid.data = field:uid
    8. fieldName = image
    9. }
    10. renderObj = IMAGE
    11. renderObj {
    12. file.import.data = file:current:uid
    13. file.treatIdAsReference = 1
    14. maxW = 200
    15. altText.data = file:current:title
    16. wrap = <div class="image">|</div>
    17. }
    18. }

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

  • OnkelEdi OnkelEdi
    Jedi-Ritter
    0 x
    129 Beiträge
    2 Hilfreiche Beiträge
    25. 03. 2015, 16:47

    Hallo,

    ja, danke. Ich glaub das hat gepasst mit dem COA, hab ich wohl bloß nicht hingeschrieben.
    Funktioniert aber trotzdem nicht.
    Hier ist der ganze tt_content.search code. Falls du Lust hast ihn dir anzusehen. Vielleicht findest du einen Fehler. ...schön wärs jedenfalls :)

    1. 244 = TEXT
    2. 244.value = |
    3. 244.stdWrap.dataWrap = <div class="mitarbeiter" id="c{field:uid}">|</div>
    4. }
    5.  
    6.  
    7. #Suchen
    8. #suchbereich
    9. tt_content.search.20.allowedCols = tt_content.header-bodytext-image
    10.  
    11.  
    12.  
    13.  
    14.  
    15. #eingabemaske
    16. tt_content.search.30{
    17. target = _self
    18. badMess = Bitte das Feld ausfüllen
    19.  
    20. }
    21.  
    22. tt_content.search.30.dataArray.10 >
    23. tt_content.search.30.dataArray.10 {
    24. label = Spezielle Suche <br />Bitte Namen eingeben
    25. type = *sword = input, 15, 30
    26. }
    27. #suchbutton
    28. tt_content.search.30.dataArray.40.value.data >
    29. tt_content.search.30.dataArray.40.value = suchen
    30.  
    31. tt_content.search.30.REQ.labelWrap.wrap >
    32. tt_content.search.30.REQ.labelWrap.wrap =
    33. tt_content.search.stdWrap >
    34. tt_content.search.30.layout >
    35. tt_content.search.30.layout = <div class="li_bypass">###LABEL###&nbsp;</div><div class="li_bypass">###FIELD###</div>
    36.  
    37.  
    38. #Definition Suchbereich in db
    39. tt_content.search.30.dataArray.20 >
    40. tt_content.search.30.dataArray.20 {
    41. valueArray >
    42. type = scols = hidden
    43. value = tt_content.header
    44. }
    45. tt_content.search.30.dataArray.30 >
    46. tt_content.search.30.dataArray.30 {
    47. type = stype= hidden
    48. value = 491
    49. }
    50.  
    51. tt_content.search.30.wrap = <div class="staffSearch"> | </div>
    52.  
    53. #kein Datensatz
    54. tt_content.search.20.noResultObj.10.data >
    55. tt_content.search.20.noResultObj.10.value = Uuuups! diesen Mitarbeiter kennen wir nicht
    56. tt_content.search.20.noResultObj.10.wrap >
    57. tt_content.search.20.noResultObj.10.wrap = <h3> | </h3>
    58. tt_content.search.20.noResultObj.20 = TEXT
    59. tt_content.search.20.noResultObj.20{
    60. value = zurück zur Auswahl
    61. wrap = <p class="textp1"><a href="index.php?mitarbeiter"> | </a></p>
    62. }
    63.  
    64. #gefundenes darstellen
    65. tt_content.search.20.renderObj.10.typolink >
    66. tt_content.search.20.renderObj.10.wrap >
    67. tt_content.search.20.renderObj.10.field >
    68. tt_content.search.20.renderObj.10.htmlSpecialChars >
    69.  
    70.  
    71.  
    72. tt_content.search.20.renderObj.10 = COA
    73. tt_content.search.20.renderObj.10.10 = TEXT
    74. tt_content.search.20.renderObj.10.10{
    75. field = tt_content_header
    76. htmlSpecialChar = 1
    77. }
    78. tt_content.search.20.renderObj.10.stdWrap{
    79. crop = 200 | ...
    80. wrap = <h3> | </h3>
    81. }
    82. tt_content.search.20.renderObj.10 >
    83.  
    84.  
    85.  
    86.  
    87. tt_content.search.20.renderObj.20.stdWrap{
    88. crop = 200 | ...
    89. wrap = <h5> | </h5>
    90. }
    91. tt_content.search.20.renderObj.20 >
    92.  
    93. tt_content.search.20.renderObj.30 = COA
    94. tt_content.search.20.renderObj.30.10 = TEXT
    95. tt_content.search.20.renderObj.30.10{
    96. field = tt_content_bodytext
    97. parseFunc < lib.parseFunc_RTE
    98. wrap = <div class="info"> | </div>
    99. #stripHtml = 1
    100. #htmlSpecialChar = 1
    101. #doNotStripHTML = 1
    102. }
    103.  
    104. tt_content.search.20.renderObj.30.20 = FILES
    105. tt_content.search.20.renderObj.30.20 {
    106. references {
    107. table = tt_content
    108. uid.data = field:uid
    109. fieldName = image
    110. }
    111. renderObj = IMAGE
    112. renderObj {
    113. file.import.data = file:current:uid
    114. file.treatIdAsReference = 1
    115. maxW = 200
    116. altText.data = file:current:title
    117. wrap = <div class="image">|</div>
    118. }
    119. }
    120.  
    121.  
    122.  
    123.  
    124.  
    125.  
    126.  
    127.  
    128.  
    129. tt_content.search.20.layout{
    130. 10 >
    131. 20 >
    132. wrap = <div class="staffSearchResult mitarbeiter">###RESULT###</div>
    133. }
    134.  
    135.  
    136. [globalVar = TSFE:id = 501]
    137. tt_content.search.25 = TEXT
    138. tt_content.search.25.value = <a href="index.php?id=499" title="wieninger Mitarbeiter"> zurück zu Mitarbeiter </a>
    139. [global]
    140.  
    141. tt_content.search.30{
    142. labelWrap.wrap =
    143. labelWrap.wrap >
    144. commentWrap.wrap >
    145. dataArray.40.type = submit=submit
    146. }
    147.  
    148. #sectionframe für Mitarbeiterdarstellung
    149. 244 = TEXT
    150. 244.value = |
    151. 244.stdWrap.dataWrap = <div class="mitarbeiter" id="c{field:uid}">|</div>
    152. }

    Gruß
    Eduard

  • Chrissli Chrissli
    Jedi-General
    0 x
    1016 Beiträge
    28 Hilfreiche Beiträge
    25. 03. 2015, 17:31

    Oh, da bin ich etwas überfragt.
    Wenn ich mir die Definition der allowedCols oder auch bei der Ausgabe die Felddefinition "tt_content_bodytext" anschaue, ist hier ja irgendeine spezielle Logik im Hintergrund am Werk.
    Möglich wäre z.b. das der Bezug tt_content zur File-Tabelle gar nicht aufgebaut wird/werden kann,
    aber wie gesagt, blanke Theorie.
    Der FILES-Teil sollte so eigentlich für's rendern funktionieren, ich habe das selbst so im Einsatz.
    Sorry o.O

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

  • OnkelEdi OnkelEdi
    Jedi-Ritter
    0 x
    129 Beiträge
    2 Hilfreiche Beiträge
    26. 03. 2015, 07:08

    Hi,

    ioa... ich hab das vom Vorgänger übernommen und nur ein wenig angepasst...
    Soll halt nur Header, Bodytext und Bild ausgegeben werden. Kommt dann alles in ein div und fertig :)
    Aber trotzdem danke :)

    Gruß
    Eduard

  • OnkelEdi OnkelEdi
    Jedi-Ritter
    0 x
    129 Beiträge
    2 Hilfreiche Beiträge
    26. 03. 2015, 12:20

    Hallöle,

    habs jetzt noch mal mit deiner Methode probiert und bekomme folgenden Fehler:

    #1: PHP Catchable Fatal Error: Argument 3 passed to TYPO3\CMS\Frontend\Page\PageRepository::getFileReferences() must be an array, null given, called in /html/typo3/typo3_src-6.2.10/typo3/sysext/frontend/Classes/ContentObject/FilesContentObject.php on line 321 and defined in /html/typo3/typo3_src-6.2.10/typo3/sysext/frontend/Classes/Page/PageRepository.php line 1357

    Also tut sich was :) irgendwie
    Weißt du vielleicht was ich damit anfangen soll?

    Gruß
    Eduard

  • dwildt dwildt
    T3PO
    0 x
    19 Beiträge
    0 Hilfreiche Beiträge
    28. 04. 2015, 15:55

    Hallo Eduard,
    herzlichen Dank für Euren Auftrag, den Fehler im TypoScript zu finden.

    Die beiden wesentlichen Stellen sind folgende:
    Siehe meine Kommentare im TypoScript-Schnipsel unten.

    1. tt_content {
    2. search {
    3. 20 {
    4. // Hier muss die uid enthalten sein, andernfalls steht diese im weiteren Verlauf nicht zur Verfügung.
    5. allowedCols = tt_content.uid-header-bodytext-image
    6. ...
    7. renderObj = COA
    8. renderObj {
    9. 10 = TEXT
    10. 10 {
    11. ...
    12. }
    13. 20 = FILES
    14. 20 {
    15. references {
    16. table = tt_content
    17. uid {
    18. // Hier muss tt_content_uid verwendet werden. Nur uid gibt die id der gefundenen Seite aus.
    19. field = tt_content_uid
    20. }
    21. fieldName = image
    22. }
    23. renderObj = IMAGE
    24. renderObj {
    25. file {
    26. import {
    27. data = file:current:originalUid // file:current:uid
    28. }
    29. }
    30. }
    31. }
    32. }
    33. }
    34. }
    35. }

    Viele Grüße
    Dirk

  • 1