| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160 |
- <?php
- # i think this class should go somewhere in a common PEAR-place,
- # because a lot of classes use options, at least PEAR::DB does
- # but since it is not very fancy to crowd the PEAR-namespace too much i dont know where to put it yet :-(
- //
- // +----------------------------------------------------------------------+
- // | PHP Version 4 |
- // +----------------------------------------------------------------------+
- // | Copyright (c) 1997-2003 The PHP Group |
- // +----------------------------------------------------------------------+
- // | This source file is subject to version 2.02 of the PHP license, |
- // | that is bundled with this package in the file LICENSE, and is |
- // | available at through the world-wide-web at |
- // | http://www.php.net/license/2_02.txt. |
- // | If you did not receive a copy of the PHP license and are unable to |
- // | obtain it through the world-wide-web, please send a note to |
- // | license@php.net so we can mail you a copy immediately. |
- // +----------------------------------------------------------------------+
- // | Authors: Wolfram Kriesing <wolfram@kriesing.de> |
- // +----------------------------------------------------------------------+
- //
- // $Id: Options.php,v 1.4 2003/01/04 11:56:27 mj Exp $
- require_once('PEAR.php');
- /**
- * this class only defines commonly used methods, etc.
- * it is worthless without being extended
- *
- * @package Tree
- * @access public
- * @author Wolfram Kriesing <wolfram@kriesing.de>
- *
- */
- class Tree_Options extends PEAR
- {
- /**
- * @var array $options you need to overwrite this array and give the keys, that are allowed
- */
- var $options = array();
- var $_forceSetOption = false;
- /**
- * this constructor sets the options, since i normally need this and
- * in case the constructor doesnt need to do anymore i already have it done :-)
- *
- * @version 02/01/08
- * @access public
- * @author Wolfram Kriesing <wolfram@kriesing.de>
- * @param array the key-value pairs of the options that shall be set
- * @param boolean if set to true options are also set
- * even if no key(s) was/were found in the options property
- */
- function Tree_Options( $options=array() , $force=false )
- {
- $this->_forceSetOption = $force;
- if( is_array($options) && sizeof($options) )
- foreach( $options as $key=>$value )
- $this->setOption( $key , $value );
- }
- /**
- *
- * @access public
- * @author Stig S. Baaken
- * @param
- * @param
- * @param boolean if set to true options are also set
- * even if no key(s) was/were found in the options property
- */
- function setOption( $option , $value , $force=false )
- {
- if( is_array($value) ) // if the value is an array extract the keys and apply only each value that is set
- { // so we dont override existing options inside an array, if an option is an array
- foreach( $value as $key=>$aValue )
- $this->setOption( array($option , $key) , $aValue );
- return true;
- }
- if( is_array($option) )
- {
- $mainOption = $option[0];
- $options = "['".implode("']['",$option)."']";
- $evalCode = "\$this->options".$options." = \$value;";
- }
- else
- {
- $evalCode = "\$this->options[\$option] = \$value;";
- $mainOption = $option;
- }
- if( $this->_forceSetOption==true || $force==true || isset($this->options[$mainOption]) )
- {
- eval($evalCode);
- return true;
- }
- return false;
- }
- /**
- * set a number of options which are simply given in an array
- *
- * @access public
- * @author
- * @param
- * @param boolean if set to true options are also set
- * even if no key(s) was/were found in the options property
- */
- function setOptions( $options , $force=false )
- {
- if( is_array($options) && sizeof($options) )
- {
- foreach( $options as $key=>$value )
- {
- $this->setOption( $key , $value , $force );
- }
- }
- }
- /**
- *
- * @access public
- * @author copied from PEAR: DB/commmon.php
- * @param boolean true on success
- */
- function getOption($option)
- {
- if( func_num_args() > 1 &&
- is_array($this->options[$option]))
- {
- $args = func_get_args();
- $evalCode = "\$ret = \$this->options['".implode( "']['" , $args )."'];";
- eval( $evalCode );
- return $ret;
- }
- if (isset($this->options[$option])) {
- return $this->options[$option];
- }
- # return $this->raiseError("unknown option $option");
- return false;
- }
- /**
- * returns all the options
- *
- * @version 02/05/20
- * @access public
- * @author Wolfram Kriesing <wolfram@kriesing.de>
- * @return string all options as an array
- */
- function getOptions()
- {
- return $this->options;
- }
- } // end of class
- ?>
|