FEU-Plugin: Function _delete

Gesperrt
OliverL
Beiträge: 870
Registriert: Do 28. Jun 2007, 09:28
Kontaktdaten:

FEU-Plugin: Function _delete

Beitrag von OliverL »

Moin moin,

leider musste ich auch bei der neuen 4.8.x feststellen das es keine Plugin-Function für das Löschen der Plugin-Daten gibt.

Hier für verwende ich bislang die CEC-Function die an 'Contenido.Permissions.FrontendUser.AfterDeletion' andockt.

Finde ich aber sehr unschön (aber updatefähig) denn wenn man mal etwas Überarbeitet überarbeitet man meistens nur CEC- oder Plugin-Anbindung.
Und somit ist die Gefahr das ein Plugin nicht mehr funktioniert fast doppelt so hoch.

Meine Lösung wäre (bzw. ist es jetzt) die Funktion "frontendusers_".$plugin."_delete" zu ergänzen.

File: include.frontend.user_edit.php Zeile: 70

Code: Alles auswählen

/* Check out if there are any plugins */
if (is_array($cfg['plugins']['frontendusers']))
{
    foreach ($cfg['plugins']['frontendusers'] as $plugin)
    {
        if (function_exists("frontendusers_".$plugin."_delete") &&
            function_exists("frontendusers_".$plugin."_store"))
        {
            $store = call_user_func("frontendusers_".$plugin."_delete", $feuser);
        }
    }
}
mfg
Oli

P.S.: Auch bei den anderen Plugins wäre das sinnvoll denn ich kenne kein Programm was nur Lesen und Speichern kann. Es ist immer ein Löschen dabei.
Zuletzt geändert von OliverL am Fr 10. Okt 2008, 21:24, insgesamt 1-mal geändert.
emergence
Beiträge: 10653
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence »

macht an sich sinn...

verschoben...
*** make your own tools (wishlist :: thx)
OliverL
Beiträge: 870
Registriert: Do 28. Jun 2007, 09:28
Kontaktdaten:

Beitrag von OliverL »

Hab das mal richtig nach geguckt und ergänzt.

File: include.frontend.user_edit.php
Zeile: 69

Code: Alles auswählen

	/* Check out if there are any plugins */
	if (is_array($cfg['plugins']['frontendusers']))
	{
		foreach ($cfg['plugins']['frontendusers'] as $plugin)
		{
			if (function_exists("frontendusers_".$plugin."_delete") ) 
			{
				$delete = call_user_func("frontendusers_".$plugin."_delete", $feusers);
			}
		}
	}

Das ganze übergibt das Objekt: $feusers in dem alle Daten des zulöschenden User enthalten sind. Habe erst gedacht das $idfrontenduser ausreicht zur klaren Identifizierung,
aber ich hatte damals schon mal ein Problem beim Newsletter (NL) das ich die ganze Klasse benötigte. Hab das Objekt mit "global $x" in die Plugin-Function geholt das gab größere Probleme beim NL-User-Importer. bla bla bla ... ist gut so.

Neue Funktion wäre:

Code: Alles auswählen

frontendusers_[i]PLUGIN[/i]_delete( $oFEU ) { 
$sFeuId = $oFEU->get("idfrontenduser");
// ...
}
[UPDATE: 29.05.08]
Die Store-Funktion ist nicht mehr zwingend erforderlich da selbst bei der Darstellung eventuell Daten konvertiert, verarbeitet und gespeichert worden sein.

[UPDATE: 10.06.08]
Die Delete-Funktion wird natürlich nicht benötigt wenn man die Varaible (Objek) $feuser mit global in die Funktion _store holt und über $feuser->setProperty(...) die Daten speichert.
Aber bei größeren speicherungen mit extra DB-Tabelle wäre eine eigene Funktion hilfreich.
Gesperrt