Hi,
ich hatte bis Dato erst ein Posting in diesem Forum und war über
die Resonanz recht enttäuscht. Damit mal ein wenig Schwung
in den Laden kommt paste ich eine funzende Lösung für eine
Frontend-Formularsteuerung mit Update/Create/Delete auf eine
private Tabelle hier rein, die ich als Übung zum Selbststudium
erstellt habe.
Wäre übrigens eine heftig gute Idee, wenn die Damen und Herren
Teilnehmer, falls sie doch mal auf eine Lösung stoßen, diese ab-
schließend veröffentlichen.
<?php
/***************************************************************
* Copyright notice
* ...
* Das ist lediglich ein schneller hack, um die Typo3-Umgebung auszuprobieren
* und den Umgang mit globalen Daten, Tabellen und Formularen zu erlernen und
* zu verstehen.
*
* Das PHP-Coding bitte ich zu entschuldigen: das sind meine allerersten PHP-
* Zeilen. Die BaSH und C++ liegen mir ansonsten besser :)
*
* Das *Projektchen* ist zu klein und zu bescheiden, um es als eine Übungs-
* Extension auf Typo3.org zu laden. Dennoch mag es einem Anfänger oder
* Leuten (wie mir), die mit der Typo3-Dokumentation und der Resonanz und
* den Inhalten des Entwicklerforums Typo3.net unzufrieden sind, einige wichtige
* Hinweise für das Handling von Formularen in der Typo3-Umgebung liefern.
*
* Um das Beispiel vollständig lauffähig zu verwenden, ist mit dem "Extension
* Kickstarter" ein minimalistisches Frontend-Plugin mit dem Key "vaccess_profile"
* als lokale Extension anzulegen. Es ist nur eine einzige Tabelle mit den Nutz-
* Feldern 'lname' und 'fname' anzulegen:
*
* mysql> describe tx_vaccess_profile;
* +-----------+---------------------+------+-----+---------+----------------+
* | Field | Type | Null | Key | Default | Extra |
* +-----------+---------------------+------+-----+---------+----------------+
* ...
* | lname | varchar(60) | | | | |
* | fname | varchar(60) | | | | |
* +-----------+---------------------+------+-----+---------+----------------+
*
* Bitte nicht vergessen das Kennzeichen "USER cObjects are cached..."
* im Frontend-Plugin zu setzen. Es muss ferner in den Basis-Einstellungen
* für Typo3 das "EXT Editing" zugelassen sein.
*
* Um die Extnesion zu verwenden: dieses PHP-Script in die Datei
* "pi1/class.tx_vaccess_pi1.php" einfügen, die Extension laden und
* an beliebiger Stelle im Content als Plugin einfügen.
*
* Dieses Beispiel bezieht sich auf eine multilinguale Single-Tree-Site mit
* SSL-Verschlüsselung und authentisierten Frontend-Usern.
* Falls dies nicht erforderlich/gewünscht ist: einfach die Zeilen zwischen
* @BEGIN@ und @END@ löschen.
*
* Viel Spaß und viel Erfolg!
*
***************************************************************************************
* ...
*/
require_once(PATH_tslib."class.tslib_pibase.php");
class tx_vaccess_pi1 extends tslib_pibase {
var $prefixId = "tx_vaccess_pi1"; // Same as class name
var $scriptRelPath = "pi1/class.tx_vaccess_pi1.php"; // Path to this script relative to the extension dir.
var $extKey = "vaccess"; // The extension key.
/**
* für SQL-Statements auf unsichere Sonderzeichen prüfen
*/
function bad($st) {
if (strpos($st,';') || strpos($st,''') || strpos($st,'"') ) {
return true;
} else {
return false;
}
}
/**
* Handle für alle Aktionen auf dieser Site
*/
function main($content,$conf) {
// Meldungen und Fehlermeldungen bilingual
$MY_MESS = Array (
0 => Array (
"ERR_NOSEL" => "<h2>you didn't select a record!</h2><br>",
"ERR_EXIST" => "<h2>this last name is already recorded!</h2><br>",
"ERR_INSERT" => "<h2>error with table record insert!</h2><br>",
"ERR_DELETE" => "<h2>error with table record delete!</h2><br>",
"ERR_UPDATE" => "<h2>error with table record update!</h2><br>",
"ERR_AUTH" => "<h2>you're not logged in!</h2><br>",
"ERR_NODATA" => "<h2>no data found according to selection!</h2><br>",
"ERR_SSL" => "<h2>no secure https connection!</h2><br>",
"ERR_CHAR" => "<h2>illegal character!</h2><br>",
"HINT_INIT" => "<h3>inquire records/create a new record</h3><br>",
"HINT_HOME" => "reload this page"
),
2 => Array (
"ERR_NOSEL" => "<h2>Sie haben keinen Datensatz ausgewählt!</h2><br>",
"ERR_EXIST" => "<h2>dieser Nachname ist bereits definiert!</h2><br>",
"ERR_INSERT" => "<h2>Fehler beim Neuantrag in die Tabelle!</h2><br>",
"ERR_DELETE" => "<h2>Fehler beim Löschen von der Tabelle!</h2><br>",
"ERR_UPDATE" => "<h2>Fehler bei der Tabellen-Aktualisierung!</h2><br>",
"ERR_AUTH" => "<h2>Sie sind nicht angemeldet!</h2><br>",
"ERR_NODATA" => "<h2>keine der Selektion entsprechenden Daten gefunden!</h2><br>",
"ERR_SSL" => "<h2>keine sichere https-Verbindung!</h2><br>",
"ERR_CHAR" => "<h2>unzulässiges Zeichen!</h2><br>",
"HINT_INIT" => "<h3>Datensätze abfragen/neuen Datensatz anlegen</h3><br>",
"HINT_HOME" => "seite neu laden"
)
);
// globale Daten an das eigene Objekt übergeben
$lang = $GLOBALS["TSFE"]->sys_language_uid;
$this->conf=$conf;
$this->pi_setPiVarDefaults();
$this->pi_loadLL();
// @BEGIN@
// Sammelfehlerkennung für nachfolgende Session-Prüfungen
$illegal = 0;
// Benutzer angemeldet?
if ($GLOBALS["TSFE"]->fe_user->user == NULL) {
$content=$MY_MESS[$lang][ERR_AUTH]; // nicht angemeldet
$illegal = 1;
}
// Server/Browser-informationen lesen
$headers = apache_request_headers();
// überprüfen, ob eine SSL-Session besteht
$https=$headers["Referer"];
if (substr($https,0,5) <> 'https') {
$content=$MY_MESS[$lang][ERR_SSL]; // keine sichere Verbindung
$illegal = 1;
}
// Sammelfehler aufgetreten?
if ($illegal) {
$content.='<BR><BR>'.$this->pi_linkToPage($MY_MESS[$lang][HINT_HOME],$GLOBALS["TSFE"]->id).'</P>';
return $this->pi_wrapInBaseClass($content);
}
// @END@
/**********************************************************************************************************************************
Dialog-Auswertung: der Submit-Button wurde auf der Seite gedrückt bzw. die Seite wurde erstmalig aufgerufen
**********************************************************************************************************************************/
/**********************************************************************************************************************************
Event: SEARCH_BUTTON nach INIT
der eingegebene Suchstring wird als Match auf 'lname' verwendet. Die Suchergebnisse werden in
einer Tabelle mit Radio-Buttons zur Auswahl ausgegeben.
Folge-Events: SELECT_BUTTON, REMOVE_BUTTON, EXIT_BUTTON
IN: "[lname]" als Suchstring
OUT: "[AUSWAHL] := lname" aus einem Radio-Button
**********************************************************************************************************************************/
if (isset($this->piVars[search_button])) {
// Protokollierung der gewählten Aktion
$content='<H2>SEARCH['.$this->piVars['DATA']['lname'].']</H2><BR>';
// unzulässige Sonderzeichen enthalten?
if ($this->bad($this->piVars['DATA']['lname'])) {
$content.=$MY_MESS[$lang][ERR_CHAR].'<BR><BR>'.$this->pi_linkToPage($MY_MESS[$lang][HINT_HOME],$GLOBALS["TSFE"]->id).'</P>';
return $this->pi_wrapInBaseClass($content);
}
// mit dem Namensfragment ähnliche Namen auslesen
$query = "SELECT * FROM tx_vaccess_profile WHERE lname like '%".$this->piVars['DATA']['lname']."%' ORDER BY lname";
$res = mysql(TYPO3_db,$query);
$records = mysql_num_rows($res);
// keine entsprechenden Daten gefunden
if (!$records) {
$content.=$MY_MESS[$lang][ERR_NODATA].'<BR><BR>'.$this->pi_linkToPage($MY_MESS[$lang][HINT_HOME],$GLOBALS["TSFE"]->id).'</P>';
return $this->pi_wrapInBaseClass($content);
}
// Kopf der Auswahlliste mit Radio-Buttons in einer Tabelle wegschreiben
$content.='
<form action="'.$this->pi_getPageLink($GLOBALS["TSFE"]->id).'" method="POST">
<input type="hidden" name="no_cache" value="1">
<table cellpadding="2" cellspacing="2" border="0" style="text-align: left;">
<tbody>';
// Zeilenzähler für Positionierung der Buttons
$rcount = 0;
// je Datensatz einen Radio-Button setzen
while ( ($row=mysql_fetch_assoc($res)) ) {
$rcount++;
$content.='
<tr>
<td>
<input type="radio" name="'.$this->prefixId.'[DATA][AUSWAHL]" value="'.$row["lname"].'">
<spacer type="horizontal" size="20">
</td>
<td>
<b>'.$row["lname"].'</b>
</td>
<td>
<b>'.$row["fname"].'</b>
<spacer type="horizontal" size="20">
</td>
<td>
</td>';
// Ändern, Löschen- und Fertig-Button auf der ersten und letzten Zeile (wenn mehr als 20 Datensätze) ausgeben
if ($rcount == 1|| ( $rcount == $records && $records > 20) ) {
$content.='
<td style="vertical-align: top;">
<input type="submit" name="'.$this->prefixId.'[edit_button]" value="Aendern">
</td>
<td style="vertical-align: top;">
<input type="submit" name="'.$this->prefixId.'[remove_button]" value="Loeschen">
</td>
<td style="vertical-align: top;">
<input type="submit" name="'.$this->prefixId.'[exit_button]" value="Fertig">
</td>';
} else {
$content.='
<td>
</td>
<td>
</td>
<td>
</td>';
}
$content.='</tr>';
}
// Tabelle und Formular abschließen
$content.='
</tbody>
</table>
</form>';
}
/**********************************************************************************************************************************
Event: NEW_BUTTON nach INIT
Es wird ein Eingabedialog für einen neuen Nachnamen und Vornamen aufgebaut.
Folge-Events: INSERT_BUTTON, EXIT_BUTTON
IN: -/-
OUT: [lname] und [fname] aus 2 Input-Feldern
**********************************************************************************************************************************/
else if (isset($this->piVars[new_button])) {
$content='
<H2>NEW</H2><BR>
<form action="'.$this->pi_getPageLink($GLOBALS["TSFE"]->id).'" method="POST">
<input type="hidden" name="no_cache" value="1">
<table cellpadding="2" cellspacing="2" border="0" style="text-align: left;">
<tbody>
<tr>
<td style="vertical-align: top; ">
Last Name<br>
</td>
<td style="vertical-align: top;">
<b><input type="text" name="'.$this->prefixId.'[DATA][lname]" value=""></b>
</td>
<td style="vertical-align: top;">
<input type="submit" name="'.$this->prefixId.'[insert_button]" value="Einfuegen">
</td>
</tr>
<tr>
<td style="vertical-align: top; ">
First Name<br>
</td>
<td style="vertical-align: top;">
<b><input type="text" name="'.$this->prefixId.'[DATA][fname]" value=""></b>
</td>
<td style="vertical-align: top;">
<input type="submit" name="'.$this->prefixId.'[exit_button]" value="Fertig">
</td>
</tr>
</tbody>
</table>
</form>';
}
/**********************************************************************************************************************************
Event: INSERT_BUTTON nach NEW_BUTTON
der neu eingegebene Datensatz wird eingetragen und eine Meldung ausgegeben
Folge-Events: EXIT_BUTTON
IN: static [lname] aus einem hidden und [fname] aus einem text-Feld
OUT: -/-
**********************************************************************************************************************************/
else if (isset($this->piVars[insert_button])) {
$content='<H2>INSERT['.$this->piVars['DATA']['fname'].','.$this->piVars['DATA']['lname'].']</H2><BR>';
// unzulässige Sonderzeichen enthalten oder Leereingabe?
if ($this->bad($this->piVars['DATA']['fname']) || !strlen($this->piVars['DATA']['fname']) ||
$this->bad($this->piVars['DATA']['lname']) || !strlen($this->piVars['DATA']['lname'])) {
$content.=$MY_MESS[$lang][ERR_CHAR].'<BR><BR>'.$this->pi_linkToPage($MY_MESS[$lang][HINT_HOME],$GLOBALS["TSFE"]->id).'</P>';
return $this->pi_wrapInBaseClass($content);
}
// ist der Name bereits eingetragen?
$query = "SELECT * FROM tx_vaccess_profile WHERE lname = '".$this->piVars['DATA']['lname']."'";
$res = mysql(TYPO3_db,$query);
// Datensätze gefunden?
if (mysql_num_rows($res)) {
$content.=$MY_MESS[$lang][ERR_EXIST].'<BR><BR>'.$this->pi_linkToPage($MY_MESS[$lang][HINT_HOME],$GLOBALS["TSFE"]->id).'</P>';
return $this->pi_wrapInBaseClass($content);
}
// neuen Datensatz eintragen
$query = "INSERT INTO tx_vaccess_profile ( lname, fname ) VALUES ( '".strtoupper($this->piVars['DATA']['lname'])."', '".strtoupper($this->piVars['DATA']['fname'])."' )";
$res = mysql(TYPO3_db,$query);
if ($res <> 1) {
$content.=$MY_MESS[$lang][ERR_INSERT].'<BR><BR>'.$this->pi_linkToPage($MY_MESS[$lang][HINT_HOME],$GLOBALS["TSFE"]->id).'</P>';
return $this->pi_wrapInBaseClass($content);
}
// Ergebnis anzeigen
$content.='
<form action="'.$this->pi_getPageLink($GLOBALS["TSFE"]->id).'" method="POST">
<input type="hidden" name="no_cache" value="1">
<table cellpadding="2" cellspacing="2" border="0" style="text-align: left;">
<tbody>
<tr>
<td style="vertical-align: top; ">
Last Name<br>
</td>
<td style="vertical-align: top;">
<b>'.strtoupper($this->piVars['DATA']['lname']).'</b>
</td>
<td style="vertical-align: top;">
<input type="submit" name="'.$this->prefixId.'[exit_button]" value="Fertig">
</td>
</tr>
<tr>
<td style="vertical-align: top; ">
First Name<br>
</td>
<td style="vertical-align: top;">
<b>'.strtoupper($this->piVars['DATA']['fname']).'</b>
</td>
<td style="vertical-align: top;">
</td>
</tr>
</tbody>
</table>
</form>';
}
/**********************************************************************************************************************************
Event: EDIT_BUTTON nach SEARCH_BUTTON
Es wird ein Eingabedialog für den neuen Vornamen aufgebaut.
Folge-Events: UPDATE_BUTTON, EXIT_BUTTON
IN: "[AUSWAHL] := lname" aus einem Radio-Button
OUT: static [lname] aus einem hidden und [fname] aus einem text-Feld
**********************************************************************************************************************************/
else if (isset($this->piVars[edit_button])) {
$content='<H2>EDIT['.$this->piVars['DATA']['AUSWAHL'].']</H2><BR>';
if ($this->piVars['DATA']['AUSWAHL'] == '') {
$content.=$MY_MESS[$lang][ERR_NOSEL].'<BR><BR>'.$this->pi_linkToPage($MY_MESS[$lang][HINT_HOME],$GLOBALS["TSFE"]->id).'</P>';
return $this->pi_wrapInBaseClass($content);
}
// einzelnen Datensatz lt. angegebenem Namen lesen
$query = "SELECT * FROM tx_vaccess_profile WHERE lname = '".$this->piVars['DATA']['AUSWAHL']."'";
$res = mysql(TYPO3_db,$query);
// kein exakter Treffer bzw. keinen Datensatz gefunden?
if (mysql_num_rows($res) <> 1) {
$content.=$MY_MESS[$lang][ERR_NODATA].'<BR><BR>'.$this->pi_linkToPage($MY_MESS[$lang][HINT_HOME],$GLOBALS["TSFE"]->id).'</P>';
return $this->pi_wrapInBaseClass($content);
}
$row=mysql_fetch_assoc($res);
$content.='
<form action="'.$this->pi_getPageLink($GLOBALS["TSFE"]->id).'" method="POST">
<input type="hidden" name="no_cache" value="1">
<input type="hidden" name="'.$this->prefixId.'[DATA][lname]" value="'.$row["lname"].'">
<table cellpadding="2" cellspacing="2" border="0" style="text-align: left;">
<tbody>
<tr>
<td style="vertical-align: top; ">
Last Name<br>
</td>
<td style="vertical-align: top;">
<b>'.$row["lname"].'</b>
</td>
<td style="vertical-align: top;">
<input type="submit" name="'.$this->prefixId.'[update_button]" value="Aendern">
</td>
</tr>
<tr>
<td style="vertical-align: top; ">
First Name<br>
</td>
<td style="vertical-align: top;">
<input type="text" name="'.$this->prefixId.'[DATA][fname]" value="'.$row["fname"].'">
</td>
<td style="vertical-align: top;">
<input type="submit" name="'.$this->prefixId.'[exit_button]" value="Fertig">
</td>
</tr>
</tbody>
</table>
</form>';
}
/**********************************************************************************************************************************
Event: UPDATE_BUTTON nach EDIT_BUTTON
der eingegebene Vorname wird im Datensatz 'lname' aktualisiert und eine Meldung ausgegeben
Folge-Events: EXIT_BUTTON
IN: static [lname] aus einem hidden und [fname] aus einem text-Feld
OUT: -/-
**********************************************************************************************************************************/
else if (isset($this->piVars[update_button])) {
$content='<H2>CHANGE['.$this->piVars['DATA']['fname'].']</H2><BR>';
// unzulässige Sonderzeichen enthalten oder Leereingabe?
if ($this->bad($this->piVars['DATA']['fname']) || !strlen($this->piVars['DATA']['fname'])) {
$content.=$MY_MESS[$lang][ERR_CHAR].'<BR><BR>'.$this->pi_linkToPage($MY_MESS[$lang][HINT_HOME],$GLOBALS["TSFE"]->id).'</P>';
return $this->pi_wrapInBaseClass($content);
}
// den einzelnen Datensatz lt. angegebenem Namen testlesen
$query = "SELECT * FROM tx_vaccess_profile WHERE lname = '".$this->piVars['DATA']['lname']."'";
$res = mysql(TYPO3_db,$query);
// kein exakter Treffer bzw. keinen Datensatz gefunden?
if (mysql_num_rows($res) <> 1) {
$content.=$MY_MESS[$lang][ERR_NODATA].'<BR><BR>'.$this->pi_linkToPage($MY_MESS[$lang][HINT_HOME],$GLOBALS["TSFE"]->id).'</P>';
return $this->pi_wrapInBaseClass($content);
}
// den Datensatz aktualisieren
$query = "UPDATE tx_vaccess_profile SET fname= '".strtoupper($this->piVars['DATA']['fname'])."' WHERE lname = '".$this->piVars['DATA']['lname']."'";
$res = mysql(TYPO3_db,$query);
if ($res <> 1) {
$content.=$MY_MESS[$lang][ERR_UPDATE].'<BR><BR>'.$this->pi_linkToPage($MY_MESS[$lang][HINT_HOME],$GLOBALS["TSFE"]->id).'</P>';
return $this->pi_wrapInBaseClass($content);
}
// Ergebnis anzeigen
$content.='
<form action="'.$this->pi_getPageLink($GLOBALS["TSFE"]->id).'" method="POST">
<input type="hidden" name="no_cache" value="1">
<table cellpadding="2" cellspacing="2" border="0" style="text-align: left;">
<tbody>
<tr>
<td style="vertical-align: top; ">
Last Name<br>
</td>
<td style="vertical-align: top;">
<b>'.$this->piVars['DATA']['lname'].'</b>
</td>
<td style="vertical-align: top;">
<input type="submit" name="'.$this->prefixId.'[exit_button]" value="Fertig">
</td>
</tr>
<tr>
<td style="vertical-align: top; ">
First Name<br>
</td>
<td style="vertical-align: top;">
<b>'.strtoupper($this->piVars['DATA']['fname']).'</b>
</td>
<td style="vertical-align: top;">
</td>
</tr>
</tbody>
</table>
</form>';
}
/**********************************************************************************************************************************
Event: REMOVE_BUTTON nach SELECT_BUTTON
der ausgewählte Datensatz wird angezeigt und eine Löschbestätigung angefordert.
Folge-Events: DELETE_BUTTON, EXIT_BUTTON
IN: "[AUSWAHL] := lname" aus einem Radio-Button
OUT: static [lname] und [fname] aus 2 hidden Feldern
**********************************************************************************************************************************/
else if (isset($this->piVars[remove_button])) {
$content='<H2>REMOVE['.$this->piVars['DATA']['AUSWAHL'].']</H2><BR>';
if ($this->piVars['DATA']['AUSWAHL'] == '') {
$content.=$MY_MESS[$lang][ERR_NOSEL].'<BR><BR>'.$this->pi_linkToPage($MY_MESS[$lang][HINT_HOME],$GLOBALS["TSFE"]->id).'</P>';
return $this->pi_wrapInBaseClass($content);
}
// einzelnen Datensatz lt. angegebenem Namen lesen
$query = "SELECT * FROM tx_vaccess_profile WHERE lname = '".$this->piVars['DATA']['AUSWAHL']."'";
$res = mysql(TYPO3_db,$query);
// kein exakter Treffer bzw. keinen Datensatz gefunden?
if (mysql_num_rows($res) <> 1) {
$content.=$MY_MESS[$lang][ERR_NODATA].'<BR><BR>'.$this->pi_linkToPage($MY_MESS[$lang][HINT_HOME],$GLOBALS["TSFE"]->id).'</P>';
return $this->pi_wrapInBaseClass($content);
}
$row=mysql_fetch_assoc($res);
$content.='
<form action="'.$this->pi_getPageLink($GLOBALS["TSFE"]->id).'" method="POST">
<input type="hidden" name="no_cache" value="1">
<input type="hidden" name="'.$this->prefixId.'[DATA][lname]" value="'.$row["lname"].'">
<input type="hidden" name="'.$this->prefixId.'[DATA][fname]" value="'.$row["fname"].'">
<table cellpadding="2" cellspacing="2" border="0" style="text-align: left;">
<tbody>
<tr>
<td style="vertical-align: top; ">
Last Name<br>
</td>
<td style="vertical-align: top;">
<b>'.$row["lname"].'</b>
</td>
<td style="vertical-align: top;">
<input type="submit" name="'.$this->prefixId.'[delete_button]" value="Loeschen">
</td>
</tr>
<tr>
<td style="vertical-align: top; ">
First Name<br>
</td>
<td style="vertical-align: top;">
<b>'.$row["fname"].'</b>
</td>
<td style="vertical-align: top;">
<input type="submit" name="'.$this->prefixId.'[exit_button]" value="Fertig">
</td>
</tr>
</tbody>
</table>
</form>';
}
/**********************************************************************************************************************************
Event: DELETE_BUTTON nach REMOVE_BUTTON
der angegebene Datensatz 'lname' wird gelöscht und es wird eine Meldung ausgegeben.
Folge-Events: EXIT_BUTTON
IN: static [lname] und [fname] aus 2 hidden Feldern
OUT: -/-
**********************************************************************************************************************************/
else if (isset($this->piVars[delete_button])) {
$content='<H2>DELETE['.$this->piVars['DATA']['lname'].']</H2><BR>';
// den einzelnen Datensatz lt. angegebenem Namen testlesen
$query = "SELECT * FROM tx_vaccess_profile WHERE lname = '".$this->piVars['DATA']['lname']."'";
$res = mysql(TYPO3_db,$query);
// kein exakter Treffer bzw. keinen Datensatz gefunden?
if (mysql_num_rows($res) <> 1) {
$content.=$MY_MESS[$lang][ERR_NODATA].'<BR><BR>'.$this->pi_linkToPage($MY_MESS[$lang][HINT_HOME],$GLOBALS["TSFE"]->id).'</P>';
return $this->pi_wrapInBaseClass($content);
}
// den Datensatz löschen
$query = "DELETE FROM tx_vaccess_profile WHERE lname = '".$this->piVars['DATA']['lname']."'";
$res = mysql(TYPO3_db,$query);
if ($res <> 1) {
$content.=$MY_MESS[$lang][ERR_DELETE].'<BR><BR>'.$this->pi_linkToPage($MY_MESS[$lang][HINT_HOME],$GLOBALS["TSFE"]->id).'</P>';
return $this->pi_wrapInBaseClass($content);
}
// Ergebnis anzeigen
$content.='
<form action="'.$this->pi_getPageLink($GLOBALS["TSFE"]->id).'" method="POST">
<input type="hidden" name="no_cache" value="1">
<table cellpadding="2" cellspacing="2" border="0" style="text-align: left;">
<tbody>
<tr>
<td style="vertical-align: top; ">
Last Name<br>
</td>
<td style="vertical-align: top;">
<b>'.$this->piVars['DATA']['lname'].'</b>
</td>
<td style="vertical-align: top;">
<input type="submit" name="'.$this->prefixId.'[exit_button]" value="Fertig">
</td>
</tr>
<tr>
<td style="vertical-align: top; ">
First Name<br>
</td>
<td style="vertical-align: top;">
<b>'.$this->piVars['DATA']['fname'].'</b>
</td>
<td style="vertical-align: top;">
</td>
</tr>
</tbody>
</table>
</form>';
}
/**********************************************************************************************************************************
Event: INIT
initialer Aufruf der Seite: Es wird ein Eingabedialog für für einen Suchstring oder eine Neueingabe aufgebaut.
Folge-Events: NEW_BUTTON, SEARCH_BUTTON, EXIT_BUTTON
IN: -/-
OUT: "[lname]" als Match-String
**********************************************************************************************************************************/
else {
$content='
<H2>INIT</H2><BR>
<form action="'.$this->pi_getPageLink($GLOBALS["TSFE"]->id).'" method="POST">
<input type="hidden" name="no_cache" value="1">
<table cellpadding="2" cellspacing="2" border="0" style="text-align: left;">
<tbody>
<tr>
<td style="vertical-align: top; ">
Last Name<br>
</td>
<td style="vertical-align: top;">
<input type="text" name="'.$this->prefixId.'[DATA][lname]" value="">
</td>
<td style="vertical-align: top;">
<input type="submit" name="'.$this->prefixId.'[search_button]" value="Suchen">
</td>
</tr>
<tr>
<td style="vertical-align: top; ">
</td>
<td style="vertical-align: top;">
</td>
<td style="vertical-align: top;">
<input type="submit" name="'.$this->prefixId.'[new_button]" value="Neu">
</td>
</tr>
</tbody>
</table>
</form>';
}
return $this->pi_wrapInBaseClass($content);
}
}
if (defined("TYPO3_MODE") && $TYPO3_CONF_VARS[TYPO3_MODE]["XCLASS"]["ext/vaccess/pi1/class.tx_vaccess_pi1.php"]) {
include_once($TYPO3_CONF_VARS[TYPO3_MODE]["XCLASS"]["ext/vaccess/pi1/class.tx_vaccess_pi1.php"]);
}
?>