. * * For more information, contact Colosa Inc, 2566 Le Jeune Rd., * Coral Gables, FL, 33134, USA, or email info@colosa.com. * */ // // It works with the table CONFIGURATION in a WF dataBase // // Copyright (C) 2007 COLOSA // // License: LGPL, see LICENSE //////////////////////////////////////////////////// /** * ProcessConfiguration - ProcessConfiguration class * @author David S. Callizaya S. * @copyright 2007 COLOSA */ require_once 'classes/model/Configuration.php'; /** * Extends Configuration * * * @copyright 2007 COLOSA * @version Release: @package_version@ * @package workflow.engine.ProcessMaker */ class Configurations // extends Configuration { var $aConfig = array(); private $Configuration = null; /** * Set Configurations * @return void */ function Configurations() { $this->Configuration = new Configuration(); } /** * arrayClone * * @param array &$object Source array * @param array &$cloneObject Array duplicate * @return void */ function arrayClone( &$object, &$cloneObject ) { if (is_array($object)) { foreach($object as $k => $v ) { $cloneObject[$k] = NULL; $this->arrayClone( $object[$k], $cloneObject[$k] ); } } else { if (is_object($object)) { } else { $cloneObject=NULL; } } } /** * configObject * * @param object &$object * @param array &$from * @return void */ function configObject( &$object, &$from ) { if (!(is_object($object) || is_array($object))) return; if (!isset($from)) $from = &$this->aConfig; foreach($from as $k => $v ) { if (isset($v) && array_key_exists($k,$object)) { if (is_object($v)) throw new Exception( 'Object is not permited inside configuration array.' ); if (is_object($object)) { if (is_array($v)) $this->configObject($object->{$k}, $v); else $object->{$k} = $v; } else { if (is_array($object)) { if (is_array($v)) $this->configObject($object[$k], $v); else $object[$k] = $v; } } } } } /** * loadConfig * * @param object &$object * @param string $cfg * @param object $obj * @param string $pro * @param string $usr * @param string $app * @return void */ function loadConfig(&$object, $cfg, $obj, $pro = '', $usr = '', $app = '') { $this->Fields = array(); if ($this->Configuration->exists( $cfg, $obj, $pro, $usr, $app )) $this->Fields = $this->Configuration->load( $cfg, $obj, $pro, $usr, $app ); $aConfig = $this->aConfig; if (isset($this->Fields['CFG_VALUE'])) $aConfig = unserialize($this->Fields['CFG_VALUE']); if (!is_array($aConfig)) $aConfig = $this->aConfig; $this->aConfig = $aConfig; $this->configObject($object,$this->aConfig); } /** * saveConfig * * @param object &$object * @param array &$from * @return void */ function saveConfig($cfg,$obj,$pro='',$usr='',$app='') { $aFields = array( 'CFG_UID' => $cfg, 'OBJ_UID' => $obj, 'PRO_UID' => $pro, 'USR_UID' => $usr, 'APP_UID' => $app, 'CFG_VALUE' => serialize($this->aConfig) ); if ($this->Configuration->exists($cfg,$obj,$pro,$usr,$app)) { $this->Configuration->update($aFields); } else { $this->Configuration->create($aFields); $this->Configuration->update($aFields); } } /** * saveObject * * @param object &$object * @param array &$from * @return void */ function saveObject(&$object,$cfg,$obj,$pro='',$usr='',$app='') { $aFields = array( 'CFG_UID' => $cfg, 'OBJ_UID' => $obj, 'PRO_UID' => $pro, 'USR_UID' => $usr, 'APP_UID' => $app, 'CFG_VALUE' => serialize(array(&$object)) ); if ($this->Configuration->exists($cfg,$obj,$pro,$usr,$app)) { $this->Configuration->update($aFields); } else { $this->Configuration->create($aFields); $this->Configuration->update($aFields); } } /** * loadObject * this function is deprecated, we dont know why return an object, use the function getConfiguration below * * @param string $cfg * @param object $obj * @param string $pro * @param string $usr * @param string $app * @return void */ function loadObject($cfg, $obj, $pro = '', $usr = '', $app = '') { $objectContainer=array((object) array()); $this->Fields = array(); if ($this->Configuration->exists( $cfg, $obj, $pro, $usr, $app )) $this->Fields = $this->Configuration->load( $cfg, $obj, $pro, $usr, $app ); else return $objectContainer[0]; if (isset($this->Fields['CFG_VALUE'])) $objectContainer = unserialize($this->Fields['CFG_VALUE']); if (!is_array($objectContainer)||sizeof($objectContainer)!=1) return (object) array(); else return $objectContainer[0]; } /** * getConfiguration * * @param string $cfg * @param object $obj * @param string $pro * @param string $usr * @param string $app * @return void */ function getConfiguration($cfg, $obj, $pro = '', $usr = '', $app = '') { try { $oCfg = ConfigurationPeer::retrieveByPK( $cfg, $obj, $pro, $usr, $app ); if (!is_null($oCfg)) { $row = $oCfg->toArray(BasePeer::TYPE_FIELDNAME); $result = unserialize($row['CFG_VALUE']); if ( is_array($result) && sizeof($result)==1 ) { return $result[0]; } else { return $result; } } else { return null; } } catch (Exception $oError) { return null; } } /** * setConfig * * @param string $route * @param object &$object * @param object &$to * @return void */ function setConfig( $route , &$object , &$to ) { if (!isset($to)) $to = &$this->aConfig; $routes = explode(',',$route); foreach($routes as $r) { $ro = explode('/',$r); if (count($ro)>1) { $rou = $ro; unset($rou[0]); if ($ro[0]==='*') { foreach($object as $k => $v ) { if (is_object($object)) { if (!isset($to[$k])) $to[$k] = array(); $this->setConfig(implode('/',$rou),$object->{$k},$to[$k]); } else { if (is_array($object)) { if (!isset($to[$k])) $to[$k] = array(); $this->setConfig(implode('/',$rou),$object[$k],$to[$k]); } } } } else { if (is_object($object)) { if (!isset($to[$ro[0]])) $to[$ro[0]] = array(); $this->setConfig(implode('/',$rou),$object->{$ro[0]},$to[$ro[0]]); } else { if (is_array($object)) { if (!isset($to[$ro[0]])) $to[$ro[0]] = array(); $this->setConfig(implode('/',$rou),$object[$ro[0]],$to[$ro[0]]); } else { $to = $object; } } } } else { if ($ro[0]==='*') { foreach($object as $k => $v ) { if (is_object($object)) { if (!isset($to[$k])) $to[$k] = array(); $to[$k] = $object->{$k}; } else { if (is_array($object)) { if (!isset($to[$k])) $to[$k] = array(); $to[$k] = $object[$k]; } } } } else { if (!isset($to[$r])) $to[$r] = array(); if (is_object($object)) { $to[$r] = $object->{$r}; } elseif (is_array($object)) { $to[$r] = $object[$r]; } else { $to[$r] = $object; } } } } } function getDateFormats(){ $formats[] = Array( 'id'=>'Y-m-d H:i:s', //the id , don't translate 'name'=>G::loadTranslation('ID_DATE_FORMAT_1') //'Y-m-d H:i:s' i.e: '2010-11-17 10:25:07' ); $formats[] = Array( 'id'=>'d/m/Y', 'name'=>G::loadTranslation('ID_DATE_FORMAT_2') //'d/m/Y' i.e:'17/11/2010' ); $formats[] = Array( 'id'=>'m/d/Y', 'name'=>G::loadTranslation('ID_DATE_FORMAT_3')//'m/d/Y' i.e:'11/17/2010' ); $formats[] = Array( 'id'=>'Y/d/m', 'name'=>G::loadTranslation('ID_DATE_FORMAT_4')//'Y/d/m' i.e:'2010/17/11' ); $formats[] = Array( 'id'=>'Y/m/d', 'name'=>G::loadTranslation('ID_DATE_FORMAT_5')//'Y/m/d' i.e:'2010/11/17' ); $formats[] = Array( 'id'=>'F j, Y, g:i a', 'name'=>G::loadTranslation('ID_DATE_FORMAT_6')//'F j, Y, g:i a' i.e:'November 17, 2010, 10:45 am' ); $formats[] = Array( 'id'=>'m.d.y', 'name'=>G::loadTranslation('ID_DATE_FORMAT_7')//'m.d.y' i.e: '11.17.10' ); $formats[] = Array( 'id'=>'j, n, Y', 'name'=>G::loadTranslation('ID_DATE_FORMAT_8')//'j, n, Y' i.e:'17,11,2010' ); $formats[] = Array( 'id'=>'D M j G:i:s T Y', 'name'=>G::loadTranslation('ID_DATE_FORMAT_9')//'D M j G:i:s T Y' i.e:'Thu Nov 17 10:48:18 BOT 2010' ); $formats[] = Array( 'id'=>'D d M, Y', 'name'=>G::loadTranslation('ID_DATE_FORMAT_10')//'D d M, Y' i.e:'Thu 17 Nov, 2010' ); $formats[] = Array( 'id'=>'D M, Y', 'name'=>G::loadTranslation('ID_DATE_FORMAT_11')//'D M, Y' i.e:'Thu Nov, 2010' ); $formats[] = Array( 'id'=>'d M, Y', 'name'=>G::loadTranslation('ID_DATE_FORMAT_12')//'d M, Y' i.e:'17 Nov, 2010' ); $formats[] = Array( 'id'=>'d m, Y', 'name'=>G::loadTranslation('ID_DATE_FORMAT_13')//'d m, Y' i.e:'17 11, 2010' ); return $formats; } function getUserNameFormats(){ $formats[] = Array( 'id'=>'@firstName @lastName', //the id , don't translate 'name'=>G::loadTranslation('ID_USERNAME_FORMAT_1') //label displayed, can be translated ); $formats[] = Array( 'id'=>'@firstName @lastName (@userName)', 'name'=>G::loadTranslation('ID_USERNAME_FORMAT_2') ); $formats[] = Array( 'id'=>'@userName', 'name'=>G::loadTranslation('ID_USERNAME_FORMAT_3') ); $formats[] = Array( 'id'=>'@userName (@firstName @lastName)', 'name'=>G::loadTranslation('ID_USERNAME_FORMAT_4') ); $formats[] = Array( 'id'=>'@lastName @firstName', 'name'=>G::loadTranslation('ID_USERNAME_FORMAT_5') ); $formats[] = Array( 'id'=>'@lastName, @firstName', 'name'=>G::loadTranslation('ID_USERNAME_FORMAT_6') ); $formats[] = Array( 'id'=>'@lastName, @firstName (@userName)', 'name'=>G::loadTranslation('ID_USERNAME_FORMAT_7') ); return $formats; } } ?>