summaryrefslogtreecommitdiff
path: root/demos/northwind-db
diff options
context:
space:
mode:
authorwei <>2007-05-03 01:37:21 +0000
committerwei <>2007-05-03 01:37:21 +0000
commitea9e7eb535b460218b693d4e5fec80297eb3e360 (patch)
tree8dc4f4ac6d29989ba912a6013ffa6590c71e857d /demos/northwind-db
parent1ae09931b2572d9c3067c99f841a60cb3330b3f3 (diff)
Add northwind db demo.
Diffstat (limited to 'demos/northwind-db')
-rw-r--r--demos/northwind-db/index.php28
-rw-r--r--demos/northwind-db/protected/.htaccess1
-rw-r--r--demos/northwind-db/protected/application.xml20
-rw-r--r--demos/northwind-db/protected/data/Northwind.dbbin0 -> 583680 bytes
-rw-r--r--demos/northwind-db/protected/database/Category.php26
-rw-r--r--demos/northwind-db/protected/database/Customer.php33
-rw-r--r--demos/northwind-db/protected/database/Employee.php48
-rw-r--r--demos/northwind-db/protected/database/Order.php42
-rw-r--r--demos/northwind-db/protected/database/OrderDetail.php27
-rw-r--r--demos/northwind-db/protected/database/Product.php36
-rw-r--r--demos/northwind-db/protected/database/Region.php24
-rw-r--r--demos/northwind-db/protected/database/Shipper.php25
-rw-r--r--demos/northwind-db/protected/database/Supplier.php34
-rw-r--r--demos/northwind-db/protected/database/Territory.php60
-rw-r--r--demos/northwind-db/protected/pages/Home.page12
-rw-r--r--demos/northwind-db/protected/pages/Home.php28
-rw-r--r--demos/northwind-db/protected/pages/northwind.gifbin0 -> 25177 bytes
17 files changed, 444 insertions, 0 deletions
diff --git a/demos/northwind-db/index.php b/demos/northwind-db/index.php
new file mode 100644
index 00000000..94e60d49
--- /dev/null
+++ b/demos/northwind-db/index.php
@@ -0,0 +1,28 @@
+<?php
+
+$basePath=dirname(__FILE__);
+$frameworkPath=$basePath.'/../../framework/prado.php';
+$assetsPath=$basePath.'/assets';
+$runtimePath=$basePath.'/protected/runtime';
+
+if(!is_file($frameworkPath))
+ die("Unable to find prado framework path $frameworkPath.");
+if(!is_writable($assetsPath))
+ die("Please make sure that the directory $assetsPath is writable by Web server process.");
+if(!is_writable($runtimePath))
+ die("Please make sure that the directory $runtimePath is writable by Web server process.");
+
+/** SQLite Northwind database file **/
+$sqlite_dir = $basePath.'/protected/data';
+$sqlite_db = $sqlite_dir.'/Northwind.db';
+if(!is_writable($sqlite_dir))
+ die("Please make sure that the directory $sqlite_dir is writable by Web server process.");
+if(!is_writable($sqlite_db))
+ die("Please make sure that the sqlite database file $sqlite_db is writable by Web server process.");
+
+require_once($frameworkPath);
+
+$application=new TApplication;
+$application->run();
+
+?> \ No newline at end of file
diff --git a/demos/northwind-db/protected/.htaccess b/demos/northwind-db/protected/.htaccess
new file mode 100644
index 00000000..3418e55a
--- /dev/null
+++ b/demos/northwind-db/protected/.htaccess
@@ -0,0 +1 @@
+deny from all \ No newline at end of file
diff --git a/demos/northwind-db/protected/application.xml b/demos/northwind-db/protected/application.xml
new file mode 100644
index 00000000..3ac9c67c
--- /dev/null
+++ b/demos/northwind-db/protected/application.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<application id="northwind-db" mode="Debug">
+ <!-- alias definitions and namespace usings -->
+ <paths>
+ <using namespace="System.Data.*" />
+ <using namespace="System.Data.ActiveRecord.*" />
+ <using namespace="System.Data.ActiveRecord.Scaffold.*" />
+ <using namespace="Application.database.*" />
+ </paths>
+
+ <modules>
+ <module class="TActiveRecordConfig">
+ <!-- db file is relative to the index.php -->
+ <database ConnectionString="sqlite:protected/data/Northwind.db" />
+ </module>
+ <module class="System.I18N.TGlobalization" DefaultCharset="UTF-8" />
+ </modules>
+
+</application> \ No newline at end of file
diff --git a/demos/northwind-db/protected/data/Northwind.db b/demos/northwind-db/protected/data/Northwind.db
new file mode 100644
index 00000000..9d6b08b4
--- /dev/null
+++ b/demos/northwind-db/protected/data/Northwind.db
Binary files differ
diff --git a/demos/northwind-db/protected/database/Category.php b/demos/northwind-db/protected/database/Category.php
new file mode 100644
index 00000000..05fa7ed0
--- /dev/null
+++ b/demos/northwind-db/protected/database/Category.php
@@ -0,0 +1,26 @@
+<?php
+/**
+ * Auto generated by prado-cli.php on 2007-05-01 05:24:53.
+ */
+class Category extends TActiveRecord
+{
+ const TABLE='Categories';
+
+ public $CategoryID;
+ public $CategoryName;
+ public $Description;
+ public $Picture;
+
+ public $Products=array();
+
+ protected static $RELATIONS=array
+ (
+ 'Products' => array(self::HAS_MANY, 'Product'),
+ );
+
+ public static function finder($className=__CLASS__)
+ {
+ return parent::finder($className);
+ }
+}
+?> \ No newline at end of file
diff --git a/demos/northwind-db/protected/database/Customer.php b/demos/northwind-db/protected/database/Customer.php
new file mode 100644
index 00000000..356dd02f
--- /dev/null
+++ b/demos/northwind-db/protected/database/Customer.php
@@ -0,0 +1,33 @@
+<?php
+/**
+ * Auto generated by prado-cli.php on 2007-05-01 05:28:47.
+ */
+class Customer extends TActiveRecord
+{
+ const TABLE='Customers';
+
+ public $CustomerID;
+ public $CompanyName;
+ public $ContactName;
+ public $ContactTitle;
+ public $Address;
+ public $City;
+ public $Region;
+ public $PostalCode;
+ public $Country;
+ public $Phone;
+ public $Fax;
+
+ public $Orders=array();
+
+ protected static $RELATIONS = array
+ (
+ 'Orders' => array(self::HAS_MANY, 'Order'),
+ );
+
+ public static function finder($className=__CLASS__)
+ {
+ return parent::finder($className);
+ }
+}
+?> \ No newline at end of file
diff --git a/demos/northwind-db/protected/database/Employee.php b/demos/northwind-db/protected/database/Employee.php
new file mode 100644
index 00000000..7a678f57
--- /dev/null
+++ b/demos/northwind-db/protected/database/Employee.php
@@ -0,0 +1,48 @@
+<?php
+/**
+ * Auto generated by prado-cli.php on 2007-05-01 05:29:32.
+ */
+class Employee extends TActiveRecord
+{
+ const TABLE='Employees';
+
+ public $EmployeeID;
+ public $LastName;
+ public $FirstName;
+ public $Title;
+ public $TitleOfCourtesy;
+ public $BirthDate;
+ public $HireDate;
+ public $Address;
+ public $City;
+ public $Region;
+ public $PostalCode;
+ public $Country;
+ public $HomePhone;
+ public $Extension;
+ public $Photo;
+ public $Notes;
+ public $ReportsTo;
+ public $PhotoPath;
+
+ public $Territories=array();
+ public $Orders=array();
+ public $Subordinates=array();
+ public $Superior;
+
+ protected static $RELATIONS = array
+ (
+ 'Territories' => array(self::HAS_MANY, 'Territory', 'EmployeeTerritories'),
+ 'Orders' => array(self::HAS_MANY, 'Order'),
+
+ //parent children relationship
+ 'Subordinates' => array(self::HAS_MANY, 'Employee'),
+ 'Superior' => array(self::BELONGS_TO, 'Employee')
+ );
+
+ public static function finder($className=__CLASS__)
+ {
+ return parent::finder($className);
+ }
+}
+?> \ No newline at end of file
diff --git a/demos/northwind-db/protected/database/Order.php b/demos/northwind-db/protected/database/Order.php
new file mode 100644
index 00000000..fa865e61
--- /dev/null
+++ b/demos/northwind-db/protected/database/Order.php
@@ -0,0 +1,42 @@
+<?php
+/**
+ * Auto generated by prado-cli.php on 2007-05-01 05:29:47.
+ */
+class Order extends TActiveRecord
+{
+ const TABLE='Orders';
+
+ public $OrderID;
+ public $CustomerID;
+ public $EmployeeID;
+ public $OrderDate;
+ public $RequiredDate;
+ public $ShippedDate;
+ public $ShipVia;
+ public $Freight;
+ public $ShipName;
+ public $ShipAddress;
+ public $ShipCity;
+ public $ShipRegion;
+ public $ShipPostalCode;
+ public $ShipCountry;
+
+ public $OrderDetails=array();
+ public $Customer;
+ public $Shipper;
+ public $Employee;
+
+ protected static $RELATIONS = array
+ (
+ 'OrderDetails' => array(self::HAS_MANY, 'OrderDetail'),
+ 'Customer' => array(self::BELONGS_TO, 'Customer'),
+ 'Shipper' => array(self::BELONGS_TO, 'Shipper'),
+ 'Employee' => array(self::BELONGS_TO, 'Employee'),
+ );
+
+ public static function finder($className=__CLASS__)
+ {
+ return parent::finder($className);
+ }
+}
+?> \ No newline at end of file
diff --git a/demos/northwind-db/protected/database/OrderDetail.php b/demos/northwind-db/protected/database/OrderDetail.php
new file mode 100644
index 00000000..9415e33e
--- /dev/null
+++ b/demos/northwind-db/protected/database/OrderDetail.php
@@ -0,0 +1,27 @@
+<?php
+
+class OrderDetail extends TActiveRecord
+{
+ const TABLE='Order Details';
+
+ public $OrderID;
+ public $ProductID;
+ public $UnitPrice;
+ public $Quantity;
+ public $Discount;
+
+ public $Product;
+ public $Order;
+
+ protected static $RELATIONS = array
+ (
+ 'Product' => array(self::BELONGS_TO, 'Product'),
+ 'Order' => array(self::BELONGS_TO, 'Order'),
+ );
+
+ public static function finder($className=__CLASS__)
+ {
+ return parent::finder($className);
+ }
+}
+?> \ No newline at end of file
diff --git a/demos/northwind-db/protected/database/Product.php b/demos/northwind-db/protected/database/Product.php
new file mode 100644
index 00000000..75d01c02
--- /dev/null
+++ b/demos/northwind-db/protected/database/Product.php
@@ -0,0 +1,36 @@
+<?php
+/**
+ * Auto generated by prado-cli.php on 2007-05-01 05:31:51.
+ */
+class Product extends TActiveRecord
+{
+ const TABLE='Products';
+
+ public $ProductID;
+ public $ProductName;
+ public $SupplierID;
+ public $CategoryID;
+ public $QuantityPerUnit;
+ public $UnitPrice;
+ public $UnitsInStock;
+ public $UnitsOnOrder;
+ public $ReorderLevel;
+ public $Discontinued;
+
+ public $Supplier;
+ public $Category;
+ public $OrderDetails=array();
+
+ protected static $RELATIONS = array
+ (
+ 'Supplier' => array(self::BELONGS_TO, 'Supplier'),
+ 'Category' => array(self::BELONGS_TO, 'Category'),
+ 'OrderDetails' => array(self::HAS_MANY, 'OrderDetail'),
+ );
+
+ public static function finder($className=__CLASS__)
+ {
+ return parent::finder($className);
+ }
+}
+?> \ No newline at end of file
diff --git a/demos/northwind-db/protected/database/Region.php b/demos/northwind-db/protected/database/Region.php
new file mode 100644
index 00000000..2afa3501
--- /dev/null
+++ b/demos/northwind-db/protected/database/Region.php
@@ -0,0 +1,24 @@
+<?php
+/**
+ * Auto generated by prado-cli.php on 2007-05-01 05:32:34.
+ */
+class Region extends TActiveRecord
+{
+ const TABLE='Region';
+
+ public $RegionID;
+ public $RegionDescription;
+
+ public $Territories=array();
+
+ protected static $RELATIONS = array
+ (
+ 'Territories' => array(self::HAS_MANY, 'Territory')
+ );
+
+ public static function finder($className=__CLASS__)
+ {
+ return parent::finder($className);
+ }
+}
+?> \ No newline at end of file
diff --git a/demos/northwind-db/protected/database/Shipper.php b/demos/northwind-db/protected/database/Shipper.php
new file mode 100644
index 00000000..6ac8a929
--- /dev/null
+++ b/demos/northwind-db/protected/database/Shipper.php
@@ -0,0 +1,25 @@
+<?php
+/**
+ * Auto generated by prado-cli.php on 2007-05-01 05:32:57.
+ */
+class Shipper extends TActiveRecord
+{
+ const TABLE='Shippers';
+
+ public $ShipperID;
+ public $CompanyName;
+ public $Phone;
+
+ public $Orders = array();
+
+ protected static $RELATIONS = array
+ (
+ 'Orders' => array(self::HAS_MANY, 'Order'),
+ );
+
+ public static function finder($className=__CLASS__)
+ {
+ return parent::finder($className);
+ }
+}
+?> \ No newline at end of file
diff --git a/demos/northwind-db/protected/database/Supplier.php b/demos/northwind-db/protected/database/Supplier.php
new file mode 100644
index 00000000..537daade
--- /dev/null
+++ b/demos/northwind-db/protected/database/Supplier.php
@@ -0,0 +1,34 @@
+<?php
+/**
+ * Auto generated by prado-cli.php on 2007-05-01 05:33:08.
+ */
+class Supplier extends TActiveRecord
+{
+ const TABLE='Suppliers';
+
+ public $SupplierID;
+ public $CompanyName;
+ public $ContactName;
+ public $ContactTitle;
+ public $Address;
+ public $City;
+ public $Region;
+ public $PostalCode;
+ public $Country;
+ public $Phone;
+ public $Fax;
+ public $HomePage;
+
+ public $Products=array();
+
+ protected static $RELATIONS=array
+ (
+ 'Products' => array(self::HAS_MANY, 'Product')
+ );
+
+ public static function finder($className=__CLASS__)
+ {
+ return parent::finder($className);
+ }
+}
+?> \ No newline at end of file
diff --git a/demos/northwind-db/protected/database/Territory.php b/demos/northwind-db/protected/database/Territory.php
new file mode 100644
index 00000000..4da0ff46
--- /dev/null
+++ b/demos/northwind-db/protected/database/Territory.php
@@ -0,0 +1,60 @@
+<?php
+/**
+ * Auto generated by prado-cli.php on 2007-05-01 05:33:28.
+ */
+class Territory extends TActiveRecord
+{
+ const TABLE='Territories';
+
+ public $TerritoryID;
+ public $TerritoryDescription;
+ public $RegionID;
+
+ private $_region;
+ private $_employees;
+
+ protected static $RELATIONS = array
+ (
+ 'Region' => array(self::BELONGS_TO, 'Region'),
+ 'Employees' => array(self::HAS_MANY, 'Employee', 'EmployeeTerritories')
+ );
+
+ /**
+ * @return Region
+ */
+ public function getRegion()
+ {
+ //lazy load the region
+ if($this->_region===null)
+ $this->_region = Region::finder()->findByPk($this->RegionID);
+ return $this->_region;
+ }
+
+ public function setRegion($value)
+ {
+ $this->_region=$value;
+ }
+
+ /**
+ * @return Employee[]
+ */
+ public function getEmployees()
+ {
+ //lazy load
+ if($this->_employees==null)
+ $this->setEmployees($this->withEmployees()->findByPk($this->TerritoryID)->getEmployees());
+ return $this->_employees;
+ }
+
+ public function setEmployees($value)
+ {
+ //ensure TList
+ $this->_employees = $value instanceof TList ? $value : new TList($value);
+ }
+
+ public static function finder($className=__CLASS__)
+ {
+ return parent::finder($className);
+ }
+}
+?> \ No newline at end of file
diff --git a/demos/northwind-db/protected/pages/Home.page b/demos/northwind-db/protected/pages/Home.page
new file mode 100644
index 00000000..e2c3668e
--- /dev/null
+++ b/demos/northwind-db/protected/pages/Home.page
@@ -0,0 +1,12 @@
+<html>
+<com:THead Title="Welcome to Prado" />
+<body>
+<h1>Welcome to PRADO!</h1>
+<com:TForm>
+
+ <com:TDropDownList ID="class_list" AutoPostBack="true"/>
+ <com:TScaffoldView ID="scaffold1" RecordClass="<%= $this->class_list->selectedItem->Text %>" />
+
+</com:TForm>
+</body>
+</html> \ No newline at end of file
diff --git a/demos/northwind-db/protected/pages/Home.php b/demos/northwind-db/protected/pages/Home.php
new file mode 100644
index 00000000..06035069
--- /dev/null
+++ b/demos/northwind-db/protected/pages/Home.php
@@ -0,0 +1,28 @@
+<?php
+
+class Home extends TPage
+{
+ function onInit($param)
+ {
+ $classes = $this->getRecordClassList(Prado::getPathOfNamespace('Application.database.*'));
+ $this->class_list->dataSource = $classes;
+ $this->class_list->dataBind();
+ }
+
+ protected function getRecordClassList($directory)
+ {
+ $list=array();
+ $folder=@opendir($directory);
+ while($entry=@readdir($folder))
+ {
+ if($entry[0]==='.')
+ continue;
+ else if(is_file($directory.'/'.$entry))
+ $list[] = str_replace('.php', '', $entry);
+ }
+ closedir($folder);
+ return $list;
+ }
+}
+
+?> \ No newline at end of file
diff --git a/demos/northwind-db/protected/pages/northwind.gif b/demos/northwind-db/protected/pages/northwind.gif
new file mode 100644
index 00000000..34e1f2ed
--- /dev/null
+++ b/demos/northwind-db/protected/pages/northwind.gif
Binary files differ