summaryrefslogtreecommitdiff
path: root/framework/Data/ActiveRecord/Scaffold
diff options
context:
space:
mode:
Diffstat (limited to 'framework/Data/ActiveRecord/Scaffold')
-rw-r--r--framework/Data/ActiveRecord/Scaffold/InputBuilder/TIbmScaffoldInput.php101
-rw-r--r--framework/Data/ActiveRecord/Scaffold/InputBuilder/TMssqlScaffoldInput.php99
-rw-r--r--framework/Data/ActiveRecord/Scaffold/InputBuilder/TMysqlScaffoldInput.php159
-rw-r--r--framework/Data/ActiveRecord/Scaffold/InputBuilder/TPgsqlScaffoldInput.php101
-rw-r--r--framework/Data/ActiveRecord/Scaffold/InputBuilder/TScaffoldInputBase.php199
-rw-r--r--framework/Data/ActiveRecord/Scaffold/InputBuilder/TScaffoldInputCommon.php607
-rw-r--r--framework/Data/ActiveRecord/Scaffold/InputBuilder/TSqliteScaffoldInput.php191
7 files changed, 750 insertions, 707 deletions
diff --git a/framework/Data/ActiveRecord/Scaffold/InputBuilder/TIbmScaffoldInput.php b/framework/Data/ActiveRecord/Scaffold/InputBuilder/TIbmScaffoldInput.php
index 2c315468..f0e2b215 100644
--- a/framework/Data/ActiveRecord/Scaffold/InputBuilder/TIbmScaffoldInput.php
+++ b/framework/Data/ActiveRecord/Scaffold/InputBuilder/TIbmScaffoldInput.php
@@ -1,51 +1,52 @@
-<?php
-/**
- * TIbmScaffoldInput class file.
- *
- * @author Cesar Ramos <cramos[at]gmail[dot]com>
- * @link http://www.pradosoft.com/
- * @copyright Copyright &copy; 2005-2007 PradoSoft
- * @license http://www.pradosoft.com/license/
- */
-Prado::using('System.Data.ActiveRecord.Scaffold.InputBuilder.TScaffoldInputCommon');
-
-class TIbmScaffoldInput extends TScaffoldInputCommon
-{
- protected function createControl($container, $column, $record)
- {
- switch(strtolower($column->getDbType()))
- {
- case 'date':
- return $this->createDateControl($container, $column, $record);
- case 'time':
- return $this->createTimeControl($container, $column, $record);
- case 'timestamp':
- return $this->createDateTimeControl($container, $column, $record);
- case 'smallint': case 'integer': case 'bigint':
- return $this->createIntegerControl($container, $column, $record);
- case 'decimal': case 'numeric': case 'real': case 'float': case 'double':
- return $this->createFloatControl($container, $column, $record);
- case 'char': case 'varchar':
- return $this->createMultiLineControl($container, $column, $record);
- default:
- return $this->createDefaultControl($container,$column, $record);
- }
- }
-
- protected function getControlValue($container, $column, $record)
- {
- switch(strtolower($column->getDbType()))
- {
- case 'date':
- return $container->findControl(self::DEFAULT_ID)->getDate();
- case 'time':
- return $this->getTimeValue($container, $column, $record);
- case 'timestamp':
- return $this->getDateTimeValue($container, $column, $record);
- default:
- return $this->getDefaultControlValue($container,$column, $record);
- }
- }
-}
-
+<?php
+/**
+ * TIbmScaffoldInput class file.
+ *
+ * @author Cesar Ramos <cramos[at]gmail[dot]com>
+ * @link http://www.pradosoft.com/
+ * @copyright Copyright &copy; 2005-2007 PradoSoft
+ * @license http://www.pradosoft.com/license/
+ * @package System.Data.ActiveReecord.Scaffold.InputBuilder
+ */
+Prado::using('System.Data.ActiveRecord.Scaffold.InputBuilder.TScaffoldInputCommon');
+
+class TIbmScaffoldInput extends TScaffoldInputCommon
+{
+ protected function createControl($container, $column, $record)
+ {
+ switch(strtolower($column->getDbType()))
+ {
+ case 'date':
+ return $this->createDateControl($container, $column, $record);
+ case 'time':
+ return $this->createTimeControl($container, $column, $record);
+ case 'timestamp':
+ return $this->createDateTimeControl($container, $column, $record);
+ case 'smallint': case 'integer': case 'bigint':
+ return $this->createIntegerControl($container, $column, $record);
+ case 'decimal': case 'numeric': case 'real': case 'float': case 'double':
+ return $this->createFloatControl($container, $column, $record);
+ case 'char': case 'varchar':
+ return $this->createMultiLineControl($container, $column, $record);
+ default:
+ return $this->createDefaultControl($container,$column, $record);
+ }
+ }
+
+ protected function getControlValue($container, $column, $record)
+ {
+ switch(strtolower($column->getDbType()))
+ {
+ case 'date':
+ return $container->findControl(self::DEFAULT_ID)->getDate();
+ case 'time':
+ return $this->getTimeValue($container, $column, $record);
+ case 'timestamp':
+ return $this->getDateTimeValue($container, $column, $record);
+ default:
+ return $this->getDefaultControlValue($container,$column, $record);
+ }
+ }
+}
+
?> \ No newline at end of file
diff --git a/framework/Data/ActiveRecord/Scaffold/InputBuilder/TMssqlScaffoldInput.php b/framework/Data/ActiveRecord/Scaffold/InputBuilder/TMssqlScaffoldInput.php
index 2f06368e..297b76f1 100644
--- a/framework/Data/ActiveRecord/Scaffold/InputBuilder/TMssqlScaffoldInput.php
+++ b/framework/Data/ActiveRecord/Scaffold/InputBuilder/TMssqlScaffoldInput.php
@@ -1,47 +1,54 @@
-<?php
-
-Prado::using('System.Data.ActiveRecord.Scaffold.InputBuilder.TScaffoldInputCommon');
-
-class TMssqlScaffoldInput extends TScaffoldInputCommon
-{
- protected function createControl($container, $column, $record)
- {
- switch(strtolower($column->getDbType()))
- {
- case 'bit':
- return $this->createBooleanControl($container, $column, $record);
- case 'text':
- return $this->createMultiLineControl($container, $column, $record);
- case 'smallint': case 'int': case 'bigint': case 'tinyint':
- return $this->createIntegerControl($container, $column, $record);
- case 'decimal': case 'float': case 'money': case 'numeric': case 'real': case 'smallmoney':
- return $this->createFloatControl($container, $column, $record);
- case 'datetime': case 'smalldatetime':
- return $this->createDateTimeControl($container, $column, $record);
- default:
- $control = $this->createDefaultControl($container,$column, $record);
- if($column->getIsExcluded())
- $control->setEnabled(false);
- return $control;
- }
- }
-
- protected function getControlValue($container, $column, $record)
- {
- switch(strtolower($column->getDbType()))
- {
- case 'boolean':
- return $container->findControl(self::DEFAULT_ID)->getChecked();
- case 'datetime': case 'smalldatetime':
- return $this->getDateTimeValue($container,$column, $record);
- default:
- $value = $this->getDefaultControlValue($container,$column, $record);
- if(trim($value)==='' && $column->getAllowNull())
- return null;
- else
- return $value;
- }
- }
-}
-
+<?php
+/**
+ * TMssqlScaffoldInput class file.
+ *
+ * @link http://www.pradosoft.com/
+ * @copyright Copyright &copy; 2005-2007 PradoSoft
+ * @license http://www.pradosoft.com/license/
+ * @package System.Data.ActiveReecord.Scaffold.InputBuilder
+ */
+Prado::using('System.Data.ActiveRecord.Scaffold.InputBuilder.TScaffoldInputCommon');
+
+class TMssqlScaffoldInput extends TScaffoldInputCommon
+{
+ protected function createControl($container, $column, $record)
+ {
+ switch(strtolower($column->getDbType()))
+ {
+ case 'bit':
+ return $this->createBooleanControl($container, $column, $record);
+ case 'text':
+ return $this->createMultiLineControl($container, $column, $record);
+ case 'smallint': case 'int': case 'bigint': case 'tinyint':
+ return $this->createIntegerControl($container, $column, $record);
+ case 'decimal': case 'float': case 'money': case 'numeric': case 'real': case 'smallmoney':
+ return $this->createFloatControl($container, $column, $record);
+ case 'datetime': case 'smalldatetime':
+ return $this->createDateTimeControl($container, $column, $record);
+ default:
+ $control = $this->createDefaultControl($container,$column, $record);
+ if($column->getIsExcluded())
+ $control->setEnabled(false);
+ return $control;
+ }
+ }
+
+ protected function getControlValue($container, $column, $record)
+ {
+ switch(strtolower($column->getDbType()))
+ {
+ case 'boolean':
+ return $container->findControl(self::DEFAULT_ID)->getChecked();
+ case 'datetime': case 'smalldatetime':
+ return $this->getDateTimeValue($container,$column, $record);
+ default:
+ $value = $this->getDefaultControlValue($container,$column, $record);
+ if(trim($value)==='' && $column->getAllowNull())
+ return null;
+ else
+ return $value;
+ }
+ }
+}
+
?> \ No newline at end of file
diff --git a/framework/Data/ActiveRecord/Scaffold/InputBuilder/TMysqlScaffoldInput.php b/framework/Data/ActiveRecord/Scaffold/InputBuilder/TMysqlScaffoldInput.php
index 42f8cead..ceae6c38 100644
--- a/framework/Data/ActiveRecord/Scaffold/InputBuilder/TMysqlScaffoldInput.php
+++ b/framework/Data/ActiveRecord/Scaffold/InputBuilder/TMysqlScaffoldInput.php
@@ -1,77 +1,84 @@
-<?php
-
-Prado::using('System.Data.ActiveRecord.Scaffold.InputBuilder.TScaffoldInputCommon');
-
-class TMysqlScaffoldInput extends TScaffoldInputCommon
-{
- protected function createControl($container, $column, $record)
- {
- $dbtype = trim(str_replace(array('unsigned', 'zerofill'),array('','',),strtolower($column->getDbType())));
- switch($dbtype)
- {
- case 'date':
- return $this->createDateControl($container, $column, $record);
- case 'blob': case 'tinyblob': case 'mediumblob': case 'longblob':
- case 'text': case 'tinytext': case 'mediumtext': case 'longtext':
- return $this->createMultiLineControl($container, $column, $record);
- case 'year':
- return $this->createYearControl($container, $column, $record);
- case 'int': case 'integer': case 'tinyint': case 'smallint': case 'mediumint': case 'bigint':
- return $this->createIntegerControl($container, $column, $record);
- case 'decimal': case 'double': case 'float':
- return $this->createFloatControl($container, $column, $record);
- case 'time' :
- return $this->createTimeControl($container, $column, $record);
- case 'datetime': case 'timestamp':
- return $this->createDateTimeControl($container, $column, $record);
- case 'set':
- return $this->createSetControl($container, $column, $record);
- case 'enum':
- return $this->createEnumControl($container, $column, $record);
- default:
- return $this->createDefaultControl($container, $column, $record);
- }
- }
-
- protected function getControlValue($container, $column, $record)
- {
- $dbtype = trim(str_replace(array('unsigned', 'zerofill'),array('','',),strtolower($column->getDbType())));
- switch($dbtype)
- {
- case 'date':
- return $container->findControl(self::DEFAULT_ID)->getDate();
- case 'year':
- return $container->findControl(self::DEFAULT_ID)->getSelectedValue();
- case 'time':
- return $this->getTimeValue($container, $column, $record);
- case 'datetime': case 'timestamp':
- return $this->getDateTimeValue($container,$column, $record);
- case 'tinyint':
- return $this->getIntBooleanValue($container,$column, $record);
- case 'set':
- return $this->getSetValue($container, $column, $record);
- case 'enum':
- return $this->getEnumValue($container, $column, $record);
- default:
- return $this->getDefaultControlValue($container,$column, $record);
- }
- }
-
- protected function createIntegerControl($container, $column, $record)
- {
- if($column->getColumnSize()==1)
- return $this->createBooleanControl($container, $column, $record);
- else
- parent::createIntegerControl($container, $column, $record);
- }
-
- protected function getIntBooleanValue($container,$column, $record)
- {
- if($column->getColumnSize()==1)
- return (int)$container->findControl(self::DEFAULT_ID)->getChecked();
- else
- return $this->getDefaultControlValue($container,$column, $record);
- }
-}
-
+<?php
+/**
+ * TMysqlScaffoldInput class file.
+ *
+ * @link http://www.pradosoft.com/
+ * @copyright Copyright &copy; 2005-2007 PradoSoft
+ * @license http://www.pradosoft.com/license/
+ * @package System.Data.ActiveReecord.Scaffold.InputBuilder
+ */
+Prado::using('System.Data.ActiveRecord.Scaffold.InputBuilder.TScaffoldInputCommon');
+
+class TMysqlScaffoldInput extends TScaffoldInputCommon
+{
+ protected function createControl($container, $column, $record)
+ {
+ $dbtype = trim(str_replace(array('unsigned', 'zerofill'),array('','',),strtolower($column->getDbType())));
+ switch($dbtype)
+ {
+ case 'date':
+ return $this->createDateControl($container, $column, $record);
+ case 'blob': case 'tinyblob': case 'mediumblob': case 'longblob':
+ case 'text': case 'tinytext': case 'mediumtext': case 'longtext':
+ return $this->createMultiLineControl($container, $column, $record);
+ case 'year':
+ return $this->createYearControl($container, $column, $record);
+ case 'int': case 'integer': case 'tinyint': case 'smallint': case 'mediumint': case 'bigint':
+ return $this->createIntegerControl($container, $column, $record);
+ case 'decimal': case 'double': case 'float':
+ return $this->createFloatControl($container, $column, $record);
+ case 'time' :
+ return $this->createTimeControl($container, $column, $record);
+ case 'datetime': case 'timestamp':
+ return $this->createDateTimeControl($container, $column, $record);
+ case 'set':
+ return $this->createSetControl($container, $column, $record);
+ case 'enum':
+ return $this->createEnumControl($container, $column, $record);
+ default:
+ return $this->createDefaultControl($container, $column, $record);
+ }
+ }
+
+ protected function getControlValue($container, $column, $record)
+ {
+ $dbtype = trim(str_replace(array('unsigned', 'zerofill'),array('','',),strtolower($column->getDbType())));
+ switch($dbtype)
+ {
+ case 'date':
+ return $container->findControl(self::DEFAULT_ID)->getDate();
+ case 'year':
+ return $container->findControl(self::DEFAULT_ID)->getSelectedValue();
+ case 'time':
+ return $this->getTimeValue($container, $column, $record);
+ case 'datetime': case 'timestamp':
+ return $this->getDateTimeValue($container,$column, $record);
+ case 'tinyint':
+ return $this->getIntBooleanValue($container,$column, $record);
+ case 'set':
+ return $this->getSetValue($container, $column, $record);
+ case 'enum':
+ return $this->getEnumValue($container, $column, $record);
+ default:
+ return $this->getDefaultControlValue($container,$column, $record);
+ }
+ }
+
+ protected function createIntegerControl($container, $column, $record)
+ {
+ if($column->getColumnSize()==1)
+ return $this->createBooleanControl($container, $column, $record);
+ else
+ parent::createIntegerControl($container, $column, $record);
+ }
+
+ protected function getIntBooleanValue($container,$column, $record)
+ {
+ if($column->getColumnSize()==1)
+ return (int)$container->findControl(self::DEFAULT_ID)->getChecked();
+ else
+ return $this->getDefaultControlValue($container,$column, $record);
+ }
+}
+
?> \ No newline at end of file
diff --git a/framework/Data/ActiveRecord/Scaffold/InputBuilder/TPgsqlScaffoldInput.php b/framework/Data/ActiveRecord/Scaffold/InputBuilder/TPgsqlScaffoldInput.php
index a024c73b..04a5c334 100644
--- a/framework/Data/ActiveRecord/Scaffold/InputBuilder/TPgsqlScaffoldInput.php
+++ b/framework/Data/ActiveRecord/Scaffold/InputBuilder/TPgsqlScaffoldInput.php
@@ -1,48 +1,55 @@
-<?php
-
-Prado::using('System.Data.ActiveRecord.Scaffold.InputBuilder.TScaffoldInputCommon');
-
-class TPgsqlScaffoldInput extends TScaffoldInputCommon
-{
- protected function createControl($container, $column, $record)
- {
- switch(strtolower($column->getDbType()))
- {
- case 'boolean':
- return $this->createBooleanControl($container, $column, $record);
- case 'date':
- return $this->createDateControl($container, $column, $record);
- case 'text':
- return $this->createMultiLineControl($container, $column, $record);
- case 'smallint': case 'integer': case 'bigint':
- return $this->createIntegerControl($container, $column, $record);
- case 'decimal': case 'numeric': case 'real': case 'double precision':
- return $this->createFloatControl($container, $column, $record);
- case 'time without time zone' :
- return $this->createTimeControl($container, $column, $record);
- case 'timestamp without time zone':
- return $this->createDateTimeControl($container, $column, $record);
- default:
- return $this->createDefaultControl($container,$column, $record);
- }
- }
-
- protected function getControlValue($container, $column, $record)
- {
- switch(strtolower($column->getDbType()))
- {
- case 'boolean':
- return $container->findControl(self::DEFAULT_ID)->getChecked();
- case 'date':
- return $container->findControl(self::DEFAULT_ID)->getDate();
- case 'time without time zone':
- return $this->getTimeValue($container, $column, $record);
- case 'timestamp without time zone':
- return $this->getDateTimeValue($container,$column, $record);
- default:
- return $this->getDefaultControlValue($container,$column, $record);
- }
- }
-}
-
+<?php
+/**
+ * TPgsqlScaffoldInput class file.
+ *
+ * @link http://www.pradosoft.com/
+ * @copyright Copyright &copy; 2005-2007 PradoSoft
+ * @license http://www.pradosoft.com/license/
+ * @package System.Data.ActiveReecord.Scaffold.InputBuilder
+ */
+Prado::using('System.Data.ActiveRecord.Scaffold.InputBuilder.TScaffoldInputCommon');
+
+class TPgsqlScaffoldInput extends TScaffoldInputCommon
+{
+ protected function createControl($container, $column, $record)
+ {
+ switch(strtolower($column->getDbType()))
+ {
+ case 'boolean':
+ return $this->createBooleanControl($container, $column, $record);
+ case 'date':
+ return $this->createDateControl($container, $column, $record);
+ case 'text':
+ return $this->createMultiLineControl($container, $column, $record);
+ case 'smallint': case 'integer': case 'bigint':
+ return $this->createIntegerControl($container, $column, $record);
+ case 'decimal': case 'numeric': case 'real': case 'double precision':
+ return $this->createFloatControl($container, $column, $record);
+ case 'time without time zone' :
+ return $this->createTimeControl($container, $column, $record);
+ case 'timestamp without time zone':
+ return $this->createDateTimeControl($container, $column, $record);
+ default:
+ return $this->createDefaultControl($container,$column, $record);
+ }
+ }
+
+ protected function getControlValue($container, $column, $record)
+ {
+ switch(strtolower($column->getDbType()))
+ {
+ case 'boolean':
+ return $container->findControl(self::DEFAULT_ID)->getChecked();
+ case 'date':
+ return $container->findControl(self::DEFAULT_ID)->getDate();
+ case 'time without time zone':
+ return $this->getTimeValue($container, $column, $record);
+ case 'timestamp without time zone':
+ return $this->getDateTimeValue($container,$column, $record);
+ default:
+ return $this->getDefaultControlValue($container,$column, $record);
+ }
+ }
+}
+
?> \ No newline at end of file
diff --git a/framework/Data/ActiveRecord/Scaffold/InputBuilder/TScaffoldInputBase.php b/framework/Data/ActiveRecord/Scaffold/InputBuilder/TScaffoldInputBase.php
index f9ca9180..1df0910b 100644
--- a/framework/Data/ActiveRecord/Scaffold/InputBuilder/TScaffoldInputBase.php
+++ b/framework/Data/ActiveRecord/Scaffold/InputBuilder/TScaffoldInputBase.php
@@ -1,97 +1,104 @@
-<?php
-
-class TScaffoldInputBase
-{
- const DEFAULT_ID = 'scaffold_input';
- private $_parent;
-
- protected function getParent()
- {
- return $this->_parent;
- }
-
- public static function createInputBuilder($record)
- {
- $record->getDbConnection()->setActive(true); //must be connected before retrieving driver name!
- $driver = $record->getDbConnection()->getDriverName();
- switch(strtolower($driver))
- {
- case 'sqlite': //sqlite 3
- case 'sqlite2': //sqlite 2
- require_once(dirname(__FILE__).'/TSqliteScaffoldInput.php');
- return new TSqliteScaffoldInput($conn);
- case 'mysqli':
- case 'mysql':
- require_once(dirname(__FILE__).'/TMysqlScaffoldInput.php');
- return new TMysqlScaffoldInput($conn);
- case 'pgsql':
- require_once(dirname(__FILE__).'/TPgsqlScaffoldInput.php');
- return new TPgsqlScaffoldInput($conn);
- case 'mssql':
- require_once(dirname(__FILE__).'/TMssqlScaffoldInput.php');
- return new TMssqlScaffoldInput($conn);
- case 'ibm':
- require_once(dirname(__FILE__).'/TIbmScaffoldInput.php');
- return new TIbmScaffoldInput($conn);
- default:
- throw new TConfigurationException(
- 'scaffold_invalid_database_driver',$driver);
- }
- }
-
- public function createScaffoldInput($parent, $item, $column, $record)
- {
- $this->_parent=$parent;
- $item->setCustomData($column->getColumnId());
- $this->createControl($item->_input, $column, $record);
- if($item->_input->findControl(self::DEFAULT_ID))
- $this->createControlLabel($item->_label, $column, $record);
- }
-
- protected function createControlLabel($label, $column, $record)
- {
- $fieldname = ucwords(str_replace('_', ' ', $column->getColumnId())).':';
- $label->setText($fieldname);
- $label->setForControl(self::DEFAULT_ID);
- }
-
- public function loadScaffoldInput($parent, $item, $column, $record)
- {
- $this->_parent=$parent;
- if($this->getIsEnabled($column, $record))
- {
- $prop = $column->getColumnId();
- $record->{$prop} = $this->getControlValue($item->_input, $column, $record);
- }
- }
-
- protected function getIsEnabled($column, $record)
- {
- return !($this->getParent()->getRecordPk() !== null
- && $column->getIsPrimaryKey() || $column->hasSequence());
- }
-
- protected function getRecordPropertyValue($column, $record)
- {
- $value = $record->{$column->getColumnId()};
- if($column->getDefaultValue()!==TDbTableColumn::UNDEFINED_VALUE && $value===null)
- return $column->getDefaultValue();
- else
- return $value;
- }
-
- protected function setRecordPropertyValue($item, $record, $input)
- {
- $record->{$item->getCustomData()} = $input->getText();
- }
-
- protected function createControl($container, $column, $record)
- {
- }
-
- protected function getControlValue($container, $column, $record)
- {
- }
-}
-
+<?php
+/**
+ * TScaffoldInputBase class file.
+ *
+ * @link http://www.pradosoft.com/
+ * @copyright Copyright &copy; 2005-2007 PradoSoft
+ * @license http://www.pradosoft.com/license/
+ * @package System.Data.ActiveReecord.Scaffold.InputBuilder
+ */
+class TScaffoldInputBase
+{
+ const DEFAULT_ID = 'scaffold_input';
+ private $_parent;
+
+ protected function getParent()
+ {
+ return $this->_parent;
+ }
+
+ public static function createInputBuilder($record)
+ {
+ $record->getDbConnection()->setActive(true); //must be connected before retrieving driver name!
+ $driver = $record->getDbConnection()->getDriverName();
+ switch(strtolower($driver))
+ {
+ case 'sqlite': //sqlite 3
+ case 'sqlite2': //sqlite 2
+ require_once(dirname(__FILE__).'/TSqliteScaffoldInput.php');
+ return new TSqliteScaffoldInput($conn);
+ case 'mysqli':
+ case 'mysql':
+ require_once(dirname(__FILE__).'/TMysqlScaffoldInput.php');
+ return new TMysqlScaffoldInput($conn);
+ case 'pgsql':
+ require_once(dirname(__FILE__).'/TPgsqlScaffoldInput.php');
+ return new TPgsqlScaffoldInput($conn);
+ case 'mssql':
+ require_once(dirname(__FILE__).'/TMssqlScaffoldInput.php');
+ return new TMssqlScaffoldInput($conn);
+ case 'ibm':
+ require_once(dirname(__FILE__).'/TIbmScaffoldInput.php');
+ return new TIbmScaffoldInput($conn);
+ default:
+ throw new TConfigurationException(
+ 'scaffold_invalid_database_driver',$driver);
+ }
+ }
+
+ public function createScaffoldInput($parent, $item, $column, $record)
+ {
+ $this->_parent=$parent;
+ $item->setCustomData($column->getColumnId());
+ $this->createControl($item->_input, $column, $record);
+ if($item->_input->findControl(self::DEFAULT_ID))
+ $this->createControlLabel($item->_label, $column, $record);
+ }
+
+ protected function createControlLabel($label, $column, $record)
+ {
+ $fieldname = ucwords(str_replace('_', ' ', $column->getColumnId())).':';
+ $label->setText($fieldname);
+ $label->setForControl(self::DEFAULT_ID);
+ }
+
+ public function loadScaffoldInput($parent, $item, $column, $record)
+ {
+ $this->_parent=$parent;
+ if($this->getIsEnabled($column, $record))
+ {
+ $prop = $column->getColumnId();
+ $record->{$prop} = $this->getControlValue($item->_input, $column, $record);
+ }
+ }
+
+ protected function getIsEnabled($column, $record)
+ {
+ return !($this->getParent()->getRecordPk() !== null
+ && $column->getIsPrimaryKey() || $column->hasSequence());
+ }
+
+ protected function getRecordPropertyValue($column, $record)
+ {
+ $value = $record->{$column->getColumnId()};
+ if($column->getDefaultValue()!==TDbTableColumn::UNDEFINED_VALUE && $value===null)
+ return $column->getDefaultValue();
+ else
+ return $value;
+ }
+
+ protected function setRecordPropertyValue($item, $record, $input)
+ {
+ $record->{$item->getCustomData()} = $input->getText();
+ }
+
+ protected function createControl($container, $column, $record)
+ {
+ }
+
+ protected function getControlValue($container, $column, $record)
+ {
+ }
+}
+
?> \ No newline at end of file
diff --git a/framework/Data/ActiveRecord/Scaffold/InputBuilder/TScaffoldInputCommon.php b/framework/Data/ActiveRecord/Scaffold/InputBuilder/TScaffoldInputCommon.php
index 84c381f0..e36ca954 100644
--- a/framework/Data/ActiveRecord/Scaffold/InputBuilder/TScaffoldInputCommon.php
+++ b/framework/Data/ActiveRecord/Scaffold/InputBuilder/TScaffoldInputCommon.php
@@ -1,301 +1,308 @@
-<?php
-
-class TScaffoldInputCommon extends TScaffoldInputBase
-{
- protected function setDefaultProperty($container, $control, $column, $record)
- {
- $control->setID(self::DEFAULT_ID);
- $control->setEnabled($this->getIsEnabled($column, $record));
- $container->Controls[] = $control;
- }
-
- protected function setNotNullProperty($container, $control, $column, $record)
- {
- $this->setDefaultProperty($container, $control, $column, $record);
- if(!$column->getAllowNull() && !$column->hasSequence())
- $this->createRequiredValidator($container, $column, $record);
- }
-
- protected function createBooleanControl($container, $column, $record)
- {
- $value = $this->getRecordPropertyValue($column, $record);
- $control = new TCheckBox();
- $control->setChecked(TPropertyValue::ensureBoolean($value));
- $control->setCssClass('boolean-checkbox');
- $this->setDefaultProperty($container, $control, $column, $record);
- return $control;
- }
-
- protected function createDefaultControl($container, $column, $record)
- {
- $value = $this->getRecordPropertyValue($column, $record);
- $control = new TTextBox();
- $control->setText($value);
- $control->setCssClass('default-textbox scaffold_input');
- if(($len=$column->getColumnSize())!==null)
- $control->setMaxLength($len);
- $this->setNotNullProperty($container, $control, $column, $record);
- return $control;
- }
-
- protected function getDefaultControlValue($container,$column, $record)
- {
- $control = $container->findControl(self::DEFAULT_ID);
- if($control instanceof TCheckBox)
- return $control->getChecked();
- else if($control instanceof TControl)
- return $control->getText();
- }
-
- protected function createMultiLineControl($container, $column, $record)
- {
- $value = $this->getRecordPropertyValue($column, $record);
- $control = new TTextBox();
- $control->setText($value);
- $control->setTextMode(TTextBoxMode::MultiLine);
- $control->setCssClass('multiline-textbox scaffold_input');
- $this->setNotNullProperty($container, $control, $column, $record);
- return $control;
- }
-
- protected function createYearControl($container, $column, $record)
- {
- $value = $this->getRecordPropertyValue($column, $record);
- $control = new TDropDownList();
- $years = array();
- $current = intval(@date('Y'));
- $from = $current-10; $to=$current+10;
- for($i = $from; $i <= $to; $i++)
- $years[$i] = $i;
- $control->setDataSource($years);
- $control->setSelectedValue(empty($value) ? $current : $value);
- $control->setCssClass('year-dropdown');
- $this->setNotNullProperty($container, $control, $column, $record);
- return $control;
- }
-
- protected function createIntegerControl($container, $column, $record)
- {
- $control = $this->createDefaultControl($container, $column, $record);
- $val = $this->createTypeValidator($container, $column, $record);
- $val->setDataType(TValidationDataType::Integer);
- $val->setErrorMessage('Please entery an integer.');
- return $control;
- }
-
- protected function createFloatControl($container, $column, $record)
- {
- $control = $this->createDefaultControl($container, $column, $record);
- $val = $this->createTypeValidator($container, $column, $record);
- $val->setDataType(TValidationDataType::Float);
- $val->setErrorMessage('Please entery a decimal number.');
- if(($max= $column->getMaxiumNumericConstraint())!==null)
- {
- $val = $this->createRangeValidator($container,$column,$record);
- $val->setDataType(TValidationDataType::Float);
- $val->setMaxValue($max);
- $val->setStrictComparison(true);
- $val->setErrorMessage('Please entery a decimal number strictly less than '.$max.'.');
- }
- return $control;
- }
-
- protected function createRequiredValidator($container, $column, $record)
- {
- $val = new TRequiredFieldValidator();
- $val->setErrorMessage('*');
- $val->setControlCssClass('required-input');
- $val->setCssClass('required');
- $val->setControlToValidate(self::DEFAULT_ID);
- $val->setValidationGroup($this->getParent()->getValidationGroup());
- $val->setDisplay(TValidatorDisplayStyle::Dynamic);
- $container->Controls[] = $val;
- return $val;
- }
-
- protected function createTypeValidator($container, $column, $record)
- {
- $val = new TDataTypeValidator();
- $val->setControlCssClass('required-input2');
- $val->setCssClass('required');
- $val->setControlToValidate(self::DEFAULT_ID);
- $val->setValidationGroup($this->getParent()->getValidationGroup());
- $val->setDisplay(TValidatorDisplayStyle::Dynamic);
- $container->Controls[] = $val;
- return $val;
- }
-
- protected function createRangeValidator($container, $column, $record)
- {
- $val = new TRangeValidator();
- $val->setControlCssClass('required-input3');
- $val->setCssClass('required');
- $val->setControlToValidate(self::DEFAULT_ID);
- $val->setValidationGroup($this->getParent()->getValidationGroup());
- $val->setDisplay(TValidatorDisplayStyle::Dynamic);
- $container->Controls[] = $val;
- return $val;
- }
-
- protected function createTimeControl($container, $column, $record)
- {
- $value = $this->getRecordPropertyValue($column, $record);
- $hours=array();
- for($i=0;$i<24;$i++) $hours[] = str_pad($i,2,'0',STR_PAD_LEFT);
- $mins=array();
- for($i=0;$i<60;$i++) $mins[] = str_pad($i,2,'0',STR_PAD_LEFT);
- $hour = intval(@date('H'));
- $min = intval(@date('i'));
- $sec = intval(@date('s'));
- if(!empty($value))
- {
- $match=array();
- if(preg_match('/(\d+):(\d+):?(\d+)?/', $value, $match))
- {
- $hour = $match[1];
- $min = $match[2];
- if(isset($match[3]))
- $sec=$match[3];
- }
- }
-
- $hcontrol = new TDropDownList();
- $hcontrol->setDataSource($hours);
- $hcontrol->setID(self::DEFAULT_ID);
- $hcontrol->dataBind();
- $hcontrol->setSelectedValue(intval($hour));
- $container->Controls[] = $hcontrol;
- $container->Controls[] = ' : ';
-
- $mcontrol = new TDropDownList();
- $mcontrol->setDataSource($mins);
- $mcontrol->dataBind();
- $mcontrol->setID('scaffold_time_min');
- $mcontrol->setSelectedValue(intval($min));
- $container->Controls[] = $mcontrol;
- $container->Controls[] = ' : ';
-
- $scontrol = new TDropDownList();
- $scontrol->setDataSource($mins);
- $scontrol->dataBind();
- $scontrol->setID('scaffold_time_sec');
- $scontrol->setSelectedValue(intval($sec));
- $container->Controls[] = $scontrol;
-
- return array($hcontrol,$mcontrol,$scontrol);
- }
-
-
- protected function createDateControl($container, $column, $record)
- {
- $value = $this->getRecordPropertyValue($column, $record);
- $control = new TDatePicker();
- $control->setFromYear(1900);
- $control->setInputMode(TDatePickerInputMode::DropDownList);
- $control->setDateFormat('yyyy-MM-dd');
- if(!empty($value))
- $control->setDate(substr($value,0,10));
- $control->setCssClass('date-dropdown');
- $this->setNotNullProperty($container, $control, $column, $record);
- return $control;
- }
-
- protected function createDateTimeControl($container, $column, $record)
- {
- $value = $this->getRecordPropertyValue($column, $record);
- $control = $this->createDateControl($container, $column, $record);
- $container->Controls[] = ' @ ';
- $time = $this->createTimeControl($container, $column, $record);
- if(!empty($value))
- {
- $match=array();
- if(preg_match('/(\d+):(\d+):?(\d+)?/', substr($value, 11), $match))
- {
- $time[0]->setSelectedValue(intval($match[1]));
- $time[1]->setSelectedValue(intval($match[2]));
- if(isset($match[3]))
- $time[2]->setSelectedValue(intval($match[3]));
- }
- }
- $time[0]->setID('scaffold_time_hour');
- return array($control, $time[0], $time[1], $time[2]);
- }
-
- protected function getDateTimeValue($container, $column, $record)
- {
- $date = $container->findControl(self::DEFAULT_ID)->getDate();
- $hour = $container->findControl('scaffold_time_hour')->getSelectedValue();
- $mins = $container->findControl('scaffold_time_min')->getSelectedValue();
- $secs = $container->findControl('scaffold_time_sec')->getSelectedValue();
- return "{$date} {$hour}:{$mins}:{$secs}";
- }
-
- protected function getTimeValue($container, $column, $record)
- {
- $hour = $container->findControl(self::DEFAULT_ID)->getSelectedValue();
- $mins = $container->findControl('scaffold_time_min')->getSelectedValue();
- $secs = $container->findControl('scaffold_time_sec')->getSelectedValue();
- return "{$hour}:{$mins}:{$secs}";
- }
-
- protected function createSetControl($container, $column, $record)
- {
- $value = $this->getRecordPropertyValue($column, $record);
- $selectedValues = preg_split('/\s*,\s*/', $value);
- $control = new TCheckBoxList();
- $values = $column->getDbTypeValues();
- $control->setDataSource($values);
- $control->dataBind();
- $control->setSelectedIndices($this->getMatchingIndices($values,$selectedValues));
- $control->setID(self::DEFAULT_ID);
- $control->setCssClass('set-checkboxes');
- $this->setNotNullProperty($container, $control, $column, $record);
- return $control;
- }
-
- protected function getMatchingIndices($checks, $values)
- {
- $index=array();
- for($i=0, $k=count($checks); $i<$k; $i++)
- {
- if(in_array($checks[$i], $values))
- $index[] = $i;
- }
- return $index;
- }
-
- protected function createEnumControl($container, $column, $record)
- {
- $value = $this->getRecordPropertyValue($column, $record);
- $selectedValues = preg_split('/\s*,\s*/', $value);
- $control = new TRadioButtonList();
- $values = $column->getDbTypeValues();
- $control->setDataSource($values);
- $control->dataBind();
- $index = $this->getMatchingIndices($values,$selectedValues);
- if(count($index) > 0)
- $control->setSelectedIndex($index[0]);
- $control->setID(self::DEFAULT_ID);
- $control->setCssClass('enum-radio-buttons');
- $this->setNotNullProperty($container, $control, $column, $record);
- return $control;
- }
-
- protected function getSetValue($container, $column, $record)
- {
- $value=array();
- foreach($container->findControl(self::DEFAULT_ID)->getItems() as $item)
- {
- if($item->getSelected())
- $value[] = $item->getText();
- }
- return implode(',', $value);
- }
-
- protected function getEnumValue($container, $column, $record)
- {
- return $container->findControl(self::DEFAULT_ID)->getSelectedItem()->getText();
- }
-}
-
+<?php
+/**
+ * TScaffoldInputCommon class file.
+ *
+ * @link http://www.pradosoft.com/
+ * @copyright Copyright &copy; 2005-2007 PradoSoft
+ * @license http://www.pradosoft.com/license/
+ * @package System.Data.ActiveReecord.Scaffold.InputBuilder
+ */
+class TScaffoldInputCommon extends TScaffoldInputBase
+{
+ protected function setDefaultProperty($container, $control, $column, $record)
+ {
+ $control->setID(self::DEFAULT_ID);
+ $control->setEnabled($this->getIsEnabled($column, $record));
+ $container->Controls[] = $control;
+ }
+
+ protected function setNotNullProperty($container, $control, $column, $record)
+ {
+ $this->setDefaultProperty($container, $control, $column, $record);
+ if(!$column->getAllowNull() && !$column->hasSequence())
+ $this->createRequiredValidator($container, $column, $record);
+ }
+
+ protected function createBooleanControl($container, $column, $record)
+ {
+ $value = $this->getRecordPropertyValue($column, $record);
+ $control = new TCheckBox();
+ $control->setChecked(TPropertyValue::ensureBoolean($value));
+ $control->setCssClass('boolean-checkbox');
+ $this->setDefaultProperty($container, $control, $column, $record);
+ return $control;
+ }
+
+ protected function createDefaultControl($container, $column, $record)
+ {
+ $value = $this->getRecordPropertyValue($column, $record);
+ $control = new TTextBox();
+ $control->setText($value);
+ $control->setCssClass('default-textbox scaffold_input');
+ if(($len=$column->getColumnSize())!==null)
+ $control->setMaxLength($len);
+ $this->setNotNullProperty($container, $control, $column, $record);
+ return $control;
+ }
+
+ protected function getDefaultControlValue($container,$column, $record)
+ {
+ $control = $container->findControl(self::DEFAULT_ID);
+ if($control instanceof TCheckBox)
+ return $control->getChecked();
+ else if($control instanceof TControl)
+ return $control->getText();
+ }
+
+ protected function createMultiLineControl($container, $column, $record)
+ {
+ $value = $this->getRecordPropertyValue($column, $record);
+ $control = new TTextBox();
+ $control->setText($value);
+ $control->setTextMode(TTextBoxMode::MultiLine);
+ $control->setCssClass('multiline-textbox scaffold_input');
+ $this->setNotNullProperty($container, $control, $column, $record);
+ return $control;
+ }
+
+ protected function createYearControl($container, $column, $record)
+ {
+ $value = $this->getRecordPropertyValue($column, $record);
+ $control = new TDropDownList();
+ $years = array();
+ $current = intval(@date('Y'));
+ $from = $current-10; $to=$current+10;
+ for($i = $from; $i <= $to; $i++)
+ $years[$i] = $i;
+ $control->setDataSource($years);
+ $control->setSelectedValue(empty($value) ? $current : $value);
+ $control->setCssClass('year-dropdown');
+ $this->setNotNullProperty($container, $control, $column, $record);
+ return $control;
+ }
+
+ protected function createIntegerControl($container, $column, $record)
+ {
+ $control = $this->createDefaultControl($container, $column, $record);
+ $val = $this->createTypeValidator($container, $column, $record);
+ $val->setDataType(TValidationDataType::Integer);
+ $val->setErrorMessage('Please entery an integer.');
+ return $control;
+ }
+
+ protected function createFloatControl($container, $column, $record)
+ {
+ $control = $this->createDefaultControl($container, $column, $record);
+ $val = $this->createTypeValidator($container, $column, $record);
+ $val->setDataType(TValidationDataType::Float);
+ $val->setErrorMessage('Please entery a decimal number.');
+ if(($max= $column->getMaxiumNumericConstraint())!==null)
+ {
+ $val = $this->createRangeValidator($container,$column,$record);
+ $val->setDataType(TValidationDataType::Float);
+ $val->setMaxValue($max);
+ $val->setStrictComparison(true);
+ $val->setErrorMessage('Please entery a decimal number strictly less than '.$max.'.');
+ }
+ return $control;
+ }
+
+ protected function createRequiredValidator($container, $column, $record)
+ {
+ $val = new TRequiredFieldValidator();
+ $val->setErrorMessage('*');
+ $val->setControlCssClass('required-input');
+ $val->setCssClass('required');
+ $val->setControlToValidate(self::DEFAULT_ID);
+ $val->setValidationGroup($this->getParent()->getValidationGroup());
+ $val->setDisplay(TValidatorDisplayStyle::Dynamic);
+ $container->Controls[] = $val;
+ return $val;
+ }
+
+ protected function createTypeValidator($container, $column, $record)
+ {
+ $val = new TDataTypeValidator();
+ $val->setControlCssClass('required-input2');
+ $val->setCssClass('required');
+ $val->setControlToValidate(self::DEFAULT_ID);
+ $val->setValidationGroup($this->getParent()->getValidationGroup());
+ $val->setDisplay(TValidatorDisplayStyle::Dynamic);
+ $container->Controls[] = $val;
+ return $val;
+ }
+
+ protected function createRangeValidator($container, $column, $record)
+ {
+ $val = new TRangeValidator();
+ $val->setControlCssClass('required-input3');
+ $val->setCssClass('required');
+ $val->setControlToValidate(self::DEFAULT_ID);
+ $val->setValidationGroup($this->getParent()->getValidationGroup());
+ $val->setDisplay(TValidatorDisplayStyle::Dynamic);
+ $container->Controls[] = $val;
+ return $val;
+ }
+
+ protected function createTimeControl($container, $column, $record)
+ {
+ $value = $this->getRecordPropertyValue($column, $record);
+ $hours=array();
+ for($i=0;$i<24;$i++) $hours[] = str_pad($i,2,'0',STR_PAD_LEFT);
+ $mins=array();
+ for($i=0;$i<60;$i++) $mins[] = str_pad($i,2,'0',STR_PAD_LEFT);
+ $hour = intval(@date('H'));
+ $min = intval(@date('i'));
+ $sec = intval(@date('s'));
+ if(!empty($value))
+ {
+ $match=array();
+ if(preg_match('/(\d+):(\d+):?(\d+)?/', $value, $match))
+ {
+ $hour = $match[1];
+ $min = $match[2];
+ if(isset($match[3]))
+ $sec=$match[3];
+ }
+ }
+
+ $hcontrol = new TDropDownList();
+ $hcontrol->setDataSource($hours);
+ $hcontrol->setID(self::DEFAULT_ID);
+ $hcontrol->dataBind();
+ $hcontrol->setSelectedValue(intval($hour));
+ $container->Controls[] = $hcontrol;
+ $container->Controls[] = ' : ';
+
+ $mcontrol = new TDropDownList();
+ $mcontrol->setDataSource($mins);
+ $mcontrol->dataBind();
+ $mcontrol->setID('scaffold_time_min');
+ $mcontrol->setSelectedValue(intval($min));
+ $container->Controls[] = $mcontrol;
+ $container->Controls[] = ' : ';
+
+ $scontrol = new TDropDownList();
+ $scontrol->setDataSource($mins);
+ $scontrol->dataBind();
+ $scontrol->setID('scaffold_time_sec');
+ $scontrol->setSelectedValue(intval($sec));
+ $container->Controls[] = $scontrol;
+
+ return array($hcontrol,$mcontrol,$scontrol);
+ }
+
+
+ protected function createDateControl($container, $column, $record)
+ {
+ $value = $this->getRecordPropertyValue($column, $record);
+ $control = new TDatePicker();
+ $control->setFromYear(1900);
+ $control->setInputMode(TDatePickerInputMode::DropDownList);
+ $control->setDateFormat('yyyy-MM-dd');
+ if(!empty($value))
+ $control->setDate(substr($value,0,10));
+ $control->setCssClass('date-dropdown');
+ $this->setNotNullProperty($container, $control, $column, $record);
+ return $control;
+ }
+
+ protected function createDateTimeControl($container, $column, $record)
+ {
+ $value = $this->getRecordPropertyValue($column, $record);
+ $control = $this->createDateControl($container, $column, $record);
+ $container->Controls[] = ' @ ';
+ $time = $this->createTimeControl($container, $column, $record);
+ if(!empty($value))
+ {
+ $match=array();
+ if(preg_match('/(\d+):(\d+):?(\d+)?/', substr($value, 11), $match))
+ {
+ $time[0]->setSelectedValue(intval($match[1]));
+ $time[1]->setSelectedValue(intval($match[2]));
+ if(isset($match[3]))
+ $time[2]->setSelectedValue(intval($match[3]));
+ }
+ }
+ $time[0]->setID('scaffold_time_hour');
+ return array($control, $time[0], $time[1], $time[2]);
+ }
+
+ protected function getDateTimeValue($container, $column, $record)
+ {
+ $date = $container->findControl(self::DEFAULT_ID)->getDate();
+ $hour = $container->findControl('scaffold_time_hour')->getSelectedValue();
+ $mins = $container->findControl('scaffold_time_min')->getSelectedValue();
+ $secs = $container->findControl('scaffold_time_sec')->getSelectedValue();
+ return "{$date} {$hour}:{$mins}:{$secs}";
+ }
+
+ protected function getTimeValue($container, $column, $record)
+ {
+ $hour = $container->findControl(self::DEFAULT_ID)->getSelectedValue();
+ $mins = $container->findControl('scaffold_time_min')->getSelectedValue();
+ $secs = $container->findControl('scaffold_time_sec')->getSelectedValue();
+ return "{$hour}:{$mins}:{$secs}";
+ }
+
+ protected function createSetControl($container, $column, $record)
+ {
+ $value = $this->getRecordPropertyValue($column, $record);
+ $selectedValues = preg_split('/\s*,\s*/', $value);
+ $control = new TCheckBoxList();
+ $values = $column->getDbTypeValues();
+ $control->setDataSource($values);
+ $control->dataBind();
+ $control->setSelectedIndices($this->getMatchingIndices($values,$selectedValues));
+ $control->setID(self::DEFAULT_ID);
+ $control->setCssClass('set-checkboxes');
+ $this->setNotNullProperty($container, $control, $column, $record);
+ return $control;
+ }
+
+ protected function getMatchingIndices($checks, $values)
+ {
+ $index=array();
+ for($i=0, $k=count($checks); $i<$k; $i++)
+ {
+ if(in_array($checks[$i], $values))
+ $index[] = $i;
+ }
+ return $index;
+ }
+
+ protected function createEnumControl($container, $column, $record)
+ {
+ $value = $this->getRecordPropertyValue($column, $record);
+ $selectedValues = preg_split('/\s*,\s*/', $value);
+ $control = new TRadioButtonList();
+ $values = $column->getDbTypeValues();
+ $control->setDataSource($values);
+ $control->dataBind();
+ $index = $this->getMatchingIndices($values,$selectedValues);
+ if(count($index) > 0)
+ $control->setSelectedIndex($index[0]);
+ $control->setID(self::DEFAULT_ID);
+ $control->setCssClass('enum-radio-buttons');
+ $this->setNotNullProperty($container, $control, $column, $record);
+ return $control;
+ }
+
+ protected function getSetValue($container, $column, $record)
+ {
+ $value=array();
+ foreach($container->findControl(self::DEFAULT_ID)->getItems() as $item)
+ {
+ if($item->getSelected())
+ $value[] = $item->getText();
+ }
+ return implode(',', $value);
+ }
+
+ protected function getEnumValue($container, $column, $record)
+ {
+ return $container->findControl(self::DEFAULT_ID)->getSelectedItem()->getText();
+ }
+}
+
?> \ No newline at end of file
diff --git a/framework/Data/ActiveRecord/Scaffold/InputBuilder/TSqliteScaffoldInput.php b/framework/Data/ActiveRecord/Scaffold/InputBuilder/TSqliteScaffoldInput.php
index a61da1f3..6a26305d 100644
--- a/framework/Data/ActiveRecord/Scaffold/InputBuilder/TSqliteScaffoldInput.php
+++ b/framework/Data/ActiveRecord/Scaffold/InputBuilder/TSqliteScaffoldInput.php
@@ -1,93 +1,100 @@
-<?php
-
-Prado::using('System.Data.ActiveRecord.Scaffold.InputBuilder.TScaffoldInputCommon');
-
-class TSqliteScaffoldInput extends TScaffoldInputCommon
-{
- protected function createControl($container, $column, $record)
- {
- switch(strtolower($column->getDbType()))
- {
- case 'boolean':
- return $this->createBooleanControl($container, $column, $record);
- case 'date':
- return $this->createDateControl($container, $column, $record);
- case 'blob': case 'tinyblob': case 'mediumblob': case 'longblob':
- case 'text': case 'tinytext': case 'mediumtext': case 'longtext':
- return $this->createMultiLineControl($container, $column, $record);
- case 'year':
- return $this->createYearControl($container, $column, $record);
- case 'int': case 'integer': case 'tinyint': case 'smallint': case 'mediumint': case 'bigint':
- return $this->createIntegerControl($container, $column, $record);
- case 'decimal': case 'double': case 'float':
- return $this->createFloatControl($container, $column, $record);
- case 'time' :
- return $this->createTimeControl($container, $column, $record);
- case 'datetime': case 'timestamp':
- return $this->createDateTimeControl($container, $column, $record);
- default:
- return $this->createDefaultControl($container,$column, $record);
- }
- }
-
- protected function getControlValue($container, $column, $record)
- {
- switch(strtolower($column->getDbType()))
- {
- case 'boolean':
- return $container->findControl(self::DEFAULT_ID)->getChecked();
- case 'date':
- return $container->findControl(self::DEFAULT_ID)->getDate();
- case 'year':
- return $container->findControl(self::DEFAULT_ID)->getSelectedValue();
- case 'time':
- return $this->getTimeValue($container, $column, $record);
- case 'datetime': case 'timestamp':
- return $this->getDateTimeValue($container,$column, $record);
- default:
- return $this->getDefaultControlValue($container,$column, $record);
- }
- }
-
- protected function createDateControl($container, $column, $record)
- {
- $control = parent::createDateControl($container, $column, $record);
- $value = $this->getRecordPropertyValue($column, $record);
- if(!empty($value) && preg_match('/timestamp/i', $column->getDbType()))
- $control->setTimestamp(intval($value));
- return $control;
- }
-
- protected function createDateTimeControl($container, $column, $record)
- {
- $value = $this->getRecordPropertyValue($column, $record);
- $time = parent::createDateTimeControl($container, $column, $record);
- if(!empty($value) && preg_match('/timestamp/i', $column->getDbType()))
- {
- $s = Prado::createComponent('System.Util.TDateTimeStamp');
- $date = $s->getDate(intval($value));
- $time[1]->setSelectedValue($date['hours']);
- $time[2]->setSelectedValue($date['minutes']);
- $time[3]->setSelectedValue($date['seconds']);
- }
- return $time;
- }
-
- protected function getDateTimeValue($container, $column, $record)
- {
- if(preg_match('/timestamp/i', $column->getDbType()))
- {
- $time = $container->findControl(self::DEFAULT_ID)->getTimestamp();
- $s = Prado::createComponent('System.Util.TDateTimeStamp');
- $date = $s->getDate($time);
- $hour = $container->findControl('scaffold_time_hour')->getSelectedValue();
- $mins = $container->findControl('scaffold_time_min')->getSelectedValue();
- $secs = $container->findControl('scaffold_time_sec')->getSelectedValue();
- return $s->getTimeStamp($hour,$mins,$secs,$date['mon'],$date['mday'],$date['year']);
- }
- else
- return parent::getDateTimeValue($container, $column, $record);
- }
-}
-
+<?php
+/**
+ * TSqliteScaffoldInput class file.
+ *
+ * @link http://www.pradosoft.com/
+ * @copyright Copyright &copy; 2005-2007 PradoSoft
+ * @license http://www.pradosoft.com/license/
+ * @package System.Data.ActiveReecord.Scaffold.InputBuilder
+ */
+Prado::using('System.Data.ActiveRecord.Scaffold.InputBuilder.TScaffoldInputCommon');
+
+class TSqliteScaffoldInput extends TScaffoldInputCommon
+{
+ protected function createControl($container, $column, $record)
+ {
+ switch(strtolower($column->getDbType()))
+ {
+ case 'boolean':
+ return $this->createBooleanControl($container, $column, $record);
+ case 'date':
+ return $this->createDateControl($container, $column, $record);
+ case 'blob': case 'tinyblob': case 'mediumblob': case 'longblob':
+ case 'text': case 'tinytext': case 'mediumtext': case 'longtext':
+ return $this->createMultiLineControl($container, $column, $record);
+ case 'year':
+ return $this->createYearControl($container, $column, $record);
+ case 'int': case 'integer': case 'tinyint': case 'smallint': case 'mediumint': case 'bigint':
+ return $this->createIntegerControl($container, $column, $record);
+ case 'decimal': case 'double': case 'float':
+ return $this->createFloatControl($container, $column, $record);
+ case 'time' :
+ return $this->createTimeControl($container, $column, $record);
+ case 'datetime': case 'timestamp':
+ return $this->createDateTimeControl($container, $column, $record);
+ default:
+ return $this->createDefaultControl($container,$column, $record);
+ }
+ }
+
+ protected function getControlValue($container, $column, $record)
+ {
+ switch(strtolower($column->getDbType()))
+ {
+ case 'boolean':
+ return $container->findControl(self::DEFAULT_ID)->getChecked();
+ case 'date':
+ return $container->findControl(self::DEFAULT_ID)->getDate();
+ case 'year':
+ return $container->findControl(self::DEFAULT_ID)->getSelectedValue();
+ case 'time':
+ return $this->getTimeValue($container, $column, $record);
+ case 'datetime': case 'timestamp':
+ return $this->getDateTimeValue($container,$column, $record);
+ default:
+ return $this->getDefaultControlValue($container,$column, $record);
+ }
+ }
+
+ protected function createDateControl($container, $column, $record)
+ {
+ $control = parent::createDateControl($container, $column, $record);
+ $value = $this->getRecordPropertyValue($column, $record);
+ if(!empty($value) && preg_match('/timestamp/i', $column->getDbType()))
+ $control->setTimestamp(intval($value));
+ return $control;
+ }
+
+ protected function createDateTimeControl($container, $column, $record)
+ {
+ $value = $this->getRecordPropertyValue($column, $record);
+ $time = parent::createDateTimeControl($container, $column, $record);
+ if(!empty($value) && preg_match('/timestamp/i', $column->getDbType()))
+ {
+ $s = Prado::createComponent('System.Util.TDateTimeStamp');
+ $date = $s->getDate(intval($value));
+ $time[1]->setSelectedValue($date['hours']);
+ $time[2]->setSelectedValue($date['minutes']);
+ $time[3]->setSelectedValue($date['seconds']);
+ }
+ return $time;
+ }
+
+ protected function getDateTimeValue($container, $column, $record)
+ {
+ if(preg_match('/timestamp/i', $column->getDbType()))
+ {
+ $time = $container->findControl(self::DEFAULT_ID)->getTimestamp();
+ $s = Prado::createComponent('System.Util.TDateTimeStamp');
+ $date = $s->getDate($time);
+ $hour = $container->findControl('scaffold_time_hour')->getSelectedValue();
+ $mins = $container->findControl('scaffold_time_min')->getSelectedValue();
+ $secs = $container->findControl('scaffold_time_sec')->getSelectedValue();
+ return $s->getTimeStamp($hour,$mins,$secs,$date['mon'],$date['mday'],$date['year']);
+ }
+ else
+ return parent::getDateTimeValue($container, $column, $record);
+ }
+}
+
?> \ No newline at end of file