Zugriff auf fremde Datenquellen (Typo3 "pages" Tabelle) [Gelöst]

  • rayphi rayphi
    Padawan
    0 x
    58 Beiträge
    0 Hilfreiche Beiträge
    20. 06. 2013, 12:06

    Hallo zusammen,

    ich bin gerade dabei eine Extension zu schreiben mit der ich mein Seitenbaum sowie die Seiteninhalte als XML in ein Verzeichnis x "Publizieren" kann.

    Jedoch scheitere ich gerade daran die Seiten aus der "pages" Tabelle zu beziehen.
    Folgendes Beispiel: ( bezogen aus der [url=http://www.mittwald.de/fileadmin/downloads/pdf/dokus/Extbase_Fluid_Dokumentation.pdf]Mittwald Extbase/Fluid Dokumentation PDF Seite 140 - Zugriff auf fremde Datenquellen[/url] )

    1. # typo3conf/ext/my_publisher/Configuration/TypoScript/setup.txt
    2. # Module configuration
    3. module.tx_mypublisher {
    4. persistence {
    5. classes {
    6. Tx_MyPublisher_Domain_Model_Page {
    7. mapping {
    8. tableName = pages
    9. recordType = Tx_MyPublisher_Domain_Model_Page
    10. columns {
    11. uid.mapOnProperty = uid
    12. pid.mapOnProperty = pid
    13. sorting.mapOnProperty = sorting
    14. deleted.mapOnProperty = deleted
    15. title.mapOnProperty = title
    16. is_siteroot.mapOnProperty = is_siteroot
    17. }
    18. }
    19. }
    20. }
    21. storagePid = {$module.tx_mypublisher.persistence.storagePid}
    22. }
    23. view {
    24. templateRootPath = {$module.tx_mypublisher.view.templateRootPath}
    25. partialRootPath = {$module.tx_mypublisher.view.partialRootPath}
    26. layoutRootPath = {$module.tx_mypublisher.view.layoutRootPath}
    27. }
    28. }

    Neben dieser TypoScript Konfiguration habe ich natürlich auch das Entsprechende Model "Page"
    sowie den Dazugehörigen Controller etc. wenn ich nun mit viel Hoffnung auf Extbase magic
    $pages = $this->pageRepository->findAll(); aufrufe bekomme ich natürlich keinen Eintrag,
    da findAll() ja die Einträge für das Model aus der Tabelle tx_mypublisher_domain_page beziehen möchte.

    Bedeutet wahrscheinlich, dass ich eine initiale Methode brauche die mir aus der Typo3 "pages" meine Page Objekte erstellt und diese in der "tx_mypublisher_domain_page" ablegt.

    Könnte mir jemand sagen ob das so richtig ist wie ich das Denke und vor allem wie ich das hinbekomme?

    Update: Ich arbeite mit einem Typo3 6.1 Falls diese Information von Nöten ist ;)

    Freue mich auf Konstruktives Feedback
    Mit bestem Gruß
    Raphael ;)


  • 1
  • kitsunet kitsunet
    Flash Gordon
    0 x
    2559 Beiträge
    27 Hilfreiche Beiträge
    20. 06. 2013, 14:05

    Das mapping mit tableName ist gerade dafür da die Daten aus einer anderen Tabelle zu holen, insofern brauchst du gar keine Tabelle für dein Model. Ich bin mir aber nicht sicher ob die Extbase Persistence überhaupt mit der pages Tabelle arbeiten kann. Alleine storagePid macht ja wenig Sinn, denn das bezieht sich ja auf Page.uid, ich weiß aber gerade nicht ob man das sinnvoll umgehen kann.

    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!

  • rayphi rayphi
    Padawan
    0 x
    58 Beiträge
    0 Hilfreiche Beiträge
    20. 06. 2013, 14:28

    :D Hab den selben beitrag nochmal auf Stackoverflow verfasst und hab an der stelle eher gegenteiliges zu hören bekommen dort habe ich den Teil mit der storagePid etc. nämlich weggelassen dachte das wäre an der stelle nicht so relevant...
    http://stackoverflow.com/questions/17212184/typo3-extbase-access-to-external-data-sources-typo3-pages-table

  • rayphi rayphi
    Padawan
    0 x
    58 Beiträge
    0 Hilfreiche Beiträge
    25. 06. 2013, 17:28

    Hier die Kurzfassung der Lösung:

    den folgenden record_type weglassen

    1. record_type = 'Tx_MyPublisher_Domain_Model_Page'

    und folgende Methode zum Repository hinzufügen

    1. public function initializeObject() {
    2. $this->defaultQuerySettings = $this->objectManager->create('Tx_Extbase_Persistence_Typo3QuerySettings');
    3. $this->defaultQuerySettings->setRespectStoragePage(FALSE);
    4. }

    Für die ausführliche Antwort einmal folgenden Link besuchen ;)
    http://stackoverflow.com/questions/17212184/typo3-extbase-access-to-external-data-sources-typo3-pages-table

    Mit bestem Gruß
    Raphael

  • 1