Zum Inhalt springen

mit userFunc eine Datenbank leeren

Erstellt am 23. April 2008 · 4 Antworten · letzte Antwort am 24. April 2008

Tags: Frage

nihilfire ·

Hallo!
Ist es möglich mittels einer userFunc eine Datenbank zu leeren? Der Redakteur soll auf der Seite in einem seperaten Bereich einen Link anklicken können mit dem er diese Funktion dann auslöst:

class user_delete_list {
  function main()
  {
    $db_link = @mysql_connect($typo_db_host, $typo_db_username, $typo_db_password);
    $db_name = "foo";
    
    if($db_link) 
    {
      if(mysql_select_db($db_name))
      {
        $sql="DELETE * FROM foo_list";
        $result = mysql_db_query($sql) OR die(mysql_error());
      } 
    }
  }
}

beim TS-Code hab ich folgendes:

temp.LINK = TEXT
temp.LINK {
  wrap = <a href="">|</a>
  value = liste Leeren
  typolink.userFunc = user_delete_list->main
}

aber leider funktioniert das so nicht, kann mir da jemand weiterhelfen?

Gruß, nihilfire

berlindresden ·

In Deinem Beispiel würde die Datenbank doch schon beim erzeugen des Links gelöscht werden.

Mach einen Link auf eine extra Seite z.B. typolink.parameter = 17 , wo dann ein cObj USER_INT ist, welches die userFunc aufruft.

Dabei aber an includeLibs und Funktionsname mit user_ beginnend denken.

Grüße

nihilfire ·

Also, ich habe jetzt einen Link zu der neuen Seite erstellt, welche dann die userFunc ausführen soll.

TS auf der neuen Seite:

temp.meinElement = COA
temp.meinElement {
	10 = USER_INT
	10 {
		includeLibs = fileadmin/template/user_klasse.php
		userFunc = user_klasse->user_dl
	}
}

PHP-Code leicht verändert:

class user_klasse {
  function user_dl()
  {
    $db_username = 'foo';
    $db_password = 'foo'; 
    $db_host = 'foo';
  
    $db_link = @mysql_connect($db_host, $db_username, $db_password);
    $db_name = "foo";
    
    if($db_link) 
    {
      if(mysql_select_db($db_name))
      {
        $sql="TRUNCATE TABLE foo";
        $result = mysql_db_query($sql) OR die(mysql_error());
      } 
    }
  }
}

Es passiert nichts wenn die Seite aufgerufen wird, woran kann das liegen?

Gruß, nihilfire

berlindresden ·

Versuch mal:

page.includeLibs.doDelete = fileadmin/template/user_klasse.php

temp.meinElement = COA
temp.meinElement {
        10 = USER_INT
        10 {
                userFunc = user_klasse->user_dl
        }
}