diff options
Diffstat (limited to 'demos')
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.dbBinary files differ new file mode 100644 index 00000000..9d6b08b4 --- /dev/null +++ b/demos/northwind-db/protected/data/Northwind.db 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.gifBinary files differ new file mode 100644 index 00000000..34e1f2ed --- /dev/null +++ b/demos/northwind-db/protected/pages/northwind.gif | 
