Ich habe das mal genauso gemacht wie von Dir vorgeschlagen und kann kein (vom PIM verursachtes) Fehlverhalten feststellen. Die Systemeinträge werden entsprechend entfernt. Dass es in der con_plugins_rel keine Einträge gibt, ist bei der vorliegenden plugin.xml-Datei normal: Es werden lediglich Relations für Actions, Areas sowie Navigationseinträge (navm sowie navs) vorgenommen. Hieraus entsteht auch Dein Problem: Du nimmst lediglich einen frame-Eintrag vor, ohne eine eigene Area zu definieren. Die von Dir definierte Area "mod" merkt er sich nicht, weil sie ja zum Core gehört. Aus dem Grund kann er den frame-Eintrag auch nicht entfernen. Ich sehe hier aber durchaus einen Bedarf und werde dazu mal ein Ticket anlegen. Das ist nämlich "unschön".
Du kannst das durch folgende Core-Code-Ergänzung bei Dir lokal fixen (nicht getestet!):
Datei class.pimpluginsetup.install.php (Ordner contenido/plugins/pim/classes/setup)
Funktion _installAddFrames() (ab Zeile 505), ersetze Zeile 528 durch:
Code: Alles auswählen
$item = $this->_ApiFrameFileCollection->create($attributes['area'], $attributes['frameId'], $file->get('idfile'));
// Set a relation
$this->_PimPluginRelationsCollection->create($item->get('idframefile'), $pluginId, 'framefile');
Datei class.pimpluginsetup.uninstall.php (Ordner contenido/plugins/pim/classes/setup)
Ergänze folgende Zeilen in der Funktion uninstall() (ab Zeile 188), z. B. nach Zeile 221:
Code: Alles auswählen
// Delete entries with relations to *_frame_files
if (!empty($relations['framefile'])) {
$this->_ApiFrameFileCollection->deleteByWhereClause("idframefile IN('" . join("', '", $relations['framefile']) . "')");
}
Für die Ticketumsetzung muss ich mir dann überlegen, wie das noch etwas schöner geht, da es jetzt zwei Möglichkeiten im Code gibt, Framefiles zu löschen. Ich achte darauf, dass es dann "framefile" weiterhin heißt, damit Du bei einem Update auf die nächste CONTENIDO-Version keine Probleme haben wirst!