Can't set DB_DataObject_FormBuilder options in DataObject.ini.

From: Date: Mon, 25 Jul 2005 00:41:22 +0000
Subject: Can't set DB_DataObject_FormBuilder options in DataObject.ini.
Groups: php.pear.general 
Request: Send a blank email to pear-general+get-20118@lists.php.net to get a copy of this message
I am having trouble getting DB_DataObject_FormBuilder to read the options set in DataObject.ini. I include the following file, config.php, in all files that use DataObject_FormBuilder: <?php // this is the common configuration code - place in a general site wide include file. // the simple examples use parse_ini_file, which is fast and efficient. // however you could as easily use wddx, xml or your own configuration array. $ini_config = parse_ini_file('../includes/DataObject.ini',TRUE); // this the code used to load and store DataObjects Configuration. $options = &PEAR::getStaticProperty('DB_DataObject','options'); // because PEAR::getstaticProperty was called with and & (get by reference) // this will actually set the variable inside that method (a quasi static variable) $options = $ini_config['DB_DataObject']; // set FormBuilder options -- commented out as per changelog for DataObject_FormBuilder 0.17.2 //$_DB_DATAOBJECT_FORMBUILDER['CONFIG'] = $ini_config['DB_DataObject_FormBuilder']; ?> Uncommenting the $_DB_DATAOBJECT_FORMBUILDER['CONFIG'] = $ini_config['DB_DataObject_FormBuilder'] line does not change the fact that the options are not parsed. The only workaround that I have found is to add the following two lines to the constructor of the DataObject_FormBuilder class: global $ini_config; $config = $ini_config['DB_DataObject_FormBuilder']; I add these two lines here in the FormBuilder.php file (start quoting at line 888): // Read in config $vars = get_object_vars($this); $defVars = get_class_vars(get_class($this)); $config =& PEAR::getStaticProperty('DB_DataObject_FormBuilder', 'options'); global $ini_config; $config = $ini_config['DB_DataObject_FormBuilder']; if (!isset($config) || !is_array($config)) { $config = array(); } //read all config options into member vars foreach ($config as $key => $value) { if (in_array($key, $vars) && $key[0] != '_') { if (isset($defVars[$key]) && is_array($defVars[$key]) && is_string($value)) { $value = $this->_explodeArrString($value); } $this->$key = $value; } } if (is_array($options)) { reset($options); while (list($key, $value) = each($options)) { if (in_array($key, $vars) && $key[0] != '_') { $this->$key = $value; } } } This is obviously not the way to get DB_DataObject_FormBuilder to read the options from the file, but how does one do it then?

« previous php.pear.general (#20118) next »