|
|||
|
Hallo Leute ich habe stundenlang in diesem Forum und im Internet nach einer Lösung für mein Problem gesucht aber leider ohne Erfolg.
Ich möchte bei einem Template den Anmelden oder Login Button duch einen Link ersetzen. Das ganze soll am Ende so Aussehen das der Kunde seine Login Daten eingibt und danach auf einen ganz gewöhnlichen Textlink klickt statt auf einen Button. Vielen Dank für eure Hilfe.
|
|
|||
|
"Submit" oder "Image"-Buttons kann man nur dann durch Textlinks ersetzen, wenn "der Wert voreingestellt ist" ... und eine "action" programmiert ist, auf die dieser Link hinweist.
Zum Beispiel in den Produkt-Auflistungen geht's (manchmal) - Da weiß das System "aha, dieses Produkt, ein Klick gleich einmal in den Warenkorb" - Sobald es für dieses Produkt aber Optionen gibt, die man sich aussuchen könnte, funktioniert das schon nicht mehr. Beim LogIn-Formular geht's gar nicht. E-Mail-Adresse und Passwort sind ja für jeden anders. Also: Wenn Du irgendetwas haben willst, das so wie Text aussieht, dann musst Du halt den Image-Button durch einen Submit-Button ersetzen (das sind diese hässlichen grauen) - und im Stylesheet dafür sorgen, dass der durchsichtig ist, der Text unterstrichen, keinen Rand etc - und der Mauszeiger beim Überfahren in einen Finger gewandelt wird. (Funktioniert bei den meisten Windows-Browsern sehr gut, Macs lassen sich eher ungern die Gestaltung von Formular-Elementen "aus der Hand nehmen") |
|
|||
|
Erstmal vielen Dank für eure Hilfe aber irgendwie bekomme ich das nicht hin. Ich habe den Link in die "box_login.html" an der richtigen stelle eingefügt und er wird auch angezeigt. In der "loginbox.php" habe ich dem Formular auch einen Namen gegeben aber irgendwie will das ganze nicht so wie ich will. Muss ich da noch was in die Header.php eintragen? Ich habe es auch mit "{$NEW_LINK}" bzw. "<a href="{$NEW_LINK}javascript:submitForm('loginbox') ;">Anmelden</a>" probiert leider ohne erfolg. Ich habe mal den Code von beiden Dateien gepostet.
Code der box_login.html {config_load file="$language/lang_$language.conf" section="boxes"} <table width="325" height="60" border="0" cellpadding="0" cellspacing="0"> <tr>{$FORM_ACTION} <td height="20" class="main">{#text_email#}:</td> <td height="20" class="main">{#text_pwd#}:</td> </tr> <tr> <td height="20" class="main">{$FIELD_EMAIL}</td> <td height="20" class="main">{$FIELD_PWD}</td> </tr> <tr> <td height="20" class="main"><a href="javascript:submitForm('loginbox');">Anmelden </a></td> <td height="20" class="main"><a class="header_login" href="{$NEW_LINK}create_account.php">Neukunde</a></td> </tr> </table> {$FORM_END} Code der loginbox.php $box_smarty = new smarty; $box_smarty->assign('tpl_path', 'templates/'.CURRENT_TEMPLATE.'/'); $box_content = ''; require_once (DIR_FS_INC.'xtc_image_submit.inc.php'); require_once (DIR_FS_INC.'xtc_draw_password_field.inc.php'); if (!xtc_session_is_registered('customer_id')) { $box_smarty->assign('FORM_ACTION', '<form name="loginbox" id="loginbox" method="post" action="'.xtc_href_link(FILENAME_LOGIN, 'action=process', 'SSL').'">'); $box_smarty->assign('FIELD_EMAIL', xtc_draw_input_field('email_address', '', 'size="25" maxlength="50"')); $box_smarty->assign('FIELD_PWD', xtc_draw_password_field('password', '', 'size="15" maxlength="30"')); $box_smarty->assign('BUTTON', xtc_image_submit('button_login_small.gif', IMAGE_BUTTON_LOGIN)); $box_smarty->assign('LINK_LOST_PASSWORD', xtc_href_link(FILENAME_PASSWORD_DOUBLE_OPT, '', 'SSL')); $box_smarty->assign('FORM_END', '</form>'); $box_smarty->assign('BOX_CONTENT', $loginboxcontent); $box_smarty->caching = 0; $box_smarty->assign('language', $_SESSION['language']); $box_loginbox = $box_smarty->fetch(CURRENT_TEMPLATE.'/boxes/box_login.html'); $smarty->assign('box_LOGIN', $box_loginbox); Bin für jede Hilfe Dankbar.
|
|
|||
|
wäre vielleicht sinnvoll der submitForm Funktion zu deklarieren damit der Formular weiß was submitForm ist und was es tun soll.
Lesestoff: http://www.javascript-coder.com/java...m-submit.phtml oder das hier: http://forum.de.selfhtml.org/archiv/2000/10/t22560/ T Geändert von Rovert (23.07.2007 um 17:31 Uhr) |
|
|||
|
Zitat:
HTML-Code:
<a href="javascript:this.submit();">
Fakt ist halt, dass Formulare, die per POST versendet werden, einen "echten" Submit-Button brauchen, oder halt so'n JavaScript-Link (bäh!). Alternativ fiele mir noch ein, einfach ein Bild zu nehmen, das wie ein gewöhnliches Link aussieht und dieses als HTML-Code:
<input type="image" src="dasbild.gif" />
|
|
|||
|
So Leute ich habe es geschafft. Erstmal vielen Dank an Rovert der 2. Link hat mir weiter geholfen. Für alle anderen die auch dieses Problem haben hier die Lösung:
1. In der Datei Templates/deinTemplate/Source/Boxes/loginbox.php so in etwa in der Zeile 31 den folgenden Code ergänzen: $box_smarty->assign('FORM_ACTION', '<form method="post" action="'.xtc_href_link(FILENAME_LOGIN, 'action=process', 'SSL').'">'); Und zwar mit "name="loginbox" (Der Name kann frei gewählt werden habe hier einfach mal loginbox genommen). Dann Sieht der Code in etwa so aus: $box_smarty->assign('FORM_ACTION', '<form name="loginbox" method="post" action="'.xtc_href_link(FILENAME_LOGIN, 'action=process', 'SSL').'">'); 2. In der Datei Templates/deinTemplate/Boxes/box_login.html den Button durch den gewünschten Link ersetzen. Der Button wird mit {$BUTTON} deklariert. Da ich die Datei komplett umgebaut habe weiß ich die Zeile nicht so genau müsste aber weiter unten sein. Der Link muss so aussehen: <a href="{$NEW_LINK}javascript: submitform('loginbox');">Anmelden</a>. Jetzt taucht statt dem Login Button ein Login Link auf. 3. Damit das ganze auch funktioniert muss man in der Datei /inculdes/header.php folgenden Java Script Code ergänzen: function submitform() { document.loginbox.submit(); } Das ganze fügt man am besten über dem Ende des Java Script Tag ein das so aussieht: //--></script> So jetzt müsste es eigentlich funktionieren ansonsten einfach dem 2. Link vom Rovert folgen da ist das ganze, ganz gut erklärt zwar in Englisch aber was solls wir leben ja schließlich in einem Globalen Dorf .Ich hoffe mal einigen Leuten hier geholfen zu haben. |
|
|||
|
Hmmm, ich will ja nicht mosern, aber ohne JavaScript funktioniert das nicht... Also keine Logins aus Behörden, Internet-Cafes und von paranoisen Usern.
Zitat:
|
|
|||
|
[QUOTE=John Steed;249297Nee, so geht's auch nicht, da musst Du schon den Inhalt des Smartys ändern (in der verknüpften PHP-Datei, nicht in der HTML-Datei) anstatt zu versuchen, das einfach dranzuhängen
[/QUOTE]Also bei mir funktioniert es. Kannst dich auf http://xtcshop.flinkehelfer.de/ selbst davon überzeugen. Aber du hast schon recht ohne Java geht das nicht. Wie meinst du das mit "den Inhalt des Smartys ändern"? Kenne mich mit Smarty eigentlich gar nicht aus. |
![]() |
| Lesezeichen |
| Stichworte |
| button, ersetzen, link, login |
| Themen-Optionen | |
| Ansicht | |
|
|
Ähnliche Themen
|
||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| Admin Button Durch Admin Link Ersetzen | ttdrobin | Template System | 10 | 24.06.2004 15:55 |