21. 08. 2013, 18:38

Hallo,

ich habe hier vielleicht einen Bug gefunden, oder einfach nur meine Grenzen überschritten. Folgende Situation:

Ich habe in meiner Extension einen Hook zu $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['t3lib/class.t3lib_tcemain.php']['processCmdmapClass'] hinzugefügt. Die Methode wird auch korrekt ausgeführt. Es geht darum, dass Dateien, die zu einem Datensatz gehören, automatisch aus dem Uploads-Verzeichnis gelöscht werden, sobald der Datensatz gelöscht wird.

In meiner Methode hole ich mir das zu löschende Objekt und verarbeite meinen Code. Der Dateiname ist im Objekt gespeichert, der Pfad ist in den Settings der Extension konfiguriert. Wenn ich einen einzelnen Datensatz über die Mülltonne lösche, funktiniert dies wie gesagt einwandfrei.

Wenn ich nun aber die Zwischenablage Nr. 1 benutze, einen oder mehrere Datensätze markiere, und diese dann lösche, wird meine eingehookte Methode zwar auch ausgeführt, ich kann auch mein Extbase-Objekt aus dem Repository holen, jedoch kann ich nicht auf die Settings meiner Extension zugreifen. Die Settings sind quasi leer, nur gefüllt mit der Standardschablone:

  1. settings. EMPTY!
  2. persistence. storagePid
  3. classes. EMPTY!
  4. view. templateRootPath
  5. layoutRootPath
  6. partialRootPath
  7. defaultPid

Dies trifft in diesem "Moment" zu für alle Extbase-Extension, wohingegen ich auf Settings von auf pibase basierenden Extensions zugreifen kann.

Zur Erklärung noch kurz die Info, wie ich auf die Settings zugreife:

Ich habe mir eine Utility-Klasse geschrieben, in der ich über den Extbase-ObjectManager den ConfigurationManager hole und dort die entsprechenden Werte per getConfiguration() auslese. Als Parameter übergebe ich \TYPO3\CMS\Extbase\Configuration\ConfigurationManagerInterface::CONFIGURATION_TYPE_SETTINGS, allerdings mit einem bereits implementierten Fallback auf CONFIGURATION_TYPE_FULL_TYPOSCRIPT, falls die Settings leer sind. Das hatte ich mal beobachtet im Command-Controller-Umfeld.

Zu Debuggingzwecken lasse ich mir beim Auslesen das Ergebnis mit CONFIGURATION_TYPE_FULL_TYPOSCRIPT ausgeben, was eben obige "leere Schablonen" zu Tage fördert.

Was mache ich falsch, oder was macht Extbase falsch? Danke für Tipps
Martin