Seite 1 von 1

Kundenverwaltung Templates

Verfasst: Do 24. Nov 2022, 15:39
von mtbrmatze
Guten Tag.

Gibt es irgendwo Dokumentationen oder gar Templates wie man eine Kundenverwaltung aufbaut. Grundsätzlich bräuchte ich Hilfe zu den Szenarien wie: Login, Authentifizierung des Kunden, Passwort vergessen Funktion.

Dies würde mir sehr helfen, zumal ich mit der Kundenverwaltung noch nie in diese Richtung gearbeitet habe.

Danke für Tipps.
Matze

Re: Kundenverwaltung Templates

Verfasst: Fr 25. Nov 2022, 14:40
von Finn
Moin Matze,

folgendes zum Starten:

Du brauchst ein <sessionStart /> oben in deinem Maintemplate, für eine Session.

Dann einen Login, der könnte z.B. so aussehen:

Code: Alles auswählen

<div class="grid-container">
	<div class="grid-y">
		<div class="login">
			<we:ifNotRegisteredUser>
				<we:ifLoginFailed type="all">
					<p class="error padding-top"><strong>Ihr Loginversuch ist fehlgeschlagen. Bitte versuchen Sie es erneut.			</strong></p>
				</we:ifLoginFailed>
			</we:ifNotRegisteredUser>

			<div class="h1 red">Login</div>

			<we:ifRegisteredUser>
				<we:comment>Wenn der Nutzer eingeloggt ist, wird er zurück zur Pflege geleitet...</we:comment>
				<script>
					document.location.href="/pflege/index.php";
				</script>

			</we:ifRegisteredUser>


			<we:ifNotRegisteredUser>

				<div class="form">
					<we:form id="self" method="post" class="login-form">

						<span class="field-legend">Benutzer:</span>
						<we:sessionField name="Username" id="username" type="textinput" class="input" />
						<span class="field-legend">Passwort:</span>
						<we:sessionField name="Password" id="password" type="password" class="input" />
						<input type="submit" value="Einloggen" class="send" />

					</we:form>
				</div>

			</we:ifNotRegisteredUser>
		</div>
	</div>

</div>
In diesem Fall wird mit JS eine Umleitung aufgerufen, wenn der User eingeloggt ist.

Auf der nachfolgenden Seite wird dann wieder geprüft, ob der User eingeloggt ist, falls ja ein Template inkludiert, falls nein wieder zurückgeleitet. Auch hier muss natürlich die Session aktiv sein!

Code: Alles auswählen

<we:ifNotEditmode>

	<we:ifNotRegisteredUser>
		<we:comment>Wenn der Nutzer nicht eingeloggt ist, wird er zum Login geleitet...</we:comment>
		<script>
			document.location.href="/pflege/login.php";
		</script>
		<we:else />
		<we:comment>Wenn der Nutzer eingeloggt ist, wird der Listview aufgerufen</we:comment>
		<we:include id="28" type="template" />
	</we:ifNotRegisteredUser>

	<we:else />

	<div class="grid-container">
		Zum Bearbeiten das Dokument bitte im Frontend aufrufen.
	</div>

</we:ifNotEditmode>

Re: Kundenverwaltung Templates

Verfasst: Fr 25. Nov 2022, 14:48
von Finn
Hier ein Beispiel für das Editieren der eigenen Daten:

Hab ein paar Felder mit XXX ersetzt. Diese Felder kannst du in der Kundenverwaltung definieren.

Dabei gilt: Feldgruppe_Feldname

Auch hier muss die Session verfügbar sein :)

Code: Alles auswählen

<div class="grid-container">
	<div class="grid-x grid-padding-x grid-padding-y">
		<div class="cell large-10 large-offset-1 large-outside">

			<we:saveRegisteredUser changesessiondata="true" protected="Profil_Ausblenden" register="false" />

			<we:ifWritten formname="changeUser" type="customer">
				<div class="grid-x grid-margin-x grid-padding-x grid-margin-y">
					<div class="cell">
						<strong>Die Änderungen wurden erfolgreich gespeichert.</strong>
					</div>
				</div>
			</we:ifWritten>

			<we:ifRegisteredUser>
				<we:form id="self" class="form changeuser" method="post" name="changeUser" nameid="changeUser" enctype="multipart/form-data" data-abide="true" novalidate="novalidate">

					<div data-abide-error class="alert callout" style="display: none;">
						<p>Bitte füllen Sie die markierten Felder aus.</p>
					</div>

					<fieldset>
						<div class="grid-x grid-margin-x grid-padding-x grid-margin-y">
							<div class="cell">
								<h2>
									Öffentlicher Bereich <i style="font-size: 0.5em;">(sind öffentlich sichtbar)</i>
								</h2>
								<hr>
							</div>

							<div class="cell floatbox">
								<label for="cbf-name">Titel</label>
								<we:sessionField name="Profil_Titel" id="profil_titel" type="textinput" tabindex="1" />
							</div>
							<div class="cell floatbox large-6">
								<label for="cbf-name">Vorname*</label>
								<we:sessionField name="Forename" id="surname" type="textinput" tabindex="2" required="true" />
								<span class="form-error">
									Bitte tragen Sie ihren Vornamen ein.
								</span>
							</div>
							<div class="cell floatbox large-6">
								<label for="cbf-name">Name*</label>
								<we:sessionField name="Surname" id="surname" type="textinput" tabindex="3" required="true" />
								<span class="form-error">
									Bitte tragen Sie ihren Nachnamen ein.
								</span>
							</div>

							<div class="cell floatbox large-6">
								<label for="cbf-name">Klinik*</label>
								<we:sessionField name="Profil_Klinik" id="profil_klinik" type="textinput" tabindex="4" required="true" />
								<span class="form-error">
									Bitte tragen Sie die Klinik ein.
								</span>
							</div>

							<div class="cell floatbox large-6">
								<label for="cbf-name">Adresse*</label>
								<we:sessionField name="Profil_Adresse" id="profil_adresse" type="textinput" tabindex="5" required="true" />
								<span class="form-error">
									Bitte tragen Sie die Adresse der Klinik ein.
								</span>
							</div>
							<div class="cell floatbox large-6">
								<label for="cbf-name">PLZ Ort</label>
								<we:sessionField name="Profil_PLZ_Ort" id="profil_plz_ort" type="textinput" tabindex="6" />
							</div>
							<div class="cell floatbox large-6">
								<label for="cbf-name">Bundesland*</label>
								<we:sessionField name="Profil_Bundesland" id="profil_bundesland" type="textinput" tabindex="7" required="true" />
								<span class="form-error">
									Bitte tragen Sie das Bundesland ein, in welchem sich die Klinik befindet.
								</span>
							</div>
							<div class="cell floatbox large-6">
								<label for="cbf-telefon">Telefon öffentlich*</label>
								<we:sessionField name="Profil_Telefon_1" id="telefon_1" type="textinput" tabindex="8" required="true" />
								<span class="form-error">
									Bitte tragen Sie ihre öffentliche Telefonnummer ein.
								</span>
							</div>
						</div>
						<div class="grid-x grid-margin-x grid-padding-x grid-margin-y">
							<div class="cell floatbox large-6">
								<label for="cbf-telefon">Foto (Wenn möglich mindestens 300px * 350px) </label>
								<we:sessionField name="Profil_Foto" id="profil_foto" type="img" parentid="140" tabindex="9" thumbnailid="2" />
							</div>
						</div>
						<div class="grid-x grid-margin-x grid-padding-x grid-margin-y">
							<div class="cell">
								<h2>
									Interner Bereich <i style="font-size: 0.5em;">(sind für Mitglieder sichtbar)</i>
								</h2>
								<hr>
							</div>
							<div class="cell floatbox large-6">
								<label for="cbf-name">Beruf</label>
								<we:sessionField name="Profil_Beruf" id="profil_beruf" type="textinput" tabindex="10" />
							</div>
							<div class="cell floatbox large-6">
								<label for="cbf-name">Fachrichtung</label>
								<we:sessionField name="Profil_Fachrichtung" id="profil_fachrichtung" type="textinput" tabindex="11" />
							</div>
							<div class="cell floatbox large-6">
								<label for="cbf-telefon">Telefon intern</label>
								<we:sessionField name="Profil_Telefon_2" id="telefon_2" type="textinput" tabindex="12" />
							</div>
						</div>
						<div class="grid-x grid-margin-x grid-padding-x grid-margin-y">
							<div class="cell">
								<h2>
									Stammdaten Verein <i style="font-size: 0.5em;">(sind nur für den Verein sichtbar)</i>
								</h2>
								<hr>
							</div>
							<div class="cell floatbox large-6">
								<label for="cbf-name">Ich kann XXXX durchführen</label>
								<we:sessionField name="Profil_Peer_review" id="profil_peer_review" type="select" tabindex="13" />
							</div>
							<div class="cell floatbox large-6">
								<label for="cbf-name">XXXX absolviert?</label>
								<we:sessionField name="Profil_XXXX" id="profil_XXXX" type="select" tabindex="14" />
							</div>
							<div class="cell floatbox large-6">
								<label for="cbf-name">An Peer-review interessiert?</label>
								<we:sessionField name="Profil_Peer_review" id="profil_peer_review" type="select" tabindex="15" />
							</div>
							<div class="cell floatbox large-6">
								<label for="cbf-name">XXXX seit*</label>
								<we:sessionField name="Profil_XXXX_seit" id="profil_XXXX_seit" type="date" dateformat="Y" tabindex="16" />
							</div>
							<div class="cell floatbox large-6">
								<label for="cbf-name">Anzahl der XXXX in der Klinik</label>
								<we:sessionField name="Profil_XXXX_Anzahl" id="profil_XXXX_anzahl" type="textinput" tabindex="17" />
							</div>
							<div class="cell floatbox large-6">
								<label for="cbf-name">Newsletter empfangen?*</label>
								<we:sessionField name="Newsletter_Ok" id="newsletter_ok" type="select" tabindex="18" />
							</div>
						</div>
						<div class="grid-x grid-margin-x grid-padding-x grid-margin-y">
							<div class="cell">
								<h2>
									Login
								</h2>
								<hr>
							</div>
							<div class="cell floatbox large-6">
								<label for="cbf-email">Email* (Ist gleichzeitig der Benutzername)</label>
								<we:sessionField name="Username" id="username" type="textinput" tabindex="19" />
							</div>
							<div class="cell floatbox large-6">
								<label class="reg-form" for="cbf-password">Passwort ändern</label>
								<we:sessionField name="Password" id="password" type="password" tabindex="20" />
							</div>
						</div>
						<div class="grid-x grid-margin-x grid-padding-x grid-margin-y">
							<div class="cell">
								<we:sessionField name="ID" type="hidden" />
								<we:sessionField name="Profil_Basic_Infos" usevalue="true" type="hidden" value="Ja" />
								<we:sessionField name="Profil_Veroeffentlicht" usevalue="true" type="hidden" value="Ja" />

								<span class="submit-button"><input class="submit" type="button" id="check" value="absenden" tabindex="21" /></span>

							</div>
						</div>
					</fieldset>
				</we:form>

				<we:comment>Foundation Validation</we:comment>
				<script>
					$("#check").click(function () {
						$('#changeUser').foundation('validateForm');
					});
					/*Wenn das Formular valide ist, wird das Formular versendet.*/
					$(document).on("formvalid.zf.abide", function(ev,frm) {
						document.getElementById("changeUser").submit(); 
					});
					/*Wenn das Formular nicht valide ist, wird nach oben gescrollt.*/
					$(document).on("forminvalid.zf.abide", function(ev,frm) {
						$("html, body").animate({ scrollTop: $('#changeUser').offset().top }, 1000);
					})
				</script>

				<we:else />

				Sie müssen eingeloggt sein, um diese Seite aufrufen zu können.

			</we:ifRegisteredUser>

		</div>
	</div>
</div>

Re: Kundenverwaltung Templates

Verfasst: Fr 25. Nov 2022, 14:52
von Finn
Und generell hilft die Taghilfe ganz gut, dort Kundenverwaltung auswählen und du hast alle relevanten Tags. Auch für PW Reset Links etc.

Re: Kundenverwaltung Templates

Verfasst: Sa 26. Nov 2022, 13:42
von mokraemer
@Finn: ich dachte wir wollten die Doku endlich erstellen - jetzt wird doch (immer) noch alles im Forum erklärt - und alles X mal. Das kostet doch unnötig Zeit und ist auch nicht nachhaltig, die Frage kommt in 2 Monaten wieder und keiner findet die Antwort im Forum.

Re: Kundenverwaltung Templates

Verfasst: So 27. Nov 2022, 10:38
von mtbrmatze
Danke für die Infos.

Sind die Dokumentationen neuerdings nur mehr mit Passwort erreichbar?

Re: Kundenverwaltung Templates

Verfasst: Mo 28. Nov 2022, 13:52
von Finn
[/quote]
mokraemer hat geschrieben: Sa 26. Nov 2022, 13:42 @Finn: ich dachte wir wollten die Doku endlich erstellen - jetzt wird doch (immer) noch alles im Forum erklärt - und alles X mal. Das kostet doch unnötig Zeit und ist auch nicht nachhaltig, die Frage kommt in 2 Monaten wieder und keiner findet die Antwort im Forum.
Ja, auf jeden Fall! Ich schaffe es aber in der Vorweihnachtszeit nicht, das alles ordentlich für die Doku vorzubereiten.

mtbrmatze hat geschrieben: So 27. Nov 2022, 10:38 Danke für die Infos.

Sind die Dokumentationen neuerdings nur mehr mit Passwort erreichbar?
Ne, kannst Du hier finden: https://documentation.webedition.org/

Hier gibts (Danke an Heidi!) ein paar Dinge zur KV: https://documentation.webedition.org/en ... /index.php