From ff32eed01f783ee33caeacb0f7315612f0994f8f Mon Sep 17 00:00:00 2001 From: xue <> Date: Sun, 8 Apr 2007 21:33:23 +0000 Subject: Added Day 2 tutorial. --- .../day1/blog/protected/layouts/MainLayout.tpl | 2 +- .../samples/day2/blog/protected/data/blog.db | Bin 5120 -> 4096 bytes .../day2/blog/protected/database/PostRecord.php | 4 +- .../day2/blog/protected/database/UserRecord.php | 2 +- .../day2/blog/protected/layouts/MainLayout.tpl | 2 +- .../samples/day2/blog/protected/schema.sql | 9 ++- demos/blog-tutorial/samples/day3/blog/index.php | 23 ++++++ .../samples/day3/blog/protected/.htaccess | 1 + .../samples/day3/blog/protected/BlogUser.php | 59 +++++++++++++++ .../samples/day3/blog/protected/application.xml | 55 ++++++++++++++ .../samples/day3/blog/protected/data/blog.db | Bin 0 -> 5120 bytes .../day3/blog/protected/database/PostRecord.php | 27 +++++++ .../day3/blog/protected/database/UserRecord.php | 27 +++++++ .../day3/blog/protected/layouts/MainLayout.php | 19 +++++ .../day3/blog/protected/layouts/MainLayout.tpl | 29 +++++++ .../samples/day3/blog/protected/pages/Contact.page | 47 ++++++++++++ .../samples/day3/blog/protected/pages/Contact.php | 30 ++++++++ .../samples/day3/blog/protected/pages/Home.page | 7 ++ .../day3/blog/protected/pages/users/AdminUser.page | 40 ++++++++++ .../day3/blog/protected/pages/users/AdminUser.php | 36 +++++++++ .../day3/blog/protected/pages/users/EditUser.page | 61 +++++++++++++++ .../day3/blog/protected/pages/users/EditUser.php | 83 +++++++++++++++++++++ .../day3/blog/protected/pages/users/LoginUser.page | 28 +++++++ .../day3/blog/protected/pages/users/LoginUser.php | 37 +++++++++ .../day3/blog/protected/pages/users/NewUser.page | 73 ++++++++++++++++++ .../day3/blog/protected/pages/users/NewUser.php | 45 +++++++++++ .../day3/blog/protected/pages/users/config.xml | 7 ++ .../samples/day3/blog/protected/schema.sql | 24 ++++++ 28 files changed, 769 insertions(+), 8 deletions(-) create mode 100644 demos/blog-tutorial/samples/day3/blog/index.php create mode 100644 demos/blog-tutorial/samples/day3/blog/protected/.htaccess create mode 100644 demos/blog-tutorial/samples/day3/blog/protected/BlogUser.php create mode 100644 demos/blog-tutorial/samples/day3/blog/protected/application.xml create mode 100644 demos/blog-tutorial/samples/day3/blog/protected/data/blog.db create mode 100644 demos/blog-tutorial/samples/day3/blog/protected/database/PostRecord.php create mode 100644 demos/blog-tutorial/samples/day3/blog/protected/database/UserRecord.php create mode 100644 demos/blog-tutorial/samples/day3/blog/protected/layouts/MainLayout.php create mode 100644 demos/blog-tutorial/samples/day3/blog/protected/layouts/MainLayout.tpl create mode 100644 demos/blog-tutorial/samples/day3/blog/protected/pages/Contact.page create mode 100644 demos/blog-tutorial/samples/day3/blog/protected/pages/Contact.php create mode 100644 demos/blog-tutorial/samples/day3/blog/protected/pages/Home.page create mode 100644 demos/blog-tutorial/samples/day3/blog/protected/pages/users/AdminUser.page create mode 100644 demos/blog-tutorial/samples/day3/blog/protected/pages/users/AdminUser.php create mode 100644 demos/blog-tutorial/samples/day3/blog/protected/pages/users/EditUser.page create mode 100644 demos/blog-tutorial/samples/day3/blog/protected/pages/users/EditUser.php create mode 100644 demos/blog-tutorial/samples/day3/blog/protected/pages/users/LoginUser.page create mode 100644 demos/blog-tutorial/samples/day3/blog/protected/pages/users/LoginUser.php create mode 100644 demos/blog-tutorial/samples/day3/blog/protected/pages/users/NewUser.page create mode 100644 demos/blog-tutorial/samples/day3/blog/protected/pages/users/NewUser.php create mode 100644 demos/blog-tutorial/samples/day3/blog/protected/pages/users/config.xml create mode 100644 demos/blog-tutorial/samples/day3/blog/protected/schema.sql (limited to 'demos/blog-tutorial/samples') diff --git a/demos/blog-tutorial/samples/day1/blog/protected/layouts/MainLayout.tpl b/demos/blog-tutorial/samples/day1/blog/protected/layouts/MainLayout.tpl index 5218b98d..6e264936 100644 --- a/demos/blog-tutorial/samples/day1/blog/protected/layouts/MainLayout.tpl +++ b/demos/blog-tutorial/samples/day1/blog/protected/layouts/MainLayout.tpl @@ -12,7 +12,7 @@
diff --git a/demos/blog-tutorial/samples/day2/blog/protected/data/blog.db b/demos/blog-tutorial/samples/day2/blog/protected/data/blog.db index 37449fd3..46e82bfb 100644 Binary files a/demos/blog-tutorial/samples/day2/blog/protected/data/blog.db and b/demos/blog-tutorial/samples/day2/blog/protected/data/blog.db differ diff --git a/demos/blog-tutorial/samples/day2/blog/protected/database/PostRecord.php b/demos/blog-tutorial/samples/day2/blog/protected/database/PostRecord.php index 31451b30..a761286a 100644 --- a/demos/blog-tutorial/samples/day2/blog/protected/database/PostRecord.php +++ b/demos/blog-tutorial/samples/day2/blog/protected/database/PostRecord.php @@ -1,6 +1,6 @@ diff --git a/demos/blog-tutorial/samples/day2/blog/protected/schema.sql b/demos/blog-tutorial/samples/day2/blog/protected/schema.sql index 085e47c3..d3189b40 100644 --- a/demos/blog-tutorial/samples/day2/blog/protected/schema.sql +++ b/demos/blog-tutorial/samples/day2/blog/protected/schema.sql @@ -1,8 +1,8 @@ /* create users table */ CREATE TABLE users ( username VARCHAR(128) NOT NULL PRIMARY KEY, - email VARCHAR(128) NOT NULL UNIQUE, - password VARCHAR(128) NOT NULL, /* plain text password */ + email VARCHAR(128) NOT NULL, + password VARCHAR(128) NOT NULL, /* in plain text */ role INTEGER NOT NULL, /* 0: normal user, 1: administrator */ first_name VARCHAR(128), last_name VARCHAR(128) @@ -14,10 +14,11 @@ CREATE TABLE posts ( author VARCHAR(128) NOT NULL, /* references users.username */ create_time INTEGER NOT NULL, /* UNIX timestamp */ title VARCHAR(256) NOT NULL, /* title of the post */ - content TEXT NOT NULL /* content of the post */ + content TEXT NOT NULL, /* content of the post */ + status INTEGER NOT NULL /* 0: published; 1: draft; 2: pending; 2: denied */ ); /* insert some initial data records for testing */ INSERT INTO users VALUES ('admin', 'admin@example.com', 'demo', 1, 'Qiang', 'Xue'); INSERT INTO users VALUES ('demo', 'demo@example.com', 'demo', 0, 'Wei', 'Zhuo'); -INSERT INTO posts VALUES (NULL, 'admin', 1175708482, 'first post', 'this is my first post'); +INSERT INTO posts VALUES (NULL, 'admin', 1175708482, 'first post', 'this is my first post', 0); diff --git a/demos/blog-tutorial/samples/day3/blog/index.php b/demos/blog-tutorial/samples/day3/blog/index.php new file mode 100644 index 00000000..8132899e --- /dev/null +++ b/demos/blog-tutorial/samples/day3/blog/index.php @@ -0,0 +1,23 @@ +run(); + +?> \ No newline at end of file diff --git a/demos/blog-tutorial/samples/day3/blog/protected/.htaccess b/demos/blog-tutorial/samples/day3/blog/protected/.htaccess new file mode 100644 index 00000000..3418e55a --- /dev/null +++ b/demos/blog-tutorial/samples/day3/blog/protected/.htaccess @@ -0,0 +1 @@ +deny from all \ No newline at end of file diff --git a/demos/blog-tutorial/samples/day3/blog/protected/BlogUser.php b/demos/blog-tutorial/samples/day3/blog/protected/BlogUser.php new file mode 100644 index 00000000..6b9e0a23 --- /dev/null +++ b/demos/blog-tutorial/samples/day3/blog/protected/BlogUser.php @@ -0,0 +1,59 @@ +findByPk($username); + if($userRecord instanceof UserRecord) // if found + { + $user=new BlogUser($this->Manager); + $user->Name=$username; // set username + $user->Roles=($userRecord->role==1?'admin':'user'); // set role + $user->IsGuest=false; // the user is not a guest + return $user; + } + else + return null; + } + + /** + * Checks if the specified (username, password) is valid. + * This method is required by TDbUser. + * @param string username + * @param string password + * @return boolean whether the username and password are valid. + */ + public function validateUser($username,$password) + { + // use UserRecord Active Record to look for the (username, password) pair. + return UserRecord::finder()->findBy_username_AND_password($username,$password)!==null; + } + + /** + * @return boolean whether this user is an administrator. + */ + public function getIsAdmin() + { + return $this->isInRole('admin'); + } +} + +?> \ No newline at end of file diff --git a/demos/blog-tutorial/samples/day3/blog/protected/application.xml b/demos/blog-tutorial/samples/day3/blog/protected/application.xml new file mode 100644 index 00000000..785f3608 --- /dev/null +++ b/demos/blog-tutorial/samples/day3/blog/protected/application.xml @@ -0,0 +1,55 @@ + + +Please fill out the following form to let me know your feedback on my blog. Thanks!
+ +Your Name: +