Wie baue ich eine Checkbox ein, und frage diese auch ab?

In diesem Forum können Mod-Autoren ihre Mods vorstellen, die sich noch im Entwicklungsstatus befinden. Der Einbau in Foren im produktiven Betrieb wird nicht empfohlen.
Forumsregeln
phpBB 2.0 hat das Ende seiner Lebenszeit überschritten
phpBB 2.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 2.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf phpBB 3.0, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
MDuss
Mitglied
Beiträge: 267
Registriert: 06.02.2008 10:21

Wie baue ich eine Checkbox ein, und frage diese auch ab?

Beitrag von MDuss »

Hi Leute.

Hoffe ich binim richtigen Forumsbereich gelandet.

Ich habe zwar schon lange gesucht, aber noch nicht das richtige gefunden.

Ich habe folgendes Problem.
Ich betreue zusammen mit nem Kollegen seit kurzem ein Forum.

Jetzt wollen wir bei der Einverständnisserklärung bei der Accountregistrierung folgende Änderung einbauen.

Unter dem Allgemeinen Text, aber über den Links um mit der Registrierung weiterzumachen, soll noch eine Checkbox eingebaut werden. Dieser Box soll der Text voranstehen: Ich bin mit den Regeln des Forums einverstanden und bestätige hiermit diese gelesen zu haben."
Der Text selber ist ein link zu den Regeln, die auch im Forum stehen.

Wenn man jetzt auf den Link geht, um mit der Registrierung weiterzumachen, soll erst geprüft werden, ob die Checkbox bestätigt wurde, ansonsten wird nichts gemacht, und man bleibt bei der Seite mit der Einverständnisserklärung.

Ich habe es irgendwie geschaft, die Checkbox schon mal einzubinden, aber immer wieder erschien diese dann Plötzlich ganz zu anfang, also nicht unter dem Allgemeinen Text, sonder darüber. Habe daher die Box erst mal wieder entfernt.

Auch weiß ich nicht, wie ich die If Abfrage korreckt einbauen muss, damit das ganze auch klappt. Und vor allem in welcher der ganzen Dateien.

Hoffe jemand weiß rat.
THX
MDuss


[Edit:] Ok. Die Checkbox habe ich jetzt einbinden können.
Aber es bleibt das Problem in welcher Datei ich die Abfrage machen muss, damit man mit der Registrierung weitermachen kann, wenn man die Checkbox bestätigt hat.

Ich dachte mir das so. Ich bestätige die Checkbox, und erst dann kann ich mit hilfe des Links mit der Registrierung weitermachen.

Hier die URL zu der Einverständnisserklärung, die das betrifft:
http://www.pixelnude.ch/forum/profile.php?mode=register
Benutzeravatar
S2B
Ehemaliges Teammitglied
Beiträge: 3258
Registriert: 10.08.2004 22:48
Wohnort: Aachen
Kontaktdaten:

Beitrag von S2B »

Die Abfrage muss in die includes/usercp_register.php, besser gesagt du musst die alte Abfrage durch die neue ersetzen. Wenn die Checkbox gecheckt wurde, wird diese Bedingung erfüllt:

Code: Alles auswählen

if (isset($HTTP_POST_VARS['name_der_checkbox']))
{

}
Gruß, S2B
Keinen Support per ICQ/PM!
Hier kann man meine PHP-Skripte und meine MODs für phpBB runterladen.
MDuss
Mitglied
Beiträge: 267
Registriert: 06.02.2008 10:21

Beitrag von MDuss »

THX für die schnelle Antwort.

Aber eine Frage bleibt:

Da ich ein ziehmliecher neewbie bin bleibt die Frage, wo bzw. welche Abfrage in der Datei ich genau ersetzen muss, und wie der Wert von der lang_main.php an die Datei usercp_register.php übergeben wird. Denn irgendwie muss der Wert der Checkbox in der Datei lang_main.php an die Datei usercp_register.php übergeben werden.

Die Checkbox habe ich in der Datei lang_main.php eingebunden.

Code: Alles auswählen

im Rahmen der Registrierung erhobenen Daten in einer Datenbank gespeichert werden.<br /><br />Dieses System verwendet Cookies, um Informationen auf deinem Computer zu speichern. Diese Cookies enthalten keine der oben angegebenen Informationen, sondern dienen ausschließlich dem Bedienungskomfort. Deine Mail-Adresse wird nur zur Bestätigung der Registrierung und ggf. zum Versand eines neuen Passwortes verwendet.<br /><br />Durch das Abschließen der Registrierung stimmst du diesen Nutzungsbedingungen zu.<br/><br/>
<span class="gen"><a target="_blank" href="http://www.pixelnude.ch/forum/viewtopic.php?p=2#2">Hiermit bestätige ich die Forumsregeln gelesen und auch verstanden zu haben:</a> <input type="checkbox" name="Bestaetigung" /></span>';

$lang['Agree_under_13'] = 'Ich bin mit den Konditionen dieses Forums einverstanden und <b>unter</b> 12 Jahre alt.';
$lang['Agree_over_13'] = 'Ich bin mit den Konditionen dieses Forums einverstanden und <b>über</b> oder <b>exakt 16</b> Jahre alt.';
$lang['Agree_not'] = 'Ich bin mit den Konditionen nicht einverstanden.';
Hoffe das war die richtige Stelle.
Oder muss die Checkbox woanders eingebunden werden, und wenn ja wo?

Ich wollte es halt so, dass wenn die Checkbox bestätigt wurde, man mit der Registrierung weitermachen kann, ansonsten bleibt man auf der Seite mit der Einverständnisserklärung.

THX.
MDuss
Benutzeravatar
S2B
Ehemaliges Teammitglied
Beiträge: 3258
Registriert: 10.08.2004 22:48
Wohnort: Aachen
Kontaktdaten:

Beitrag von S2B »

Zuerst einmal: Du solltest die Checkbox in der agreement.tpl einbauen.

Das Problem, das du dann bekommen wirst, ist, dass diese Bestätigungsseite nicht über ein Formular abgeschickt wird, sondern die Einverständniserklärung über Links bestätigt wird. Deshalb hat deine Checkbox zuerst einmal gar keine Auswirkung. Ich würde dir also empfehlen, die Seite in ein Formular zu packen und die Links durch deine Checkbox zu ersetzen - sie muss dann den Namen "agreed" haben. Dann fehlt dir nur noch ein Submit-Button, um das Formular abzuschicken:

Code: Alles auswählen

<form action="{S_REGISTER_ACTION}" method="post">
   [...]

   <input type="checkbox" name="agreed" />
   Bestätigen

   <input type="submit" value="{L_SUBMIT}" />
</form>
Die hinzugefügten Template-Variablen S_REGISTER_ACTION und L_SUBMIT müsstest du dann noch in der Funktion show_coppa() (includes/usercp_register.php) ergänzen:

Code: Alles auswählen

$template->assign_vars(array(
   'S_REGISTER_ACTION' => append_sid("profile.$phpEx?mode=register"),
   'L_SUBMIT' => $lang['Submit'])
);
Gruß, S2B
Keinen Support per ICQ/PM!
Hier kann man meine PHP-Skripte und meine MODs für phpBB runterladen.
MDuss
Mitglied
Beiträge: 267
Registriert: 06.02.2008 10:21

Beitrag von MDuss »

Sorry, aber jetzt bin ich ganz verwirrt.

Ich habe nun die Checkbox aus der Datei lang_main.php wieder herausgenommen.

Aber wenn ich jetzt die Checkbox mit deinem Code in die Datei agreement.tpl einbaue, dann passiert etwas ganz komisches. Die Checkbox wird ganz oben, noch über dem Text der Einverständnisserklärung angezeigt.

Ich wollte eigentlich die Box unter den Text haben.
Wenn ich das richtig sehe, dann wird die Box mit einem zusätzlichen Button vesehen. Aber wie wird diese denn dann mit dem rest der Registrierung verknüpft? Ich blicke langsam garnicht mehr durch.

Hier ist mal der aktuelle Code der agreement.tpl

Code: Alles auswählen

<!-- COPPA removed. See below. phpBB.de -->

<table width="100%" cellspacing="2" cellpadding="2" border="0" align="center">
	<tr>
		<td align="left"><span class="nav"><a class="nav" href="{U_INDEX}">{L_INDEX}</a></span></td>
	</tr>
</table>

<table class="forumline" width="100%" cellspacing="1" cellpadding="3" border="0">
	<tr>
		<th class="thHead" height="25" valign="middle">{SITENAME} - {REGISTRATION}</th>
	</tr>
	<tr>
		<td class="row1" align="center"><table width="80%" cellspacing="2" cellpadding="2" border="0" align="center">
			<tr>
				<td><span class="genmed"><br />{AGREEMENT}<br /><br /><br /><div align="center"><a href="{U_AGREE_OVER13}" class="genmed">{AGREE_OVER_13}</a><br /><br /><a href="{U_INDEX}" class="genmed">{DO_NOT_AGREE}</a></div><br /></span></td>
			</tr>
		</table></td>
	</tr>
</table>


Wie ich den Link zu den Forumsregeln hinterlegt bekomme, könnte ich noch hinbekommen.
Aber wenn die Anmeldung dann durch den Button weitergeht, dann muss ich den bisherigen Link bei der Einverständnisserklärung löschen. Hier ist die aktuelle darstellung der Einverständnisserklärung http://www.pixelnude.ch/forum/profile.p ... 32cbdc21a8
Den Link unten (Ich bin mit den Konditionen dieses Forums einverstanden und über oder exakt 16 Jahre alt) muss ich dann wohl löschen, aber wo?.

THX
MDuss
Benutzeravatar
S2B
Ehemaliges Teammitglied
Beiträge: 3258
Registriert: 10.08.2004 22:48
Wohnort: Aachen
Kontaktdaten:

Beitrag von S2B »

Hier mal die editierte Template-Datei:

Code: Alles auswählen

<!-- COPPA removed. See below. phpBB.de -->

<table width="100%" cellspacing="2" cellpadding="2" border="0" align="center">
	<tr>
		<td align="left"><span class="nav"><a class="nav" href="{U_INDEX}">{L_INDEX}</a></span></td>
	</tr>
</table>

<form action="{S_REGISTER_ACTION}" method="post">
<table class="forumline" width="100%" cellspacing="1" cellpadding="3" border="0">
	<tr>
		<th class="thHead" height="25" valign="middle">{SITENAME} - {REGISTRATION}</th>
	</tr>
	<tr>
		<td class="row1" align="center">
			<table width="80%" cellspacing="2" cellpadding="2" border="0" align="center">
				<tr>
					<td><span class="genmed">
						<br />{AGREEMENT}<br /><br /><br />
						<input type="checkbox" name="agreed" />
						{L_AGREE}
						<br />
					</span></td>
				</tr>
			</table>
		</td>
	</tr>
	<tr>
		<td class="catBottom"><input type="submit" class="mainoption" value="{L_SUBMIT}" /></td>
	</tr>
</table>
</form>
Ich habe zusätzlich noch die Sprachvariable L_AGREE eingebaut, die müsstest du dann natürlich auch noch definieren (s.o.).
Gruß, S2B
Keinen Support per ICQ/PM!
Hier kann man meine PHP-Skripte und meine MODs für phpBB runterladen.
MDuss
Mitglied
Beiträge: 267
Registriert: 06.02.2008 10:21

Beitrag von MDuss »

Vielen Dank S2B :grin: :grin: .

Ohne deine Hife wäre ich echt aufgeschmissen.

Hast echt was gut bei mir :cookie: :cookie: :cookie: .

MfG
MDuss
Benutzeravatar
Luuq
Mitglied
Beiträge: 1007
Registriert: 25.09.2007 17:42
Wohnort: 51° 23′ N, 7° 42′ O
Kontaktdaten:

Beitrag von Luuq »

Hallo,

ich suche das selbe.
Wie wäre es, wenn du den kompletten Code zur verfügung stellst? :)

Luuq
-Zu wissen, was man weiß, und zu wissen, was man tut, das ist Wissen.-
phpBB.de - Kostenlose phpBB-Hilfe!
MDuss
Mitglied
Beiträge: 267
Registriert: 06.02.2008 10:21

Beitrag von MDuss »

Hi Luuq.

Hier ist der Code der agreement.tpl:

Code: Alles auswählen

<!-- COPPA removed. See below. phpBB.de --> 

<table width="100%" cellspacing="2" cellpadding="2" border="0" align="center"> 
   <tr> 
      <td align="left"><span class="nav"><a class="nav" href="{U_INDEX}">{L_INDEX}</a></span></td> 
   </tr> 
</table> 

<form action="{S_REGISTER_ACTION}" method="post"> 
<table class="forumline" width="100%" cellspacing="1" cellpadding="3" border="0"> 
   <tr> 
      <th class="thHead" height="25" valign="middle">{SITENAME} - {REGISTRATION}</th> 
   </tr> 
   <tr> 
      <td class="row1" align="center"> 
         <table width="80%" cellspacing="2" cellpadding="2" border="0" align="center"> 
            <tr> 
               <td><span class="genmed"> 
                  <br />{AGREEMENT}<br /><br /><br /> 
                  <a target="_blank" href="http://www.pixelnude.ch/forum/viewtopic.php?p=2#2">Hiermit bestätige ich die <b>Forumsregeln gelesen und auch verstanden</b> zu haben, ebenso bestätige ich <b>mindestens 16 Jahre</b> alt zu sein.:</a>
                  <input type="checkbox" name="agreed" /> 
                  {L_AGREE} 
                  <br /> <br />
                  <a href="{U_INDEX}" class="genmed">{DO_NOT_AGREE}</a>
               </span><br /><br /></td> 
            </tr> 
         </table> 
      </td> 
   </tr> 
   <tr> 
      <td class="catBottom"><input type="submit" class="mainoption" value="{L_SUBMIT}Hier klicken um fortzufahren." /></td>
   </tr> 
</table> 
</form>
Das ergebniss siehst du hier.

MfG
MDuss
MDuss
Mitglied
Beiträge: 267
Registriert: 06.02.2008 10:21

Beitrag von MDuss »

Hi Leute.

Ich habe zu diesem Fall hier och eine kleine Frage:

Meine agreement.tpl sieht jetzt folgendermaßen aus:

Code: Alles auswählen

<!-- COPPA removed. See below. phpBB.de --> 

<table width="100%" cellspacing="2" cellpadding="2" border="0" align="center"> 
   <tr> 
      <td align="left"><span class="nav"><a class="nav" href="{U_INDEX}">{L_INDEX}</a></span></td> 
   </tr> 
</table> 

<form action="{S_REGISTER_ACTION}" method="post"> 
<table class="forumline" width="100%" cellspacing="1" cellpadding="3" border="0"> 
   <tr> 
      <th class="thHead" height="25" valign="middle">{SITENAME} - {REGISTRATION}</th> 
   </tr> 
   <tr> 
      <td class="row1" align="center"> 
         <table width="80%" cellspacing="2" cellpadding="2" border="0" align="center"> 
            <tr> 
               <td><span class="genmed"> 
                  <br />{AGREEMENT}<br /><br /><br /> 
                  <a href="{U_AGREE_OVER13}" class="genmed">{AGREE_OVER_13}</a>
                  <input type="checkbox" name="agreed" /> 
                  {L_AGREE} 
                  <br /> <br />
                  <a href="{U_INDEX}" class="genmed">{DO_NOT_AGREE}</a>
               </span><br /><br /></td> 
            </tr> 
         </table> 
      </td> 
   </tr> 
   <tr> 
      <td class="catBottom"><input type="submit" class="mainoption" value="{L_SUBMIT}Hier klicken um fortzufahren." /></td>
   </tr> 
</table> 
</form>
Dadurch stelle ich sicher, dass der Text vor der Checkbox auch in der jeweils eingestellten Sprache angezeigt wird.
In der englischen lang_main.php Sprachdatei habe ich den Eintrag entsprechend geändert und das Funktioniert jetzt alles.
Der Eintrag vor der Checkbox wird sowohl in Englsich als auch Deutsch in der richtigen Sprache angezeigt.

Aber jetzt habe ich noch ein kleines Problem festgestellt.
Der Text in der Checkbox wird auch in anderen Sprachen nur in deutsch dargestellt, da ich den Text direkt in der agreement.tpl eingegeben habe.

Jetzt wollte ich den Text in die entsprechende lang_main.php einbinden. In der deutschen lang_main.php solle es wie folgt aussehen:

Code: Alles auswählen

$lang['Button'] = 'Hier klicken um fortzufahren.';
Aber jetzt habe ich folgende Frage:

Wie übergebe ich den Inhalt der Sprachvariable Button in die agreement.tpl, damit der Text in der Jeweiligen Sprach dargestellt wird.

In Englisch würde mein Eintrag in der Sprachadatei lang_main.php ja nanalog wie folgt aussehen:

Code: Alles auswählen

$lang['Button'] = 'Click here to continue.';
Nur weiß ich jetzt halt nicht, wie ich den Text der Variablen Button aus der Sprachdatei lang_main.php in die agreement.tpl übergeben kann, damit der Text der Checkbox auch in der Jeweiligen Sprache angezeigt wird. Im Moment sieht es so aus.
Der Text in der Checkbox (Hier klicken um fortzufahren.) soll jetzt halt in der jeweiligen Sprache angezeigt werden, aber es geht halt nur in deutsch.

Wie müste ich hier den Code in der agreement.tpl ändern?

THX.
MfG
MDuss
Antworten

Zurück zu „phpBB 2.0: Mods in Entwicklung“