Seite 1 von 1

FEU-Plugin: Function _delete

Verfasst: Mi 21. Mai 2008, 15:05
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.

Verfasst: Di 27. Mai 2008, 14:22
von emergence
macht an sich sinn...

verschoben...

Verfasst: Mi 28. Mai 2008, 09:43
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.