WebToDate/Registrace a personalizace/Začínáme

Z WebToDate
Skočit na navigaciSkočit na vyhledávání

První kroky

Po instalaci je v modulu připravená registrační tabulka, do které se ukládají registrační údaje uživatelů. Tato tabulka má pevně danou strukturu a význam polí, nicméně je k dispozici nástroj, pomocí kterého lze vybrat pole, která budou používána, změnit jejich popisky apod.

Registrační záznamy mají povinně unikátní identifikátor, který je jedinečný pro daného uživatele, a heslo. Další údaje (jméno, adresa atd.) už žádný specifický význam nemají a slouží pouze pro sběr údajů, kontaktů na uživatele apod.

Unikátní identifikátor je vhodné nastavit hned v prvním kroku práce s modulem. Nastavuje se ve formuláři AdministracePředvolby.

I když jsou ve formuláři nastaveny nějaké výchozí hodnoty, po instalaci nejsou tyto hodnoty uloženy v databázi systému. I v případě, že chcete ponechat všechny výchozí hodnoty, použijte nejprve v tomto i ve všech ostatních formulářích tlačítko Uložit.

Unikátním identifikátorem může být buď uživatelské jméno, nebo e-mailová adresa. Podle tohoto nastaveného údaje jsou pak uživatelé např. při přihlašování vyhledáváni. Pro unikátní identifikátor platí:

  1. Musí být jedinečný. Pokud např. zvolíte e-mailovou adresu, nelze vytvořit dvě různé registrace se stejnou adresou.
  2. Musí být povinně zadán, bez něj není možné registraci vytvořit.
Ostatní volby v předvolbách lze měnit podle potřeb bez toho, že by to mělo nějaký vliv na stávající stav databáze registrovaných uživatelů. Změna unikátního identifikátoru dodatečně nemusí být možná.

Další volbou, kterou je vhodné nastavit hned na začátku a následně pokud možno neměnit, je požadovaná struktura registrací. Nastavuje se ve formuláři AdministraceÚdaje:

Ve sloupci Použít se zde zaškrtává, které údaje chceme v registracích používat, ve sloupci Vyžadovat se nastavuje, které údaje jsou povinné. Unikátní identifikátor je zde zvolen automaticky jako povinný a nelze tuto vlastnost změnit.

Zde je třeba upozornit na volnou vazbu mezi registračním formulářem a tímto nastavením. Registrační formulář se nejjednodušeji vytvoří tak, že se pomocí funkce NástrojeRegistrační formulář vygeneruje fragment, který obsahuje celý kód formuláře včetně ošetření chybových výpisů typu "Toto uživatelské jméno je již registrováno." apod. Registrační formulář se generuje podle momentálního nastavení funkce AdministraceÚdaje, nicméně při vlastním zápisu registrace se postupuje dle aktuálního nastavení těchto údajů. To má za následek např. následující skutečnosti:

  • Popisky polí se přebírají ve chvíli generování formuláře. Následná změna popisku ve formuláři Údaje se na webové prezentaci nijak neprojeví.
  • Pokud přidáte dodatečně další pole do struktury ve sloupci Použít, pole se do registračního formuláře automaticky nepřidá.
  • Pokud změníte některou položku ve sloupci Vyžadovat, změna se ihned aplikuje. Pokud např. některé pole bylo ve formuláři, nebylo vyžadováno jeho vyplnění a v nastavení Údaje toto změníte, vyplnění pole začne být ihned ve formuláři vyžadováno.
Pokud je registrační formulář již vytvořen a v nastavení Údaje přidáte nové pole, které je zároveň označeno jako Vyžadovat, bude vyžadováno vyplnění pole, které ve formuláři vůbec není, a tudíž se uživatelé vůbec nebudou moci registrovat.

Tyto situace lze řešit jedině následnou ruční změnou v HTML kódu formuláře nebo novým vygenerováním formuláře a výměnou za předchozí verzi formuláře v předloze pro registrační stránku.

Další údaj, který je vhodné zadat co nejdříve, je e-mailová adresa E-mail od ve formuláři NastaveníGlobálníE-maily.

Jedná se o adresu, ze které budou odesílány všechny e-maily, které případně modul rozesílá (potvrzení registrace, zapomenutá hesla apod.).

Není-li vyplněna tato adresa, není modul schopen žádné e-maily rozesílat. Přitom ale modul v takovém případě negeneruje žádné chyby, takže pak není jednoduché dohledat, proč se očekávané e-maily nedoručují.

Ostatní údaje v tomto formuláři přinejmenším zpočátku zadávat nemusíte, stačí vyplnit pole E-mail od a použít tlačítko Uložit.

Vytvoření registračního formuláře

Úvod

V této kapitole je popsán nejjednodušší postup, jak vytvořit veřejně přístupnou stránku, ve které se mohou návštěvníci webu registrovat. Na následujících otiscích obrazovky jsou některé registrační formuláře realizované v implementacích tohoto modulu.


Nejprve se ujistěte, že jste nastavili všechny údaje uvedené v předchozí kapitole.

Registrační formulář má za cíl vytvořit záznam v registrační databázi, přičemž funkčnost je zhruba následující:

  • Pokud uživatel nevyplní všechna povinná pole, je uživatel vrácen do formuláře, obsah polí zůstává zachován, vypisuje se chybové hlášení.
  • Pokud uživatel zvolil již existující unikátní identifikátor (např. zadané uživatelské jméno si již vybral někdo jiný), je uživatel vrácen do formuláře, obsah polí zůstává zachován, vypisuje se chybové hlášení.
  • Pokud je registrace úspěšně vytvořena, je uživatel buď vrácen opět na formulář a vypsáno informační hlášení o úspěšnosti registrace, nebo přesměrován na zvolenou stránku (typicky informující o úspěšné registraci).

Dále platí následující skutečnosti:

  • Každý uživatel patří do nějaké skupiny uživatelů. Uživatel registrující se přes formulář je zařazen do skupiny nastavené v AdministracePředvolby (Výchozí skupina).
  • Vytvoření registračního záznamu nutně neznamená, že účet je ihned aktivní, tj. že se na něj lze přihlásit. Toto je opět ovlivněno nastaveními v AdministracePředvolby.

Postup

Nejprve ve WebToDate založte novou předlohu. V hlavní nabídce WebToDate zvolte VzhledPředlohy. Klepněte na ikonu složky vedle názvu kategorie předloh Registrace a personalizace a následně v pravém horním rohu klepněte na Přidat. Formulář vyplňte dle následujícího vzoru.

Volba šablony musí být taková, aby tato šablona obsahovala vhodnou oblast, do které lze umístit registrační formulář. Pokud takovou šablonu v tuto chvíli nemáte, zvolte Šablona: Nejvyšší úroveň a vložte v záložce obsah zhruba následující HTML kód:

<html>
<head>
</head>
<body>
<div id="main1">
<!--WTD_A(stred_stranky)-->
</div>
</body>
</html>

Oblast pak bude pojmenovaná stred_stranky, definici této oblasti je třeba vytvořit ve VzhledOblasti (viz Referenční příručka WebToDate).

Nyní přejděte do nabídky modulu Registrace a personalizace a použijte funkci NástrojeRegistrační formulář.

Funkce generuje fragment, který má v těle kompletní HTML kód registračního formuláře. Zvolte zde vhodnou kategorii a publikaci a použijte Přidat HTML fragment. Zobrazí se formulář potvrzující vytvoření fragmentu, použijte tlačítko Vyhledat, které přejde do formuláře pro úpravy fragmentu. V těle fragmentu je HTML kód, který začíná následovně:

<form action="/scripts/modules/registration/registration.php" method="post">
<input type="hidden" name="lid" id="lid" value="<!--WTD_REGISTR(LID)-->" />
<input type="hidden" name="url" id="url" value="" />
<!--WTD_IF(REGISTERED,"Registrace proběhla úspěšně.")--> 
<!--WTD_IF(REQUIRED,"Vyplňte prosím všechny povinné údaje.")-->
<!--WTD_IF(DUPUSERNAME,"Toto uživatelské jméno je již registrováno. Zadejte prosím jiné.")-->
<!--WTD_IF(DUPEMAIL,"Tento e-mail je již registrován. Zadejte prosím jiný.")-->
<table>
...

Dále je formou HTML tabulky formátován registrační formulář, který obsahuje pole nastavená ve formuláři AdministraceÚdaje. Tento kód lze samozřejmě následně dle potřeby měnit. Zachovány by měly být názvy polí formuláře (např. username), klíčová slova modulu (např. <!--WTD_REGISTR(USERNAME'')-->) a údaje jako cílová adresa formuláře apod.

Nyní je třeba vložit vygenerovaný fragment na předlohu založenou v prvním kroku. Budete potřebovat WebToDate styl, který vkládá do stránky pouze tělo zprávy či fragmentu. Pokud jej nemáte, založte ve WebToDate nový styl (Vzhled - Styly) a do jeho těla vložte kód

<!--WTD_F(BODY)-->

Vložte fragment na stránku. V hlavní nabídce WebToDate zvolte VzhledPředlohy. Klepněte na ikonu složky vedle názvu kategorie předloh Registrace a personalizace a následně na název předlohy. V levém spodním rámci bude vybrána tato předloha. Přejděte ve WebToDate na ObsahFragmenty a přiřaďte vygenerovaný fragment na stránku pod stylem vkládajícím tělo fragmentu. Předlohu vygenerujte.

Přejděte v modulu Registrace a personalizace do nabídky NastaveníGlobálníStránky. Ve formuláři vyberte v první položce Registrační stránka předlohu založenou v prvním kroku a formulář uložte.

Nyní již je možné formulář otestovat na stránce /scripts/modules/registration/registration.php. Měla by se zobrazit stránka s formulářem zhruba následujícího tvaru.

Vyzkoušejte formulář, vyplňte údaje a odešlete. Úspěšná registrace by se měla projevit tak, že se zobrazí opět vyplněný registrační formulář, kde bude v hodní části hlášení "Registrace proběhla úspěšně.". Zkušební registraci budete moci následně pomocí funkce DataUživatelé smazat. V případě potíží zkontrolujte především následující:

  1. AdministracePředvolby je nastaveno Potvrzovací stránka : ne. Potvrzovací stránka může po vyplnění a odeslání formuláře v režimu pouze pro čtení nechat uživatele zkontrolovat a schválit vyplněné údaje, v tuto chvíli ale ještě není stránka definována a tudíž nemůže být použita.
  2. AdministraceÚdaje jsou položky nastaveny způsobem odpovídajícím formuláři, tj. nejsou zde zaškrtnuté položky, které se ve formuláři nenacházejí apod.

Vytvoření přihlašovací stránky

Úvod

Přihlašovací stránka je stránka s přihlašovacím formulářem, do kterého se zadává unikátní identifikátor (uživatelské jméno nebo e-mail) a heslo. Stránka se typicky volá automaticky. Např. pokud jsou některé zprávy pomocí modulu Neveřejná část označeny za neveřejné, pokus o vyvolání zobrazení takové zprávy přesměruje uživatele na tuto přihlašovací stránku, po úspěšném přihlášení pak zase zpět na zobrazení zprávy. Přihlašovací stránka se uplatní i v rámci tohoto modulu v případě, že uživatel chce změnit svoji registraci.

Formulář je typicky zobrazován jako na následujícím otisku obrazovky.

Postup

Postup je v zásadě stejný jako v předchozím případě. Skládá se z následujících kroků:

  1. Založení příslušné předlohy
  2. Vygenerování fragmentu s přihlašovacím formulářem
  3. Vložení fragmentu na předlohu a vygenerování této stránky
  4. Nastavení předlohy v modulu
  5. Otestování přihlašovací stránky

Pro vygenerování fragmentu použijte funkci modulu NástrojePřihlašovací formulář.

Po vygenerování předlohy na stavte v nabídce modulu NastaveníGlobálníStránky tuto předlohu v poli Přihlašovací stránka.

Přihlašovací formulář se zobrazuje na stránce /scripts/modules/registration/login.php. Tento skript se chová následovně:

  • Pokud uživatel není úspěšně přihlášen, zobrazí se opět stránka login.php, aktivuje se chybové hlášení informující o neúspěšném přihlášení.
  • Pokud je uživatel úspěšně přihlášen, je přesměrován na stránku, která přihlášení volala.

Druhá uvedená skutečnost znamená, že pokud zobrazíte přímo stránku /scripts/modules/registration/login.php a zadáte zde přihlašovací údaje, měl by vás skript přesměrovat na volající stránku, ta ale v takovém případě neexistuje. Pro tyto případy skript přesměrovává po přihlášení na úvodní stránku (neboli stránku s adresou "/"). Pro otestování použijte tedy spíše URL pro změnu registrace /scripts/modules/registration/registration.php?action=change (pokud jste dle předchozí kapitoly vytvořili registrační formulář). Měly byste být přesměrováni nejprve na přihlašovací stránku a pak zpět na stránku pro změnu registračních údajů.

Skupiny registrovaných uživatelů

Před další implementací modulu je vhodné správně rozvrhnout dělení uživatelů do skupin s ohledem na požadovanou cílovou funkčnost. Zde je třeba vzít v úvahu následující skutečnosti:

  • Každý uživatel patří do právě jedné skupiny
  • Uživatelé, kteří se registrují pomocí veřejně přístupného registračního formuláře, jsou řazeni do skupiny, která je nastavená v předvolbách modulu.
  • Plánovaná úloha pro expiraci registrací může po vypršení platnosti registrace buď označit registraci jako neaktivní, nebo přeřadit registraci do jiné pevně nastavené skupiny uživatelů nebo obojí.
  • V modulu Neveřejná část lze nadefinovat více pravidel rozlišujících přístup podle skupin. Lze tedy docílit jak toho, že pro každou skupinu uživatelů je určena určitá část webu a tyto části jsou vzájemně disjunktní, tak vytvořit pravidla, která určující překrývající se části webu – např. jedna skupina má přístup ke všem neveřejným zprávám, jiná pouze k určité podmnožině těchto neveřejných zpráv apod.
  • Modul Rozesílání e-mailů může odeslat e-maily hromadně buď všem registrovaným uživatelům nebo jedné vybrané skupině.
  • Modul Formuláře a katalogy může zpřístupnit daný katalog pro všechny anonymní uživatele nebo pro všechny registrované uživatele nebo pro vybranou skupinu registrovaných, přičemž se navíc rozlišují tato práva pro čtení a pro zápis.
  • Ostatní standardně dodávané moduly spolupracující s modulem Registrace a personalizace nerozlišují skupiny uživatelů. Např. u dané diskuzní skupiny lze nastavit, že do ní mají přístup buď všichni anonymní návštěvníci nebo všichni registrovaní uživatelé (kteří mají samozřejmě aktivní registraci), diskuzní skupinu nelze omezit na vybranou skupinu registrovaných uživatelů.