intro wiki download guestbook contact

Model

Als nächstes kommt das Model an die Reihe. Wir erstellen zuerst einmal die article Tabelle, in welcher dann unsere ganzen Artikeln gespeichert sind, mit folgendem SQL:


CREATE TABLE article (
   id int(11) NOT NULL auto_increment,
   title varchar(100) NOT NULL,
   text text NOT NULL,
   create_time datetime NOT NULL,
   modify_time datetime NOT NULL,
   PRIMARY KEY  (id)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

und wir machen auch gleich einen Eintrag rein:


INSERT into article (title, text, create_time, modify_time)
VALUES ('first', 'Erster Eintrag in meinem WebTek Wiki', now(), now());

Ok... das hätten wir. Jetzt brauchen wir natürlich noch das Model, welches mit dieser Tabelle verbunden ist. dazu gehen wir in unser /WebTek/app/Wiki verzeichis und führen folgendes aus:


./webtek Model Article

Dieses script erstellt uns im Model verzeichnis das Article Model. Dieses ist schon voll einsatzfähig, und das wollen wir jetzt gleich ausprobieren. Dazu öffenen wir die Root Page (/WebTek/app/Wiki/Page/Root.pm) und ändern die index Action wie folgt:


sub index :Action {
   my $self = shift;
  
   my $article = Wiki::Model::Article->find_one('title' => 'first');
   response->write($article->text());
}

und siehe da, 'Erster Eintrag in meinem WebTek Wiki' sollte im Browser, nach einem Reload, erscheinen.

Abschließend legen wir noch fest, welche Werte für welche Spalten erlaubt sind. Dazu erstellen wir folgende Methode in der Datei _Wiki/Model/Article.pm:


sub PROPERTIES { {
   'title' => '.',
   'text' => '.',
} }

Hier kann man für pro Spalte eine Regular Expression angeben, welche bei der Fehlerüberprüfung angewendet wird. In unserem Fall wird nur geprüft, ob mindestens ein Zeichen bei title und text angegeben wurde.

zurück weiter