PEAR is archived and read-only

This mirror preserves historical PEAR package releases and metadata so existing references remain available.

Home » Database » DB_DataObject_FormBuilder » Bug #1644

[patch] generate SELECT from non-numeric fields

Details

Request #1644[patch] generate SELECT from non-numeric fields
Submitted2004-06-15 11:00 UTC
Froms dot ballestrero at firenze dot linux dot it
Assignedjustinpatrin
StatusClosed
PackageDB_DataObject_FormBuilder
PHP Version4.3.6
OSAny
Roadmaps(Not assigned)

Comments

[2004-06-15 11:00 UTC] s dot ballestrero at firenze dot linux dot it

Description:
------------
patch against FormBuilder.php,v 1.25 to produce <select>
also for links on non-numeric fields
BTW, an "attach" field on the bug report form would be nice...
----------------------------------------
--- /opt/php/share/pear/DB/DataObject/FormBuilder.php 2004-06-08 19:39:51.000000000 +0200
+++ FormBuilder.php 2004-06-15 12:42:26.000000000 +0200
@@ -484,18 +485,22 @@
in_array($key,$this->_do->textFields)) {
$element =& HTML_QuickForm::createElement($this->_getQFType('longtext'), $key, $this->getFieldLabel($key));
} else {
+
+ $links = $this->_do->links();
+ if (is_array($links) && array_key_exists($key, $links)) {
+ $opt = $this->getSelectOptions($key);
+ $element =& HTML_QuickForm::createElement('select', $key, $this->getFieldLabel($key), $opt);
+ unset($opt);
+ } else {
+ unset($element);
+ }
+ unset($links);
+
// Auto-detect field types depending on field's database type
switch (true) {
case ($type & DB_DATAOBJECT_INT):
- $links = $this->_do->links();
- if (is_array($links) && array_key_exists($key, $links)) {
- $opt = $this->getSelectOptions($key);
- $element =& HTML_QuickForm::createElement('select', $key, $this->getFieldLabel($key), $opt);
- } else {
- $element =& HTML_QuickForm::createElement($this->_getQFType('integer'), $key, $this->getFieldLabel($key- $elValidator = 'numeric';
- }
- unset($links);
+ if (empty($element)) $element =& HTML_QuickForm::createElement($this->_getQFType('integer'), $key, $this->ge+ $elValidator = 'numeric';
break;
case ($type & DB_DATAOBJECT_DATE): // TODO
$element =& $this->_createDateElement($key);
@@ -506,18 +511,18 @@
case ($type & DB_DATAOBJECT_TIME): // TODO
case ($type & DB_DATAOBJECT_BOOL): // TODO
case ($type & DB_DATAOBJECT_TXT):
- $element =& HTML_QuickForm::createElement($this->_getQFType('longtext'), $key, $this->getFieldLabel($key));+ if (empty($element)) $element =& HTML_QuickForm::createElement($this->_getQFType('longtext'), $key, $this-> break;
case ($type & DB_DATAOBJECT_STR):
// If field content contains linebreaks, make textarea - otherwise, standard textbox
if (!empty($this->_do->$key) && strstr($this->_do->$key, "\n")) {
$element =& HTML_QuickForm::createElement($this->_getQFType('longtext'), $key, $this->getFieldLabel($ke } else {
- $element =& HTML_QuickForm::createElement($this->_getQFType('shorttext'), $key, $this->getFieldLabel($k+ if (empty($element)) $element =& HTML_QuickForm::createElement($this->_getQFType('shorttext'), $key, $t }
break;
default:
- $element =& HTML_QuickForm::createElement('text', $key, $this->getFieldLabel($key));
+ if (empty($element)) $element =& HTML_QuickForm::createElement('text', $key, $this->getFieldLabel($key));
} // End switch
} // End else

[2004-06-16 14:29 UTC] s dot ballestrero at firenze dot linux dot it

Now you can get my patch from http://www.planetweb.it/opensource/