Auf array innerhalb eines Objekts zugreifen und über Fluid ausgeben(ObjektStorage)

  • oliando oliando
    Padawan
    0 x
    37 Beiträge
    0 Hilfreiche Beiträge
    31. 07. 2013, 17:30

    Hallo,

    ich bin gerade dabei eine kleine Extension zu schreiben. Dabei handelt es sich um das Verwalten des Fußbereichs einer Webseite. Der Footer beinhaltet unterschiedliche Elemente wie Logo, einfacher Beschreibungstext und PartnerLogos, die verlinkt sein sollen. Dafür habe ich eine 1:n Relation aufgebaut. Also 1 Item das n Partnerlogos enthält.(Besteht aus Bildlink, Bildname, Bildtitel). Die Ausgabe funktioniert auch soweit, dass mir alle Angaben des Item ausgegeben werden, jedoch die Partnerlogos nicht, da diese in einem ObjetStorage innerhalb des Item Objekts liegen. Wie schaffe ich es auf die einzelnen Bestandteile der Partnerlogos zuzugreifen und diese über Fluid auszugeben?
    Im Anhang habe ich einen Screenshot des debugten Item Objekts angehängt. Inhalte sind alle da, auch die Partnerlogos Objekte. Die Ausgabe funktioniert allerdings nicht.

    Hat jemand eine Idee oder eine Lösung dafür? Irgendwie stehe ich auf dem Schlauch

    Gruß
    Oliando

    Die Ausgabe des Item erfolgt:

    1. <table class="tx_sqsfooter" >
    2. <tr>
    3. <th><f:translate key="tx_sqsfooter_domain_model_item.desription" /></th>
    4. <th><f:translate key="tx_sqsfooter_domain_model_item.buttonlink" /></th>
    5. <th><f:translate key="tx_sqsfooter_domain_model_item.buttonlabel" /></th>
    6. <th><f:translate key="tx_sqsfooter_domain_model_item.headlinemiddle" /></th>
    7. <th><f:translate key="tx_sqsfooter_domain_model_item.linklistone" /></th>
    8. <th><f:translate key="tx_sqsfooter_domain_model_item.linklisttwo" /></th>
    9. <th><f:translate key="tx_sqsfooter_domain_model_item.headlineright" /></th>
    10. </tr>
    11.  
    12. <f:for each="{items}" as="item">
    13. <f:debug>{item}</f:debug>
    14. <tr>
    15. <td>{item.description}</td>
    16. <td>{item.buttonlink}</td>
    17. <td>{item.buttonlabel}</td>
    18. <td>{item.headlinemiddle}</td>
    19. <td>{item.linklistone}</td>
    20. <td>{item.linklisttwo}</td>
    21. <td>{item.headlineright}</td>
    22. </tr>
    23. </f:for>

    Die Ausgabe der Partnerlogos habe ich vergebens wie folgt erstellt:
    [code]

    1. <table class="tx_sqsfooter" >
    2. <tr>
    3. <th><f:translate key="tx_sqsfooter_domain_model_partner.imagename" /></th>
    4. <th><f:translate key="tx_sqsfooter_domain_model_partner.image" /></th>
    5. <th><f:translate key="tx_sqsfooter_domain_model_partner.imagelink" /></th>
    6. <th> </th>
    7. <th> </th>
    8. </tr>
    9.  
    10.  
    11. <f:for each="{item.partner}" as="partner">
    12. <tr>
    13. <td>{item.partner.imagename}</td>
    14. <td>{item.partner.image}</td>
    15. <td>{item.partner.imagelink}</td>
    16. </tr>
    17. </f:for>
    [/code]

    Beim debuggen über den VH ergab sich folgendes:

    Anhänge (1)
    objektStorage.PNG image/png 0,00 B 130 heruntergeladen
  • Hilfreichster Beitrag

  • kitsunet kitsunet
    Flash Gordon
    1 x
    2559 Beiträge
    27 Hilfreiche Beiträge
    05. 08. 2013, 06:13 - Hilfreichster Beitrag

    Schwer zu sagen, der gepostete Code sollte in Ordnung sein, wenn dein tatsächlicher Code nicht noch Leerzeichen/Tabs oder sowas irgendwo enthält und Du nicht mehr mit der Logoausgabe machst als die Zeilen die man hier sieht.

    config.baseURL = http://www.kitsunet.com/
    TYPO3 Flow und Neos Community Contact
    Release Manager TYPO3 Neos 1.1
    Ich habe Probleme mit den PMs hier, also schreibt mir bitte eine Mail oder über Twitter!


  • 1
  • oliando oliando
    Padawan
    0 x
    37 Beiträge
    0 Hilfreiche Beiträge
    01. 08. 2013, 20:07

    Hat niemand eine Idee oder einen Tipp?

  • kitsunet kitsunet
    Flash Gordon
    0 x
    2559 Beiträge
    27 Hilfreiche Beiträge
    01. 08. 2013, 21:28

    1. <f:for each="{item.partner}" as="partner">
    2. <tr>
    3. <td>{partner.imagename}</td>
    4. <td>{partner.image}</td>
    5. <td>{partner.imagelink}</td>
    6. </tr>
    7. </f:for>

    Versuch das mal.

    config.baseURL = http://www.kitsunet.com/
    TYPO3 Flow und Neos Community Contact
    Release Manager TYPO3 Neos 1.1
    Ich habe Probleme mit den PMs hier, also schreibt mir bitte eine Mail oder über Twitter!

  • oliando oliando
    Padawan
    0 x
    37 Beiträge
    0 Hilfreiche Beiträge
    02. 08. 2013, 16:28

    Vielen Dank für deinen Tipp. Habe ich getestet jedoch kommt folgender Fehler:

    Cannot cast object of type "TYPO3\CMS\Extbase\Persistence\ObjectStorage" to string.

    Habe in der for Schleife partner debugt wodurch mir folgender Fehler ausgegeben wird:

    PHP Catchable Fatal Error: Object of class TYPO3\CMS\Extbase\Persistence\ObjectStorage could not be converted to string in /var/www/web336/html/dev/typo3temp/Cache/Code/fluid_template/Sqsfooter_Item_action_list_314bcdecee889b08bbc9c7e07fd6c862f0e1042b.php line 820

    Woran könnte der Fehler liegen?

  • kitsunet kitsunet
    Flash Gordon
    1 x
    2559 Beiträge
    27 Hilfreiche Beiträge
    05. 08. 2013, 06:13

    Schwer zu sagen, der gepostete Code sollte in Ordnung sein, wenn dein tatsächlicher Code nicht noch Leerzeichen/Tabs oder sowas irgendwo enthält und Du nicht mehr mit der Logoausgabe machst als die Zeilen die man hier sieht.

    config.baseURL = http://www.kitsunet.com/
    TYPO3 Flow und Neos Community Contact
    Release Manager TYPO3 Neos 1.1
    Ich habe Probleme mit den PMs hier, also schreibt mir bitte eine Mail oder über Twitter!

  • oliando oliando
    Padawan
    0 x
    37 Beiträge
    0 Hilfreiche Beiträge
    05. 08. 2013, 10:07

    Wenn man den Wald vor lauter Bäume nicht sieht. Ich habe die zweite For-Schleife außerhalb der ersten gesetzt. Dann kann das ja nicht funktionieren.

    Folgender Code funktioniert:

    [code]

    1. <table class="tx_sqsfooter" >
    2. <tr>
    3. <th><f:translate key="tx_sqsfooter_domain_model_item.description" /></th>
    4. <th><f:translate key="tx_sqsfooter_domain_model_item.buttonlink" /></th>
    5. <th><f:translate key="tx_sqsfooter_domain_model_item.buttonlabel" /></th>
    6. <th><f:translate key="tx_sqsfooter_domain_model_item.headlinemiddle" /></th>
    7. <th><f:translate key="tx_sqsfooter_domain_model_item.linklistleft" /></th>
    8. <th><f:translate key="tx_sqsfooter_domain_model_item.linklistright" /></th>
    9. <th><f:translate key="tx_sqsfooter_domain_model_item.headlineright" /></th>
    10. <th> </th>
    11. <th> </th>
    12. </tr>
    13.  
    14. <f:for each="{items}" as="item">
    15. <f:debug>{item}</f:debug>
    16. <tr>
    17. <td>{item.description}</td>
    18. <td>{item.buttonlink}</td>
    19. <td>{item.buttonlabel}</td>
    20. <td>{item.headlinemiddle}</td>
    21. <td>{item.linklistleft}</td>
    22. <td>{item.linklistright}</td>
    23. <td>{item.headlineright}</td>
    24. </tr>
    25. <f:for each="{item.partner}" as="partner">
    26. <f:debug>{partner}</f:debug>
    27. <tr>
    28. <td>{partner.imagename}</td>
    29. <td>{partner.image}</td>
    30. <td>{partner.imagelink}</td>
    31. </tr>
    32. </f:for>
    33. </f:for>
    34.  
    [/code]

    Kitsunet, vielen Dank für deine Hilfe!

  • 1