From 64f1a73dd50943eae2f45e24b410defaa5db6dc1 Mon Sep 17 00:00:00 2001 From: Tim Steiner <tsteiner2@unl.edu> Date: Thu, 10 May 2007 17:14:59 +0000 Subject: [PATCH] Updates for ZF-0.9.3 Compatibility DB_Table_Row_DataType added Support for Linking Tables in DB_Table_Relation_HasMany --- library/Nmc/Auth/Interface.php | 1 - library/Nmc/Auth/Ldap.php | 3 - library/Nmc/Auth/Multi.php | 3 - library/Nmc/Auth/Mysql.php | 5 +- library/Nmc/Db/RowManager.php | 1 - library/Nmc/Db/SessionHandler.php | 1 - library/Nmc/Db/Table.php | 2 - library/Nmc/Db/Table/AclRecord.php | 1 - library/Nmc/Db/Table/DataType/Date.php | 46 +++++++ library/Nmc/Db/Table/DataType/Interface.php | 9 ++ library/Nmc/Db/Table/Relation/Abstract.php | 2 - library/Nmc/Db/Table/Relation/Extend.php | 2 - library/Nmc/Db/Table/Relation/HasMany.php | 144 +++++++++++++------- library/Nmc/Db/Table/Relation/HasOne.php | 2 - library/Nmc/Db/Table/Row.php | 20 +++ library/Nmc/EqualToInterface.php | 4 - library/Nmc/Image.php | 1 - library/Nmc/Image/Abstract.php | 1 - library/Nmc/Image/Color.php | 2 - library/Nmc/Image/Jpeg.php | 1 - library/Nmc/Image/Png.php | 1 - library/Nmc/Ldap.php | 2 - library/Nmc/Ldap/Exception.php | 2 - library/Nmc/Math/OrderedPair.php | 1 - library/Nmc/Model/AclGroups.php | 3 - library/Nmc/Model/AclOthers.php | 1 - library/Nmc/Model/AclUsers.php | 1 - library/Nmc/Model/UserInterface.php | 2 - library/Nmc/Semaphore.php | 2 - library/Nmc/User.php | 1 - library/Nmc/View.php | 6 +- library/Nmc/View/Helper/FormSelectDay.php | 15 ++ library/Nmc/View/Helper/FormSelectMonth.php | 25 ++++ library/Nmc/View/Helper/FormSelectYear.php | 15 ++ library/Nmc/View/Oss.php | 2 - library/Nmc/View/Unl.php | 1 - 36 files changed, 233 insertions(+), 98 deletions(-) create mode 100644 library/Nmc/Db/Table/DataType/Date.php create mode 100644 library/Nmc/Db/Table/DataType/Interface.php create mode 100644 library/Nmc/View/Helper/FormSelectDay.php create mode 100644 library/Nmc/View/Helper/FormSelectMonth.php create mode 100644 library/Nmc/View/Helper/FormSelectYear.php diff --git a/library/Nmc/Auth/Interface.php b/library/Nmc/Auth/Interface.php index 1d5bcec..da5cf0f 100644 --- a/library/Nmc/Auth/Interface.php +++ b/library/Nmc/Auth/Interface.php @@ -1,6 +1,5 @@ <?php -require_once('Zend.php'); Zend_Loader::loadClass('Nmc_Auth_Exception'); interface Nmc_Auth_Interface diff --git a/library/Nmc/Auth/Ldap.php b/library/Nmc/Auth/Ldap.php index 990280c..0a56497 100644 --- a/library/Nmc/Auth/Ldap.php +++ b/library/Nmc/Auth/Ldap.php @@ -1,6 +1,5 @@ <?php -require_once 'Zend.php'; require_once 'Nmc/Auth/Interface.php'; class Nmc_Auth_Ldap implements Nmc_Auth_Interface @@ -26,5 +25,3 @@ class Nmc_Auth_Ldap implements Nmc_Auth_Interface return true; } } - -?> \ No newline at end of file diff --git a/library/Nmc/Auth/Multi.php b/library/Nmc/Auth/Multi.php index c1171f9..513991d 100644 --- a/library/Nmc/Auth/Multi.php +++ b/library/Nmc/Auth/Multi.php @@ -1,6 +1,5 @@ <?php -require_once 'Zend.php'; require_once 'Nmc/Auth/Interface.php'; class Nmc_Auth_Multi implements Nmc_Auth_Interface @@ -55,5 +54,3 @@ class Nmc_Auth_Multi implements Nmc_Auth_Interface return true; } } - -?> \ No newline at end of file diff --git a/library/Nmc/Auth/Mysql.php b/library/Nmc/Auth/Mysql.php index 1a0b21a..3d84c31 100644 --- a/library/Nmc/Auth/Mysql.php +++ b/library/Nmc/Auth/Mysql.php @@ -1,6 +1,5 @@ <?php -require_once('Zend.php'); require_once 'Nmc/Auth/Interface.php'; class Nmc_Auth_Mysql implements Nmc_Auth_Interface @@ -15,12 +14,12 @@ class Nmc_Auth_Mysql implements Nmc_Auth_Interface public function login( $user_name, $password ) { $db = $this->table->getAdapter(); - $where = $db->quoteInto('user_name=?', $user_name) + $where = $db->quoteInto('userName=?', $user_name) . ' AND ' . $db->quoteInto('password=?', md5($password)); $data = $this->table->fetchAll($where); if( count( $data->toArray() ) == 0 ) { - throw new Nmc_Auth_Exception( 'MySQL: user_name or password incorrect.'); + throw new Nmc_Auth_Exception( 'MySQL: userName or password incorrect.'); } return true; diff --git a/library/Nmc/Db/RowManager.php b/library/Nmc/Db/RowManager.php index a07d06f..e9117c5 100644 --- a/library/Nmc/Db/RowManager.php +++ b/library/Nmc/Db/RowManager.php @@ -11,7 +11,6 @@ * @since File available since Release 0.0.1 */ -require_once('Zend.php'); require_once 'Nmc/SingletonInterface.php'; /** diff --git a/library/Nmc/Db/SessionHandler.php b/library/Nmc/Db/SessionHandler.php index 46591e0..9fe1c8b 100644 --- a/library/Nmc/Db/SessionHandler.php +++ b/library/Nmc/Db/SessionHandler.php @@ -12,7 +12,6 @@ * @since File available since Release 0.0.1 */ -require_once('Zend.php'); /** * Nmc_Db_SessionHandler - Use a Db Table as your session handler diff --git a/library/Nmc/Db/Table.php b/library/Nmc/Db/Table.php index 4821315..aaef856 100644 --- a/library/Nmc/Db/Table.php +++ b/library/Nmc/Db/Table.php @@ -1,7 +1,5 @@ <?php -require_once('Zend.php'); - require_once 'Nmc/SingletonInterface.php'; Zend_Loader::loadClass('Zend_Db_Table'); diff --git a/library/Nmc/Db/Table/AclRecord.php b/library/Nmc/Db/Table/AclRecord.php index a868f96..834ee03 100644 --- a/library/Nmc/Db/Table/AclRecord.php +++ b/library/Nmc/Db/Table/AclRecord.php @@ -1,6 +1,5 @@ <?php -require_once('Zend.php'); Zend_Loader::loadClass('Zend_Db_Table_Row'); abstract class Nmc_Db_Table_AclRow extends Zend_Db_Table_Row diff --git a/library/Nmc/Db/Table/DataType/Date.php b/library/Nmc/Db/Table/DataType/Date.php new file mode 100644 index 0000000..efa5338 --- /dev/null +++ b/library/Nmc/Db/Table/DataType/Date.php @@ -0,0 +1,46 @@ +<?php + +require_once 'Nmc/Db/Table/DataType/Interface.php'; + +class Nmc_Db_Table_DataType_Date implements Nmc_Db_Table_DataType_Interface +{ + /** + * Stores the date object + * + * @var Zend_Date + */ + protected $_dateObject = null; + + public function setColumnData($columnData) + { + if ($columnData) { + $this->_dateObject = new Zend_Date($columnData); + } + } + + public function setObject($object) + { + if (is_null($object)) { + $this->_dateObject = null; + return; + } + if(!$object instanceof Zend_Date) { + throw new Nmc_Exception('Attempt to set wrong data type'); + } + + $this->_dateObject = $object; + } + + public function getColumnData() + { + if ($this->_dateObject) { + return $this->_dateObject->getTimestamp(); + } + return null; + } + + public function getObject() + { + return $this->_dateObject; + } +} \ No newline at end of file diff --git a/library/Nmc/Db/Table/DataType/Interface.php b/library/Nmc/Db/Table/DataType/Interface.php new file mode 100644 index 0000000..98e0c54 --- /dev/null +++ b/library/Nmc/Db/Table/DataType/Interface.php @@ -0,0 +1,9 @@ +<?php + +interface Nmc_Db_Table_DataType_Interface +{ + public function setColumnData($columnData); + public function setObject($object); + public function getColumnData(); + public function getObject(); +} diff --git a/library/Nmc/Db/Table/Relation/Abstract.php b/library/Nmc/Db/Table/Relation/Abstract.php index 2268330..43f74cb 100644 --- a/library/Nmc/Db/Table/Relation/Abstract.php +++ b/library/Nmc/Db/Table/Relation/Abstract.php @@ -1,7 +1,5 @@ <?php -require_once('Zend.php'); - require_once 'Nmc/Db/Table/Relation/Interface.php'; /** diff --git a/library/Nmc/Db/Table/Relation/Extend.php b/library/Nmc/Db/Table/Relation/Extend.php index f961427..65955c5 100644 --- a/library/Nmc/Db/Table/Relation/Extend.php +++ b/library/Nmc/Db/Table/Relation/Extend.php @@ -12,8 +12,6 @@ * @since File available since Release 0.0.1 */ -require_once('Zend.php'); - /** * Nmc_Db_Table_Relation_Extend - A one to one relation where one table extends another * diff --git a/library/Nmc/Db/Table/Relation/HasMany.php b/library/Nmc/Db/Table/Relation/HasMany.php index 45873ad..f8c9765 100644 --- a/library/Nmc/Db/Table/Relation/HasMany.php +++ b/library/Nmc/Db/Table/Relation/HasMany.php @@ -12,8 +12,6 @@ * @since File available since Release 0.0.1 */ -require_once('Zend.php'); - /** * Nmc_Db_Table_Relation_HasMany - A relation where one row is the parent of many others * @@ -45,6 +43,17 @@ class Nmc_Db_Table_Relation_HasMany extends Nmc_Db_Table_Relation_Abstract protected $_attributeName; + protected $_saveChildRows = true; + + /** + * The linking table, if one is used + * + * @var Nmc_Db_Table + */ + protected $_linkingTable; + + protected $_linkingForeignKeyName; + /** * The set of rows belonging to this relation * @@ -71,11 +80,43 @@ class Nmc_Db_Table_Relation_HasMany extends Nmc_Db_Table_Relation_Abstract $this->_attributeName = $attributeName; } + /** + * If the rows are related via a linking table, use this function to tell + * the parent table how to use the linking table. + * + * @param Nmc_Db_Table $linkingTable + * @param unknown_type $foreignKeyName + */ + public function setLinkingTable(Nmc_Db_Table $linkingTable, $foreignKeyName) + { + $this->_linkingTable = $linkingTable; + $this->_linkingForeignKeyName = $foreignKeyName; + } + + public function setSaveChildRows($value = true) + { + $this->_saveChildRows = $value; + } + public function register() { $db = $this->_childTable->getAdapter(); - $where = $db->quoteInto($this->_foreignKeyName . ' = ?', $this->_row->getPrimaryKey()); - $this->_rowset = $this->_childTable->fetchAll($where); + + if ($this->_linkingTable) { + $where = $db->quoteInto($this->_foreignKeyName . ' = ?', $this->_row->getPrimaryKey()); + $linkingRowset = $this->_linkingTable->fetchAll($where); + + $keys = array(); + foreach($linkingRowset as $row) { + $keys[] = $row->{$this->_linkingForeignKeyName}; + } + + $this->_rowset = $this->_childTable->find($keys); + + } else { + $where = $db->quoteInto($this->_foreignKeyName . ' = ?', $this->_row->getPrimaryKey()); + $this->_rowset = $this->_childTable->fetchAll($where); + } } public function onPostGet($name) @@ -102,58 +143,67 @@ class Nmc_Db_Table_Relation_HasMany extends Nmc_Db_Table_Relation_Abstract public function onPostSave() { - $selectedRows = $this->_rowset; - $where = $this->_childTable->getAdapter()->quoteInto( - $this->_foreignKeyName . ' = ?', $this->_row->getPrimaryKey() - ); - $currentRows = $this->_childTable->fetchAll($where); - - $removedRows = $currentRows->getRowsNotInCommonWith($selectedRows); - - foreach($removedRows as $removedRow) { - $removedRow->delete(); - } - - foreach($selectedRows as $selectedRow) { - $foreignKeyName = $this->_foreignKeyName; - $selectedRow->$foreignKeyName = $this->_row->getPrimaryKey(); - $selectedRow->save(); - } + if (!$this->_saveChildRows) { + return; + } + $db = $this->_childTable->getAdapter(); + if ($this->_linkingTable) { + $keys = array(-1); + foreach($this->_rowset as $row) { + $keys[] = $row->getPrimaryKey(); + } + $where = array(); + $where[] = $db->quoteInto($this->_foreignKeyName . ' = ?', $this->_row->getPrimaryKey()); + $where[] = $db->quoteInto($this->_linkingForeignKeyName . ' IN(?)', $keys); + $where = implode(' AND ', $where); + $selectedRows = $this->_linkingTable->fetchAll($where); + $where = $db->quoteInto( + $this->_foreignKeyName . ' = ?', $this->_row->getPrimaryKey() + ); + $currentRows = $this->_linkingTable->fetchAll($where); + $removedRows = $currentRows->getRowsNotInCommonWith($selectedRows); + foreach ($removedRows as $removedRow) { + $removedRow->delete(); + } + foreach ($this->_rowset as $row) { + $row->save(); + + $where = array(); + $where[] = $db->quoteInto($this->_foreignKeyName . ' = ?', $this->_row->getPrimaryKey()); + $where[] = $db->quoteInto($this->_linkingForeignKeyName . ' = ?', $row->getPrimaryKey()); + $where = implode(' AND ', $where); + $linkingRow = $this->_linkingTable->fetchAll($where); + if ($linkingRow->count() == 0) { + $linkingRow = $this->_linkingTable->fetchNew(); + $linkingRow->{$this->_foreignKeyName} = $this->_row->getPrimaryKey(); + $linkingRow->{$this->_linkingForeignKeyName} = $row->getPrimaryKey(); + $linkingRow->save(); + } + } + } else { + $selectedRows = $this->_rowset; + $where = $db->quoteInto( + $this->_foreignKeyName . ' = ?', $this->_row->getPrimaryKey() + ); + $currentRows = $this->_childTable->fetchAll($where); - /* - $newRows = array(); - foreach($this->_rowset as $row) { - $row->{$this->_foreignKeyName} = $this->_row->getPrimaryKey(); - $newRows[] = $row; - } + $removedRows = $currentRows->getRowsNotInCommonWith($selectedRows); - $where = $this->_childTable->getAdapter()->quoteInto($this->_foreignKeyName . ' = ?', $this->_row->getPrimaryKey()); - $currentRows = $this->_childTable->fetchAll($where); - - foreach($currentRows as $currentRow) { - $keepRow = false; - foreach($newRows as $key => $newRow) { - if($currentRow->equalTo($newRow)) { - $keepRow = true; - if($currentRow !== $newRow) { - unset($newRows[$key]); - } - } - } - if(!$keepRow) { - $currentRow->delete(); + foreach($removedRows as $removedRow) { + $removedRow->delete(); } - } - foreach($newRows as $newRow) { - $newRow->save(); - } - */ + foreach($selectedRows as $selectedRow) { + $foreignKeyName = $this->_foreignKeyName; + $selectedRow->$foreignKeyName = $this->_row->getPrimaryKey(); + $selectedRow->save(); + } + } } public function onPostClone(Nmc_Db_Table_Row $newParentRow) diff --git a/library/Nmc/Db/Table/Relation/HasOne.php b/library/Nmc/Db/Table/Relation/HasOne.php index 8fd2145..bf2110c 100644 --- a/library/Nmc/Db/Table/Relation/HasOne.php +++ b/library/Nmc/Db/Table/Relation/HasOne.php @@ -12,8 +12,6 @@ * @since File available since Release 0.0.1 */ -require_once('Zend.php'); - /** * Nmc_Db_Table_Relation_HasOne - A relation where one row is the parent of a single other row * diff --git a/library/Nmc/Db/Table/Row.php b/library/Nmc/Db/Table/Row.php index 86422a8..66b5575 100644 --- a/library/Nmc/Db/Table/Row.php +++ b/library/Nmc/Db/Table/Row.php @@ -37,6 +37,8 @@ class Nmc_Db_Table_Row extends Zend_Db_Table_Row protected $_relations = array(); + protected $_dataTypes = array(); + protected $_uuid; public function __construct($config = array()) @@ -181,6 +183,9 @@ class Nmc_Db_Table_Row extends Zend_Db_Table_Row protected function _get($name) { + if (array_key_exists($name, $this->_dataTypes)) { + return $this->_dataTypes[$name]->getObject(); + } return parent::__get($name); } @@ -219,6 +224,9 @@ class Nmc_Db_Table_Row extends Zend_Db_Table_Row protected function _set($name, $value) { + if (array_key_exists($name, $this->_dataTypes)) { + return $this->_dataTypes[$name]->setObject($value); + } return parent::__set($name, $value); } @@ -275,6 +283,9 @@ class Nmc_Db_Table_Row extends Zend_Db_Table_Row protected function _save() { + foreach ($this->_dataTypes as $columnName => $columnType) { + $this->_data[$columnName] = $columnType->getColumnData(); + } parent::save(); } @@ -289,6 +300,15 @@ class Nmc_Db_Table_Row extends Zend_Db_Table_Row $this->_relations[] = $relation; } + protected function _registerColumnDataType($columnName, Nmc_Db_Table_DataType_Interface $dataType) + { + if(!array_key_exists($columnName, $this->_data)) { + throw new Nmc_Exception('Column does not exist'); + } + $this->_dataTypes[$columnName] = $dataType; + $dataType->setColumnData($this->_data[$columnName]); + } + /** * Duplicates record in database and sets current record to * the duplicated record. diff --git a/library/Nmc/EqualToInterface.php b/library/Nmc/EqualToInterface.php index f802ed5..b1d19a0 100644 --- a/library/Nmc/EqualToInterface.php +++ b/library/Nmc/EqualToInterface.php @@ -11,8 +11,6 @@ * @since File available since Release 0.0.1 */ -require_once('Zend.php'); - /** * Objects implementing the equalTo interface supply the equalTo() function * This function is used to do custom equality comparisons. @@ -29,5 +27,3 @@ interface Nmc_EqualToInterface { public function equalTo($object); } - -?> \ No newline at end of file diff --git a/library/Nmc/Image.php b/library/Nmc/Image.php index c2d1346..4aba73c 100644 --- a/library/Nmc/Image.php +++ b/library/Nmc/Image.php @@ -1,6 +1,5 @@ <?php -require_once('Zend.php'); Zend_Loader::loadClass('Zend_Filter'); Zend_Loader::loadClass('Nmc_Math_OrderedPair'); Zend_Loader::loadClass('Nmc_Image_Exception'); diff --git a/library/Nmc/Image/Abstract.php b/library/Nmc/Image/Abstract.php index 5caab74..a35d5d7 100644 --- a/library/Nmc/Image/Abstract.php +++ b/library/Nmc/Image/Abstract.php @@ -1,6 +1,5 @@ <?php -require_once('Zend.php'); Zend_Loader::loadClass('Zend_Filter'); Zend_Loader::loadClass('Nmc_Math_OrderedPair'); Zend_Loader::loadClass('Nmc_Image_Exception'); diff --git a/library/Nmc/Image/Color.php b/library/Nmc/Image/Color.php index 31da8e1..9812ab4 100644 --- a/library/Nmc/Image/Color.php +++ b/library/Nmc/Image/Color.php @@ -11,8 +11,6 @@ * @since File available since Release 0.0.1 */ -require_once('Zend.php'); - /** * Color Class * diff --git a/library/Nmc/Image/Jpeg.php b/library/Nmc/Image/Jpeg.php index 2773b9a..8c9212f 100644 --- a/library/Nmc/Image/Jpeg.php +++ b/library/Nmc/Image/Jpeg.php @@ -12,7 +12,6 @@ * @since File available since Release 0.0.1 */ -require_once('Zend.php'); Zend_Loader::loadClass('Nmc_Image'); /** diff --git a/library/Nmc/Image/Png.php b/library/Nmc/Image/Png.php index e548d63..cb1e963 100644 --- a/library/Nmc/Image/Png.php +++ b/library/Nmc/Image/Png.php @@ -12,7 +12,6 @@ * @since File available since Release 0.0.1 */ -require_once('Zend.php'); Zend_Loader::loadClass('Nmc_Image'); /** diff --git a/library/Nmc/Ldap.php b/library/Nmc/Ldap.php index b616eee..37f1481 100644 --- a/library/Nmc/Ldap.php +++ b/library/Nmc/Ldap.php @@ -11,8 +11,6 @@ * @since File available since Release 0.0.1 */ -require_once('Zend.php'); - /** * LDAP Class * diff --git a/library/Nmc/Ldap/Exception.php b/library/Nmc/Ldap/Exception.php index 1e0ea62..23ef904 100644 --- a/library/Nmc/Ldap/Exception.php +++ b/library/Nmc/Ldap/Exception.php @@ -11,8 +11,6 @@ * @since File available since Release 0.0.1 */ -require_once('Zend.php'); - /** * NMC LDAP Exception * diff --git a/library/Nmc/Math/OrderedPair.php b/library/Nmc/Math/OrderedPair.php index 6d1454b..4270f03 100644 --- a/library/Nmc/Math/OrderedPair.php +++ b/library/Nmc/Math/OrderedPair.php @@ -11,7 +11,6 @@ * @since File available since Release 0.0.1 */ -require_once('Zend.php'); Zend_Loader::loadClass('Zend_Filter'); Zend_Loader::loadClass('Nmc_Math_Exception'); diff --git a/library/Nmc/Model/AclGroups.php b/library/Nmc/Model/AclGroups.php index 85c5f73..eef0fc1 100644 --- a/library/Nmc/Model/AclGroups.php +++ b/library/Nmc/Model/AclGroups.php @@ -1,11 +1,8 @@ <?php -require_once('Zend.php'); Zend_Loader::loadClass('Zend_Db_Table'); class Nmc_Model_AclGroups extends Zend_Db_Table { } - -?> \ No newline at end of file diff --git a/library/Nmc/Model/AclOthers.php b/library/Nmc/Model/AclOthers.php index 8bb7666..3af268d 100644 --- a/library/Nmc/Model/AclOthers.php +++ b/library/Nmc/Model/AclOthers.php @@ -1,6 +1,5 @@ <?php -require_once('Zend.php'); Zend_Loader::loadClass('Zend_Db_Table'); class Nmc_Model_AclOthers extends Zend_Db_Table diff --git a/library/Nmc/Model/AclUsers.php b/library/Nmc/Model/AclUsers.php index 4dd64f5..fdfaadc 100644 --- a/library/Nmc/Model/AclUsers.php +++ b/library/Nmc/Model/AclUsers.php @@ -1,6 +1,5 @@ <?php -require_once('Zend.php'); Zend_Loader::loadClass('Zend_Db_Table'); class Nmc_Model_AclUsers extends Zend_Db_Table diff --git a/library/Nmc/Model/UserInterface.php b/library/Nmc/Model/UserInterface.php index 5be4120..2a1761b 100644 --- a/library/Nmc/Model/UserInterface.php +++ b/library/Nmc/Model/UserInterface.php @@ -11,8 +11,6 @@ * @since File available since Release 0.0.1 */ -require_once('Zend.php'); - interface Nmc_Model_UserInterface { public function getId(); diff --git a/library/Nmc/Semaphore.php b/library/Nmc/Semaphore.php index bcb6270..0f90a23 100644 --- a/library/Nmc/Semaphore.php +++ b/library/Nmc/Semaphore.php @@ -11,8 +11,6 @@ * @since File available since Release 0.0.1 */ -require_once('Zend.php'); - /** * Nmc_Semaphore * diff --git a/library/Nmc/User.php b/library/Nmc/User.php index a84a0bc..e981fda 100644 --- a/library/Nmc/User.php +++ b/library/Nmc/User.php @@ -11,7 +11,6 @@ * @since File available since Release 0.0.1 */ -require_once('Zend.php'); require_once 'Nmc/Model/UserInterface.php'; /** diff --git a/library/Nmc/View.php b/library/Nmc/View.php index 493767c..b90daf1 100644 --- a/library/Nmc/View.php +++ b/library/Nmc/View.php @@ -11,8 +11,6 @@ * @since File available since Release 0.0.1 */ -require_once('Zend.php'); - /** * NMC_View * @@ -39,6 +37,10 @@ class Nmc_View extends Zend_View { function __construct($config = array()) { parent::__construct($config); + $this->addHelperPath(FRAMEWORK_PATH . DIRECTORY_SEPARATOR . 'library' + . DIRECTORY_SEPARATOR . 'Nmc' + . DIRECTORY_SEPARATOR . 'View' + . DIRECTORY_SEPARATOR . 'Helper', 'Nmc_View_Helper_'); $this->addScriptPath(APPLICATION_PATH . DIRECTORY_SEPARATOR . 'views'); $this->css_files = array(); $this->css_files[] = '/css/index.css'; diff --git a/library/Nmc/View/Helper/FormSelectDay.php b/library/Nmc/View/Helper/FormSelectDay.php new file mode 100644 index 0000000..fa55c5f --- /dev/null +++ b/library/Nmc/View/Helper/FormSelectDay.php @@ -0,0 +1,15 @@ +<?php + +class Nmc_View_Helper_FormSelectDay extends Zend_View_Helper_FormSelect +{ + public function formSelectDay($name, $value = null, $attribs = null, $listsep = "<br />\n") + { + $options = array(); + $options[-1] = '--Day--'; + for ($i = 1; $i <= 31; $i++) { + $options[$i] = $i; + } + + return parent::formSelect($name, $value, $attribs, $options, $listsep); + } +} diff --git a/library/Nmc/View/Helper/FormSelectMonth.php b/library/Nmc/View/Helper/FormSelectMonth.php new file mode 100644 index 0000000..ee7765c --- /dev/null +++ b/library/Nmc/View/Helper/FormSelectMonth.php @@ -0,0 +1,25 @@ +<?php + +class Nmc_View_Helper_FormSelectMonth extends Zend_View_Helper_FormSelect +{ + public function formSelectMonth($name, $value = null, $attribs = null, $listsep = "<br />\n") + { + $options = array( + -1 => '--Month--', + 1 => 'January', + 2 => 'February', + 3 => 'March', + 4 => 'April', + 5 => 'May', + 6 => 'June', + 7 => 'July', + 8 => 'August', + 9 => 'September', + 10 => 'October', + 11 => 'November', + 12 => 'December' + ); + + return parent::formSelect($name, $value, $attribs, $options, $listsep); + } +} diff --git a/library/Nmc/View/Helper/FormSelectYear.php b/library/Nmc/View/Helper/FormSelectYear.php new file mode 100644 index 0000000..ccbb495 --- /dev/null +++ b/library/Nmc/View/Helper/FormSelectYear.php @@ -0,0 +1,15 @@ +<?php + +class Nmc_View_Helper_FormSelectYear extends Zend_View_Helper_FormSelect +{ + public function formSelectYear($name, $value = null, $attribs = null, $listsep = "<br />\n") + { + $options = array(); + $options[-1] = '--Year--'; + for ($i = 2006; $i <= date('Y'); $i++) { + $options[$i] = $i; + } + + return parent::formSelect($name, $value, $attribs, $options, $listsep); + } +} diff --git a/library/Nmc/View/Oss.php b/library/Nmc/View/Oss.php index b9c561f..0c7082a 100644 --- a/library/Nmc/View/Oss.php +++ b/library/Nmc/View/Oss.php @@ -1,7 +1,5 @@ <?php -require_once('Zend.php'); - class Nmc_View_Oss { diff --git a/library/Nmc/View/Unl.php b/library/Nmc/View/Unl.php index 8e3bd7c..0d75377 100644 --- a/library/Nmc/View/Unl.php +++ b/library/Nmc/View/Unl.php @@ -1,6 +1,5 @@ <?php -require_once('Zend.php'); Zend_Loader::loadClass('Zend_View'); class Nmc_View_Unl extends Zend_View -- GitLab