diff options
| author | xue <> | 2007-04-06 03:06:36 +0000 | 
|---|---|---|
| committer | xue <> | 2007-04-06 03:06:36 +0000 | 
| commit | 05c6a7a2ef0d6be3a02b8e1a3e2bd2b6afacf799 (patch) | |
| tree | ee00c40f3be3b9de95d139ccfb51330ffbfea05b /demos/blog-tutorial/samples/day2/blog/protected | |
| parent | 16bbf435c8048c3c726de78adc8a670b8a527229 (diff) | |
Finished blog tutorial day 2.
Diffstat (limited to 'demos/blog-tutorial/samples/day2/blog/protected')
11 files changed, 231 insertions, 0 deletions
| diff --git a/demos/blog-tutorial/samples/day2/blog/protected/.htaccess b/demos/blog-tutorial/samples/day2/blog/protected/.htaccess new file mode 100644 index 00000000..3418e55a --- /dev/null +++ b/demos/blog-tutorial/samples/day2/blog/protected/.htaccess @@ -0,0 +1 @@ +deny from all
\ No newline at end of file diff --git a/demos/blog-tutorial/samples/day2/blog/protected/application.xml b/demos/blog-tutorial/samples/day2/blog/protected/application.xml new file mode 100644 index 00000000..69cdbf9f --- /dev/null +++ b/demos/blog-tutorial/samples/day2/blog/protected/application.xml @@ -0,0 +1,44 @@ +<?xml version="1.0" encoding="utf-8"?>
 +
 +<application id="blog" mode="Debug">
 +  <!-- alias definitions and namespace usings
 +  <paths>
 +    <alias id="myalias" path="./lib" />
 +    <using namespace="Application.common.*" />
 +  </paths>
 +  -->
 +
 +  <!-- configurations for modules -->
 +  <modules>
 +    <!-- Remove this comment mark to enable caching
 +    <module id="cache" class="System.Caching.TDbCache" />
 +    -->
 +
 +    <!-- Remove this comment mark to enable PATH url format
 +    <module id="request" class="THttpRequest" UrlFormat="Path" />
 +    -->
 +
 +    <!-- Remove this comment mark to enable logging
 +    <module id="log" class="System.Util.TLogRouter">
 +      <route class="TBrowserLogRoute" Categories="System" />
 +    </module>
 +    -->
 +    <module id="data" class="System.Data.ActiveRecord.TActiveRecordConfig">
 +      <database ConnectionString="sqlite:protected/data/blog.db" />
 +    </module>
 +  </modules>
 +
 +  <!-- configuration for available services -->
 +  <services>
 +    <service id="page" class="TPageService" DefaultPage="Home">
 +      <pages MasterClass="Application.layouts.MainLayout" />
 +    </service>
 +  </services>
 +
 +  <!-- application parameters
 +  <parameters>
 +    <parameter id="param1" value="value1" />
 +    <parameter id="param2" value="value2" />
 +  </parameters>
 +  -->
 +</application>
\ No newline at end of file diff --git a/demos/blog-tutorial/samples/day2/blog/protected/data/blog.db b/demos/blog-tutorial/samples/day2/blog/protected/data/blog.dbBinary files differ new file mode 100644 index 00000000..37449fd3 --- /dev/null +++ b/demos/blog-tutorial/samples/day2/blog/protected/data/blog.db diff --git a/demos/blog-tutorial/samples/day2/blog/protected/database/PostRecord.php b/demos/blog-tutorial/samples/day2/blog/protected/database/PostRecord.php new file mode 100644 index 00000000..a9fb5db3 --- /dev/null +++ b/demos/blog-tutorial/samples/day2/blog/protected/database/PostRecord.php @@ -0,0 +1,25 @@ +<?php
 +/**
 + * Auto generated by prado-cli.php on 2007-04-05 10:25:19.
 + */
 +class PostRecord extends TActiveRecord
 +{
 +	const TABLE='posts';
 +
 +	public $post_id; + +	public $author; + +	public $create_time; + +	public $title; + +	public $content; +
 +
 +	public static function finder($className=__CLASS__)
 +	{
 +		return parent::finder($className);
 +	}
 +}
 +?>
\ No newline at end of file diff --git a/demos/blog-tutorial/samples/day2/blog/protected/database/UserRecord.php b/demos/blog-tutorial/samples/day2/blog/protected/database/UserRecord.php new file mode 100644 index 00000000..5f2be169 --- /dev/null +++ b/demos/blog-tutorial/samples/day2/blog/protected/database/UserRecord.php @@ -0,0 +1,27 @@ +<?php
 +/**
 + * Auto generated by prado-cli.php on 2007-04-05 10:23:57.
 + */
 +class UserRecord extends TActiveRecord
 +{
 +	const TABLE='users';
 +
 +	public $username; + +	public $email; + +	public $password; + +	public $role; + +	public $first_name; + +	public $last_name; +
 +
 +	public static function finder($className=__CLASS__)
 +	{
 +		return parent::finder($className);
 +	}
 +}
 +?>
\ No newline at end of file diff --git a/demos/blog-tutorial/samples/day2/blog/protected/layouts/MainLayout.php b/demos/blog-tutorial/samples/day2/blog/protected/layouts/MainLayout.php new file mode 100644 index 00000000..253d6c03 --- /dev/null +++ b/demos/blog-tutorial/samples/day2/blog/protected/layouts/MainLayout.php @@ -0,0 +1,7 @@ +<?php
 +
 +class MainLayout extends TTemplateControl
 +{
 +}
 +
 +?>
\ No newline at end of file diff --git a/demos/blog-tutorial/samples/day2/blog/protected/layouts/MainLayout.tpl b/demos/blog-tutorial/samples/day2/blog/protected/layouts/MainLayout.tpl new file mode 100644 index 00000000..5218b98d --- /dev/null +++ b/demos/blog-tutorial/samples/day2/blog/protected/layouts/MainLayout.tpl @@ -0,0 +1,20 @@ +<html>
 +<com:THead />
 +<body>
 +<com:TForm>
 + 
 +<div id="header">
 +<h1>My PRADO Blog</h1>
 +</div>
 + 
 +<div id="main">
 +<com:TContentPlaceHolder ID="Main" />
 +</div>
 + 
 +<div id="footer">
 +Powered by <%= PRADO::poweredByPrado() %>
 +</div>
 + 
 +</com:TForm>
 +</body>
 +</html>
\ No newline at end of file diff --git a/demos/blog-tutorial/samples/day2/blog/protected/pages/Contact.page b/demos/blog-tutorial/samples/day2/blog/protected/pages/Contact.page new file mode 100644 index 00000000..c36149ca --- /dev/null +++ b/demos/blog-tutorial/samples/day2/blog/protected/pages/Contact.page @@ -0,0 +1,47 @@ +<%@ Title="My Blog - Contact" %>
 + 
 +<com:TContent ID="Main">
 + 
 +<h1>Contact</h1>
 +<p>Please fill out the following form to let me know your feedback on my blog. Thanks!</p>
 +
 +<span>Your Name:</span>
 +<com:TRequiredFieldValidator ControlToValidate="Name"
 +	ErrorMessage="Please provide your name." 
 +	Display="Dynamic"
 +	/>
 +<br/>
 +<com:TTextBox ID="Name" />
 +
 +<br/>
 +
 +<span>Your Email:</span>
 +<com:TRequiredFieldValidator ControlToValidate="Email"
 +	ErrorMessage="Please provide your email address." 
 +	Display="Dynamic"
 +	/>
 +<com:TEmailAddressValidator ControlToValidate="Email"
 +	ErrorMessage="You entered an invalid email address." 
 +	Display="Dynamic"
 +	/>
 +<br/>
 +<com:TTextBox ID="Email" />
 +
 +<br/>
 +
 +<span>Feedback:</span>
 +<com:TRequiredFieldValidator ControlToValidate="Feedback"
 +	ErrorMessage="Please provide your feedback." 
 +	Display="Dynamic"
 +	/>
 +<br/>
 +<com:TTextBox ID="Feedback" 
 +	TextMode="MultiLine" 
 +	Rows="10"
 +	Columns="40" />
 +
 +<br/>
 +
 +<com:TButton Text="Submit" OnClick="submitButtonClicked" />
 +
 +</com:TContent>
\ No newline at end of file diff --git a/demos/blog-tutorial/samples/day2/blog/protected/pages/Contact.php b/demos/blog-tutorial/samples/day2/blog/protected/pages/Contact.php new file mode 100644 index 00000000..b6ce575e --- /dev/null +++ b/demos/blog-tutorial/samples/day2/blog/protected/pages/Contact.php @@ -0,0 +1,30 @@ +<?php
 +
 +class Contact extends TPage
 +{
 +	/**
 +	 * Event handler for the OnClick event of the submit button.
 +	 * @param TButton the button triggering the event
 +	 * @param TEventParameter event parameter (null here)
 +	 */
 +	public function submitButtonClicked($sender, $param)
 +	{
 +		if ($this->IsValid)  // check if input validation is successful
 +		{
 +			// obtain the user name, email, feedback from the textboxes
 +			$name = $this->Name->Text;
 +			$email = $this->Email->Text;
 +			$feedback = $this->Feedback->Text;
 +
 +			// send an email to administrator with the above information
 +			$this->mailFeedback($name, $email, $feedback);
 +		}
 +	}
 +
 +	protected function mailFeedback($name, $email, $feedback)
 +	{
 +		// implementation of sending the feedback email
 +	}
 +}
 +
 +?>
\ No newline at end of file diff --git a/demos/blog-tutorial/samples/day2/blog/protected/pages/Home.page b/demos/blog-tutorial/samples/day2/blog/protected/pages/Home.page new file mode 100644 index 00000000..7a9c4a7d --- /dev/null +++ b/demos/blog-tutorial/samples/day2/blog/protected/pages/Home.page @@ -0,0 +1,7 @@ +<%@ Title="Welcome to PRADO" %>
 +
 +<com:TContent ID="Main">
 +
 +<h1>Welcome to PRADO!</h1>
 +
 +</com:TContent>
\ No newline at end of file diff --git a/demos/blog-tutorial/samples/day2/blog/protected/schema.sql b/demos/blog-tutorial/samples/day2/blog/protected/schema.sql new file mode 100644 index 00000000..085e47c3 --- /dev/null +++ b/demos/blog-tutorial/samples/day2/blog/protected/schema.sql @@ -0,0 +1,23 @@ +/* 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 */
 +  role          INTEGER NOT NULL,       /* 0: normal user, 1: administrator */
 +  first_name    VARCHAR(128),
 +  last_name     VARCHAR(128)
 +);
 +
 +/* create posts table */
 +CREATE TABLE posts (
 +  post_id       INTEGER NOT NULL PRIMARY KEY,
 +  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 */
 +);
 +
 +/* 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');
 | 
