User kann keine Dateien löschen

Ein User (z.B. Editor, Redakteur) hat die entsprechenden Rechte um Dateien zu löschen, und trotzdem kommt diese Fehlermeldung:

You are not allowed to access the given folder: ""

Mit einem TYPO3 Admin-User ist die Datei aber löschbar, d.h. es sind nicht die Schreibrechte am Server, ein chmod 777 ändert also nichts. Es liegt an den TYPO3 Rechten, doch keine der Berechtigungs-Einstellungen hilft dabei.

Lösung: innerhalb des freigegebenen Ordners des Users einen Unterordner names „_recycler_“ anlegen.

Grund ist ein undocumented Feature von TYPO3: er sucht einen Ordner „_recycler_“. Dieser Ordner muss innerhalb der erlaubten Zugriffs-Rechte des Users liegen, z.B. user_upload/_recycler_/. Erst wenn auf Root Ebene keiner gefunden wurde, ist die Funktion „getNearestRecyclerFolder“ abgeschlossen. Doch blöderweise geht diese Funktion in übergeordnete Ordner, auf die der User keine Berechtigung hat.

Immerhin habe ich dadurch überhaupt erst herausgefunden, dass es auch bei Dateien eine Papierkorb Funktion gibt 🙂

Extbase Extension für 8.7

Ich eine Referenz-Extension für ExtBase 8.7 erstellt:

https://github.com/aschmutt/extbase_87

Die folgenden Neuerungen sind darin umgesetzt:

  • alles was nicht mehr in ext_tables.php gehört in Configuration/TCA/Overrides verschoben. Gute Beispiele dafür findet man auch in EXT:news
  • $_EXTKEY  entfernt
  • Doctrine Beispiel in der Repository Klasse

Den Extension Builder gabs zu dem Zeitpunkt noch nicht, mittlerweile ist der verfügbar unter:

https://github.com/FriendsOfTYPO3/extension_builder

Es lohnt sich auch in ext_scaffold von Helmut Hummel zu schauen, da wird vieles erklärt:

https://github.com/helhum/ext_scaffold

Could not load partial file Menu/Type-15

Diese Fehlermeldung erscheint, wenn man sich in TYPO3 7.6 eine Sitemap anzeigen lassen will:

Could not load partial file. Tried following paths: (…) typo3/sysext/fluid_styled_content/Resources
/Private/Partials/Menu/Type-15″

Ursache ist, dass in der fluid_styled_content Extension eine Template Datei fehlt. Da man den Core nicht verändern sollte, gibt es folgende Lösung: Weiterlesen

Migrate textmedia Fehler beim TYPO3 Update

Beim Update auf 7.6 oder 8.7 kann es sein, dass diese Update Funktion einen Fehler hat:

Migrate CTypes text, image and textpic to textmedia and move file relations from „image“ to „asset_references“

Update failed!

SQL-ERROR: Column 'assets' cannot be null

Auch bei Update auf 8.7 kann dieser Fehler auftreten:

SQL-ERROR: Data truncated for column 'media' at row 6

Ursache sind Konvertierungs-Fehler von Text nach Integer, die Werte NULL oder „“ werden nicht richtig konvertiert. Es kann auch von der FAL Konvertierung noch der Filename als String in dem Feld stehen.
Mit diesem SQL Befehl kann man sich erst mal alle Einträge anzeigen lassen: Weiterlesen

mysql_real_escape_string mit PHP7

Die Funktion mysql_real_escape_string ist in PHP7 nicht mehr vorhanden. Man kann sie folgendermaßen ersetzen:

mysqli_real_escape_string($GLOBALS['TYPO3_DB']->getDatabaseHandle(),$string);

Wenn man mit Search-Replace über den gesamten Code geht, folgendes eingeben:

Search: mysql_real_escape_string(
Replace: mysqli_real_escape_string($GLOBALS['TYPO3_DB']->getDatabaseHandle(),