PEAR is discontinued

This is a static archive preserving historical releases and metadata. No new packages or updates will be published. For updates to existing packages, or to publish new packages, please use Composer and Packagist.

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/