intro wiki download guestbook contact

Model

Zuerst legen wir einmal die user Tabelle mit folgendem SQL an:


CREATE TABLE user (
   id int(11) NOT NULL auto_increment,
   nickname varchar(30) NOT NULL,
   password varchar(30) NOT NULL,
   firstname varchar(30),
   lastname varchar(50),
   address varchar(50),
   city varchar(50),
   email_address varchar(50),
   country varchar(2),
   language varchar(2),
   create_time datetime NOT NULL,
   modify_time datetime NOT NULL,
   PRIMARY KEY  (id),
   KEY nickname (nickname)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

Dann brauchen wir noch das Model welches wir mit dem webtek script erstellen:

./webtek Model User

Desweiteren definieren wir noch PROTECTED und PROPERTIES, d.h. unser User Model sieht dann so aus:


package Wiki::Model::User;
 
use strict;
use WebTek::Globals; 

our @ISA = qw( WebTek::Model );

sub PROTECTED { ['id', 'nickname', 'password', 'create_time', 'modify_time'] }

sub PROPERTIES { {
   'nickname' => '^\w{3,30}$',
   'password' => '^.{5,30}$',
   'country' => '^(|at|de|uk|us)$',
   'language' => '^(|en|de)$',
} }

und zum Schluss definieren wir auch noch gleich die Fehlermeldungen. Dazu erstellen wir die Datei /WebTek/app/Wiki/messages/de.user.properties mit folgendem Inhalt:


Wiki.Model.User.nickname.empty = Bitte gib einen Nickname an.
Wiki.Model.User.nickname.invalid = Der Nickname muss zwischen 3 und 30 Zeichen lang sein.
Wiki.Model.User.password.invalid = Das Passwort muss zwischen 5 und 30 Zeichen lang sein
Wiki.Model.User.firstname.invalid = Der Vorname darf maximal 50 Zeichen lang sein.
Wiki.Model.User.lastname.invalid = Der Nachname darf maximal 50 Zeichen lang sein.
Wiki.Model.User.address.invalid =  Die Adresse darf maxiaml 50 Zeichen lang sein.
Wiki.Model.User.city.empty = Die Stadt darf maximal 50 Zeichen lang sein.
Wiki.Model.User.email_address.invalid = Die Email Adresse darf maximal 50 Zeichen lang sein.

Das ganze auch noch gleich in Englisch. Dazu erstellen wir die Datei /WebTek/app/Wiki/messages/en.user.properties mit folgendem Inhalt:


Wiki.Model.User.nickname.empty = Choose a nickname.
Wiki.Model.User.nickname.invalid = The nickname must be between 3 and 30 characters.
Wiki.Model.User.password.invalid = The password must be between 3 and 30 characters
Wiki.Model.User.firstname.invalid = The firstname can have max. 50 characters.
Wiki.Model.User.lastname.invalid = The lastname may be maximally 50 characters long.
Wiki.Model.User.address.invalid =  The address may be maximally 50 characters long.
Wiki.Model.User.city.empty = The city may be maximally 50 characters long.
Wiki.Model.User.email_address.invalid = The email_address may be maximally 50 characters long.

Als letztes legen wir mal einen ersten Benutzer an und ändern auch noch die article Tabelle, sodaß jeder Eintrag auch einem Benutzer gehört:


INSERT INTO user (nickname, password, language, create_time, modify_time)
VALUES ('admin', 'admin', 'de', now(), now());
ALTER TABLE article ADD user_id int(11) NOT NULL DEFAULT '1';

An dieser Stelle restarten wir auch gleich noch den Webserver, damit das neue Datenbankschema in WebTek übernommen wird.

weiter