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
|