so, nun habe ich mal alles auf die flexible Lösung umgebaut und es läuft wie geschmiert
DANKE für Deine unverzichtbare Hilfe!.
Die "flexible" lösung schreit ja eigentlich geradezu nach einem Array und einer noch flexibleren Lösung für den Inputbereich, den es ja für unser neues Modul noch nicht gibt. Und vielleicht auch nicht unbedingt nötig ist, da ja hier jeder mit mageren PHP-Kenntnissen (wie ich
) das Teil selbst anpassen kann.
Code: Alles auswählen
<?php
$oFEUser = new FrontendUser;
$oFEUser->loadByPrimaryKey($auth->auth["uid"]); # Ist ja nur einer und der muss existieren, da nur in geschütztem Bereich sinnvoll
$sMessage = " ";
if ($_REQUEST["action"] == "save") {
# Daten überprüfen
if (($_REQUEST["Vorname"]) == "" || strlen($_REQUEST["Vorname"]) > 50) {
$sMessage = mi18n("Please specify a firstname with less than or equal 50 characters");
} else
if (($_REQUEST["Nachname"]) == "" || strlen($_REQUEST["Nachname"]) > 100) {
$sMessage = mi18n("Please specify the surname with less than or equal 100 characters");
} else
if (!is_numeric($_REQUEST["Postleitzahl"]) || strlen($_REQUEST["Postleitzahl"]) > 7) {
$sMessage = mi18n("Please specify a correct zip code, only numbers");
} else
if (($_REQUEST["Ort"]) == "" || strlen($_REQUEST["Ort"]) > 50) {
$sMessage = mi18n("Please specify a city with less than or equal 50 characters");
} else
if (($_REQUEST["Strasse"]) == "" || strlen($_REQUEST["Strasse"]) > 50) {
$sMessage = mi18n("Please specify Street/ No. with less than or equal 50 characters");
} else {
$oFEUser->setProperty("titel", "address", $_REQUEST["Titel"]);
$oFEUser->setProperty("vorname", "address", $_REQUEST["Vorname"]);
$oFEUser->setProperty("nachname", "address", $_REQUEST["Nachname"]);
$oFEUser->setProperty("postleitzahl", "address", $_REQUEST["Postleitzahl"]);
$oFEUser->setProperty("ort", "address", $_REQUEST["Ort"]);
$oFEUser->setProperty("strasse", "address", $_REQUEST["Strasse"]);
$oFEUser->setProperty("land", "address", $_REQUEST["Land"]);
$oFEUser->setProperty("geboren", "address", $_REQUEST["Geboren"]);
$oFEUser->setProperty("telefon", "address", $_REQUEST["Telefon"]);
$oFEUser->setProperty("fax", "address", $_REQUEST["Fax"]);
$oFEUser->setProperty("mobil", "address", $_REQUEST["Mobil"]);
$oFEUser->setProperty("email", "address", $_REQUEST["eMail"]);
$oFEUser->setProperty("homepage", "address", $_REQUEST["Homepage"]);
$sMessage = mi18n("Ihre Daten sind erfolgreich aktualisiert worden.");
$oFEUser->store(); # weiss gar nicht, ob das nötig ist
}
} else {
# Daten aus DB übernehmen und in REQUEST übertragen
$_REQUEST["Titel"] = $oFEUser->getProperty("titel", "address");
$_REQUEST["Vorname"] = $oFEUser->getProperty("vorname", "address");
$_REQUEST["Nachname"] = $oFEUser->getProperty("Nachname", "address");
$_REQUEST["Postleitzahl"] = $oFEUser->getProperty("postleitzahl", "address");
$_REQUEST["Ort"] = $oFEUser->getProperty("ort", "address");
$_REQUEST["Strasse"] = $oFEUser->getProperty("strasse", "address");
$_REQUEST["Land"] = $oFEUser->getProperty("land", "address");
$_REQUEST["Geboren"] = $oFEUser->getProperty("geboren", "address");
$_REQUEST["Telefon"] = $oFEUser->getProperty("telefon", "address");
$_REQUEST["Fax"] = $oFEUser->getProperty("fax", "address");
$_REQUEST["Mobil"] = $oFEUser->getProperty("mobil", "address");
$_REQUEST["eMail"] = $oFEUser->getProperty("email", "address");
$_REQUEST["Homepage"] = $oFEUser->getProperty("homepage", "address");
}
$oTpl = new Template;
$oTpl->reset();
$oTpl->set('s', 'MESSAGE', $sMessage);
$oTpl->set('d', 'FIELDTITLE', mi18n("Titel"));
$oTpl->set('d', 'FIELDTYPE', 'text');
$oTpl->set('d', 'FIELDNAME', 'Titel');
$oTpl->set('d', 'FIELDID', 'titel');
$oTpl->set('d', 'FIELDVALUE', $_REQUEST["Titel"]);
$oTpl->next();
$oTpl->set('d', 'FIELDTITLE', mi18n("Vorname"));
$oTpl->set('d', 'FIELDTYPE', 'text');
$oTpl->set('d', 'FIELDNAME', 'Vorname');
$oTpl->set('d', 'FIELDID', 'vorname');
$oTpl->set('d', 'FIELDVALUE', $_REQUEST["Vorname"]);
$oTpl->next();
$oTpl->set('d', 'FIELDTITLE', 'mi18n("Nachname")');
$oTpl->set('d', 'FIELDTYPE', 'text');
$oTpl->set('d', 'FIELDNAME', 'Nachname');
$oTpl->set('d', 'FIELDID', 'nachname');
$oTpl->set('d', 'FIELDVALUE', $_REQUEST["Nachname"]);
$oTpl->next();
$oTpl->set('d', 'FIELDTITLE', mi18n("Strasse"));
$oTpl->set('d', 'FIELDTYPE', 'text');
$oTpl->set('d', 'FIELDNAME', 'Strasse');
$oTpl->set('d', 'FIELDID', 'strasse');
$oTpl->set('d', 'FIELDVALUE', $_REQUEST["Strasse"]);
$oTpl->next();
$oTpl->set('d', 'FIELDTITLE', mi18n("Postleitzahl"));
$oTpl->set('d', 'FIELDTYPE', 'text');
$oTpl->set('d', 'FIELDNAME', 'Postleitzahl');
$oTpl->set('d', 'FIELDID', 'postleitzahl');
$oTpl->set('d', 'FIELDVALUE', $_REQUEST["Postleitzahl"]);
$oTpl->next();
$oTpl->set('d', 'FIELDTITLE', mi18n("Ort"));
$oTpl->set('d', 'FIELDTYPE', 'text');
$oTpl->set('d', 'FIELDNAME', 'Ort');
$oTpl->set('d', 'FIELDID', 'ort');
$oTpl->set('d', 'FIELDVALUE', $_REQUEST["Ort"]);
$oTpl->next();
$oTpl->set('d', 'FIELDTITLE', mi18n("Land"));
$oTpl->set('d', 'FIELDTYPE', 'text');
$oTpl->set('d', 'FIELDNAME', 'Land');
$oTpl->set('d', 'FIELDID', 'land');
$oTpl->set('d', 'FIELDVALUE', $_REQUEST["Land"]);
$oTpl->next();
$oTpl->set('d', 'FIELDTITLE', mi18n("Geboren"));
$oTpl->set('d', 'FIELDTYPE', 'text');
$oTpl->set('d', 'FIELDNAME', 'Geboren');
$oTpl->set('d', 'FIELDID', 'geboren');
$oTpl->set('d', 'FIELDVALUE', $_REQUEST["Geboren"]);
$oTpl->next();
$oTpl->set('d', 'FIELDTITLE', mi18n("Telefon"));
$oTpl->set('d', 'FIELDTYPE', 'text');
$oTpl->set('d', 'FIELDNAME', 'Telefon');
$oTpl->set('d', 'FIELDID', 'telefon');
$oTpl->set('d', 'FIELDVALUE', $_REQUEST["Telefon"]);
$oTpl->next();
$oTpl->set('d', 'FIELDTITLE', mi18n("Fax"));
$oTpl->set('d', 'FIELDTYPE', 'text');
$oTpl->set('d', 'FIELDNAME', 'Fax');
$oTpl->set('d', 'FIELDID', 'fax');
$oTpl->set('d', 'FIELDVALUE', $_REQUEST["Fax"]);
$oTpl->next();
$oTpl->set('d', 'FIELDTITLE', mi18n("Mobil"));
$oTpl->set('d', 'FIELDTYPE', 'text');
$oTpl->set('d', 'FIELDNAME', 'Mobil');
$oTpl->set('d', 'FIELDID', 'mobil');
$oTpl->set('d', 'FIELDVALUE', $_REQUEST["Mobil"]);
$oTpl->next();
$oTpl->set('d', 'FIELDTITLE', mi18n("eMail"));
$oTpl->set('d', 'FIELDTYPE', 'text');
$oTpl->set('d', 'FIELDNAME', 'eMail');
$oTpl->set('d', 'FIELDID', 'email');
$oTpl->set('d', 'FIELDVALUE', $_REQUEST["eMail"]);
$oTpl->set('d', 'FIELDTITLE', mi18n("Homepage"));
$oTpl->set('d', 'FIELDTYPE', 'text');
$oTpl->set('d', 'FIELDNAME', 'Homepage');
$oTpl->set('d', 'FIELDID', 'homepage');
$oTpl->set('d', 'FIELDVALUE', $_REQUEST["Homepage"]);
# Bin persönlich ein Fan von "Wenn Ausgabe, dann alles, kein Mischmasch". Das "\n" fügt einen Zeilenumbruch ein.
echo '<form method="post" action="front_content.php?idcatart='.$idcatart.'" name="frontend_save_user" id="frontend_save_user"><input type="hidden" name="action" value="save">'."\n";
echo $oTpl->generate('templates/feuser-edit.html');
echo '</form>'."\n";
?>
Vielleicht habe ich das falsch verstanden, aber ins Template kann ich doch kein PHP-Code schreiben?
Du kannst Dir ja das ganze mal ansehen, die Zugangsdaten hast Du ja noch. Auf der Startseite (FE) kannst Du dich auch mit 'testuser' und 'test' einloggen und auf's BE hast Du ja sowieso Zugriff.