[phpBB Debug] PHP Warning: in file [ROOT]/ext/tas2580/seourls/event/listener.php on line 213: Undefined array key "FORUM_NAME"
REDAXO Forum • Community addon REDAXO 4.5 register_extension_points
Seite 1 von 1

Community addon REDAXO 4.5 register_extension_points

Verfasst: 21. Jun 2013, 08:41
von gupi
Hallo,
wenn ich in der Funktion "deleteUser($id)" der Klasse "rex_com_auth" die extension points "COM_AUTH_USER_DELETE" und "COM_AUTH_USER_DELETED" nutzen will,

Code: Alles auswählen

function deleteUser($id)
{
$delete = TRUE;
$delete = rex_register_extension_point("COM_AUTH_USER_DELETE", $delete, $id);
if(!$delete) { return FALSE; }

$id = (int) $id;
$gu = rex_sql::factory();
$gu->setQuery('delete from rex_com_user where id='.$id);

rex_register_extension_point("COM_AUTH_USER_DELETED", "", $id);

return TRUE;
}
stelle ich fest, dass der Parameter 'id' nicht übergeben wird.
Ein Blick in den Quellcode der Core-function "rex_register_extension_point(...)" zeigt mir auch warum das so ist:

Code: Alles auswählen

function rex_register_extension_point($extensionPoint, $subject = '', $params = array (), $read_only = false)
{
  global $REX;
  $ep_log_entry = array('type'=>'EP',
                        'name'=>$extensionPoint,
                        '$subject'=>$subject,
                        '$params'=>$params,
                        '$read_only'=>$read_only
                        ); /* ep log patch */

  $result = $subject;

  if (!is_array($params))
  {
    $params = array ();
  }
...
Der ursprüngliche Wert von $params geht verloren falls dieser kein Array ist. Dies ist aber hier der Fall.
Ich habe bei mir als workaround die "deleteUser" Funktion geändert und erfolgreich getestet:

Code: Alles auswählen

function deleteUser($id)
{
$delete = TRUE;
$delete = rex_register_extension_point("COM_AUTH_USER_DELETE", $delete, array('id'=>$id));
if(!$delete) { return FALSE; }

$id = (int) $id;
$gu = rex_sql::factory();
$gu->setQuery('delete from rex_com_user where id='.$id);

rex_register_extension_point("COM_AUTH_USER_DELETED", "", array('id'=>$id));

return TRUE;
}
LG
Gunter

Re: Community addon REDAXO 4.5 register_extension_points

Verfasst: 22. Jun 2013, 23:28
von Markus.Staab