Mojen,
Versuche derzeit mittels Hook auf dem Save Botton im backend eine News erzeugen zu lassen.
Leider scheint das mappen der Tabel nicht zu funktionieren, da ich keine Fehlermeldung bekomme, kann ich das aber nicht genau sagen.
Ich habe bereits eine Extension geschrieben, die auf die gleiche Tabel zugreift. Wenn ich auf das Repository countAll() ansetzte, bekomme ich auch die Anzahl der auf Sichtbar stehenden News angezeigt.
Wenn ich allerdings, bei genau gleicher Konfiguration in einer weiteren Extension countAll() ausführe, bekomme ich 0 angezeigt. Somit gehe ich davon aus, dass die Extension keinen Zugriff auf die Tabel hat.
<?php namespace MiMa\Newmember\Hook; use \TYPO3\CMS\Core\Utility\GeneralUtility; use MiMa\Newmember\Domain\Model\News; use MiMa\Newmember\Domain\Repository\NewsRepository; class TCEmainHook { /** * newsRepository * * @var \MiMa\Newmember\Domain\Repository\NewsRepository */ protected $newsRepository; public function __construct(){ $objectManager = GeneralUtility::makeInstance('TYPO3\\CMS\\Extbase\\Object\\ObjectManager'); $this->newsRepository = $objectManager->get('MiMa\\Newmember\\Domain\\Repository\\NewsRepository'); } public function processDatamap_afterDatabaseOperations($status, $table, $id, array $fieldArray, \TYPO3\CMS\Core\DataHandling\DataHandler &$pObj){ if($table == "tx_newmember_domain_model_newmember"){ echo '<pre>'; $newNews = new \MiMa\Newmember\Domain\Model\News(); $this->newsRepository->add($newNews); //Ohne Wirkung echo '<pre>'; } } }
Kann mir das leider nicht erklären. Die „ext_typoscript_setup.txt“ beinhaltet:
# ============================================== # Persistence object mapping configuration # ============================================== config.tx_extbase.persistence.classes { MiMa\Newmember\Domain\Model\News { mapping { tableName = tx_news_domain_model_news recordType = 0 } } }
Diese wird von Typo3 auch geladen.
Wie gesagt, bei einer zweiten Extension, die genau gleich aufgebaut ist (außer das alles im Controller stattfindet, weil Frontend).
Es dürfte doch keinen Unterschied machen, ob ich in Hook oder Controller meine PHP ablege? Geladen wird sie ja schließlich.
Vielleicht habt ihr noch eine Idee.
Schon mal Danke für eine Antwort
Mfg
Power-Poler
Update:
habe die "ext_typoscript_setup.txt" jetzt abgeändert und die Storage PID angegeben. jetzt findet er zwar die Einträge, kann aber keine Anlegen. Keine Fehlermeldung, kein Error, einfach nichts.
Update2:
Hab jetzt einen PersistenceManager herangezogen.
Kann mir bitte jemand erklären, warum ich diesen an der stelle brauche, und was der genau tut?
http://blog.teamgeist-medien.de/2014/09/extbase-repository-update-persistiert-nicht-nimm-den-vorschlaghammer.html