function setSQLValues($valueArray, $whereSelector) { global $analytics_username; global $analytics_password; global $analytics_DBName; global $analytics_tableName; $valueStr = ""; foreach ($valueArray as $key => $value) { $valueStr .= "" . $key . '="' . $value . '",'; } $valueStr = removeLastChar($valueStr); $query = 'UPDATE ' . $analytics_tableName . ' SET ' . $valueStr . " WHERE " . $whereSelector; debugLog("SQL: Setting values with query: " . $query); $connection = tsan_connect(); mysql_query($query, $connection) or kill_script('3.3'); mysql_close($connection); }
function genClaseBase($fileName,&$path,&$file) { global $path_XML; $_Clase=''; $_Collection=''; $_Tabla=''; $_Path_Relativo=''; $_Propiedades=array(); //------------------------------------------------------------------------ //---Roundtrip para no usar funciones XML incopatibles entre PHP4 y PHP5 //------------------------------------------------------------------------ //Leo la definicion XML de la Entidades $fo= fopen("$path_XML/".$fileName,"r") or die ("No se encuentra el Archivo:"."$path_XML/".$fileName); while (!feof($fo)) { $sXML .= fgets($fo, 4096); } fclose ($fo); //paso el xml a un array $xml = xmlize($sXML); //print_r($xml); //Seteo variables generales $_Clase = ucfirst($xml['xml']['#']['clase'][0]['#']); $_Collection = ucfirst($xml['xml']['#']['coleccion'][0]['#']); $_Tabla = strtoupper($xml['xml']['#']['tabla'][0]['#']); $_Path_Relativo = $xml['xml']['#']['path_relativo'][0]['#']; $path = $_Path_Relativo; $_Clase .= '_base'; $_Collection .= '_base'; $file = strtolower($_Clase).".php"; $auxProps = $xml['xml']['#']['properties'][0]['#']['property']; for($i = 0; $i < count($auxProps); $i++) { $property = $auxProps[$i]; $_Propiedades[$i]['NOMBRE'] = $property['#']['nombre'][0]['#']; $_Propiedades[$i]['CAMPO'] = strtoupper($property['#']['campo'][0]['#']); $_Propiedades[$i]['TIPO'] = strtoupper($property['#']['tipo'][0]['#']); $_Propiedades[$i]['NULO'] = strtoupper($property['#']['nulo'][0]['#']); $_Propiedades[$i]['KEY'] = strtoupper($property['#']['key'][0]['#']); } //------------------------------------------------------------------------ //---Fin Roundtrip //------------------------------------------------------------------------ //Test //~ echo "<br>"; //~ echo "Clase: $_Clase<br>"; //~ echo "Tabla: $_Tabla<br>"; //~ echo "Path_Relativo: $_Path_Relativo<br>"; //~ echo "<br>"; //~ var_dump($_Propiedades); //------------------------------------------------------------------------ //---Clase Bob 'El Constructor' --- Si podemos!!! //------------------------------------------------------------------------ $today = getdate(); $sCR = "\n"; $sComaSimple = "'"; $sClass ="<?$sCR"; $sClass .= "//---------------------------------------------------------------$sCR"; $sClass .= "// Clase Base: $_Clase $sCR"; $sClass .= "// $sCR"; $sClass .= "// AUTOGENERADO {$today['year']}-{$today['mon']}-{$today['mday']} {$today['hours']}:{$today['minutes']}:{$today['seconds']} --- W3 ITSolutions --- $sCR"; $sClass .= "// Autor: RM - 2007 $sCR"; $sClass .= "//---------------------------------------------------------------$sCR"; $sClass .="$sCR"; $sClass .='require_once('.'"'.'$baseDir/lib/g_XMLfunctions.inc.php'.'"'.");$sCR"; $sClass .="$sCR"; //=== Class Base ======================== $sClass .="class $_Clase { $sCR"; $sClass .="$sCR"; $sClass .=' // variables internas'.$sCR; $sClass .=' var $_entidad_base;'.$sCR; $sClass .=' var $_prop;'.$sCR; $sClass .=' var $_condb; // Conexion a la base de datos '.$sCR; $sClass .="$sCR"; //---Loop Propiedades -------------- $sClass .=' // Propiedades'.$sCR; for($i = 0; $i < count($_Propiedades); $i++) { $sClass .=' var $'.$_Propiedades[$i]['NOMBRE'].";$sCR"; } $sClass .="$sCR"; //---Funcion Constructor ----------- $sClass .=" function $_Clase("; $sAux=''; //genero los parametros constructores default for($i = 0; $i < count($_Propiedades); $i++) { if ($_Propiedades[$i]['KEY']!='') { $sAux .='$'.$_Propiedades[$i]['NOMBRE']."=".getStringDefaultTipo($_Propiedades[$i]['TIPO']).","; } } $sClass .=removeLastChar($sAux,',').") { $sCR"; $sClass .="$sCR"; $sClass .=' $this->_entidad_base = '."$sComaSimple$_Tabla$sComaSimple; $sCR"; $sClass .=' $this->_condb = $_SESSION["ConDB"];'.$sCR; $sClass .="$sCR"; //--- Array de Propiedades inicial (constructor) --- $sAux=''; $sClass .=' $this->_prop = array('.$sCR; for($i = 0; $i < count($_Propiedades); $i++) { //'COUNTRY_ID'=>array( $sAux .=" $sComaSimple".$_Propiedades[$i]['CAMPO']."$sComaSimple=>array( $sCR"; $sAux .=" 'VALUE'=>".getStringDefaultTipo($_Propiedades[$i]['TIPO']).", $sCR"; $sAux .=" 'TIPO'=>'{$_Propiedades[$i]['TIPO']}', $sCR"; $sAux .=" 'NULO'=>'{$_Propiedades[$i]['NULO']}', $sCR"; $sAux .=" 'KEY'=>'{$_Propiedades[$i]['KEY']}' $sCR"; $sAux .=" ),$sCR"; } $sClass .=removeLastChar($sAux,",").' );'.$sCR; //--- Verifico si pasan parametros en el constructor --- $sClass .=' if('; $sAux=''; for($i = 0; $i < count($_Propiedades); $i++) { if ($_Propiedades[$i]['KEY']!='') { $sAux .=' $'.$_Propiedades[$i]['NOMBRE']."!=".getStringDefaultTipo($_Propiedades[$i]['TIPO']); $sAux .=' &&'; } } $sAux=removeLastChar($sAux,'&'); $sAux=removeLastChar($sAux,'&'); $sClass .=$sAux.") { $sCR"; $sClass .=' $this->getByID('; $sAux=''; for($i = 0; $i < count($_Propiedades); $i++) { if ($_Propiedades[$i]['KEY']!='') { $sAux .='$'.$_Propiedades[$i]['NOMBRE'].","; } } $sClass .=removeLastChar($sAux,',').');'.$sCR; $sClass .=' } //if'.$sCR; $sClass .=" } //end function $sCR"; $sClass .="$sCR"; // --- Function GetByID ----------------------------- $sClass .=' function getByID('; $sAux=''; for($i = 0; $i < count($_Propiedades); $i++) { if ($_Propiedades[$i]['KEY']!='') { $sAux .='$'.$_Propiedades[$i]['NOMBRE'].","; } } $sClass .=removeLastChar($sAux,',').') {'.$sCR; $sClass .="$sCR"; $sAux=''; for($i = 0; $i < count($_Propiedades); $i++) { if ($_Propiedades[$i]['KEY']!='') { $sClass .=' $this->_prop['.$sComaSimple.$_Propiedades[$i]['CAMPO'].$sComaSimple."]['VALUE']=$".$_Propiedades[$i]['NOMBRE'].";$sCR"; } } $sClass .="$sCR"; $sClass .=' $sqlHelper = new gODataManager($this->_condb);'.$sCR; $sClass .=' $rs = $sqlHelper->spGetById($this->_entidad_base,$this->_prop);'.$sCR; $sClass .=' $this->_bindProps($rs->_array[0]);'.$sCR; $sClass .=' } //end function getByID'.$sCR; // --- Fin Function GetByID ----------------------------- $sClass .="$sCR"; // --- Function Persistir ----------------------------- $sClass .=' function Persistir(){ '.$sCR; $sClass .=' $this->_bindValues();'.$sCR; $sClass .=' $sqlHelper = new gODataManager($this->_condb);'.$sCR; $sClass .=' $rc= $sqlHelper->spPersistir($this->_entidad_base,$this->_prop);'.$sCR; $sClass .=' return $rc;'.$sCR; $sClass .=' } //end function Persistir'.$sCR; // --- Fin Function Persistir ----------------------------- $sClass .="$sCR"; // --- Function Eliminar ----------------------------- $sClass .=' function Eliminar(){ '.$sCR; $sClass .=' $this->_bindValues();'.$sCR; $sClass .=' $sqlHelper = new gODataManager($this->_condb);'.$sCR; $sClass .=' $sqlHelper->spDelete($this->_entidad_base,$this->_prop);'.$sCR; $sClass .=' } //end function Eliminar'.$sCR; // --- Fin Function Eliminar ----------------------------- $sClass .="$sCR"; // --- Function _bindProps ----------------------------- $sClass .=' function _bindProps($arrayProps){'.$sCR; $sClass .=' foreach ($arrayProps as $key => $value){'.$sCR; $sClass .=' switch($key){'.$sCR; for($i = 0; $i < count($_Propiedades); $i++) { $sClass .=' case '.$sComaSimple.$_Propiedades[$i]['CAMPO'].$sComaSimple.':'.$sCR; $sClass .=' $this->'.$_Propiedades[$i]['NOMBRE'].'=$value;'.$sCR; $sClass .=' break;'.$sCR; } $sClass .=' }'.$sCR; $sClass .=' }'.$sCR; $sClass .=' if (array_key_exists($key,$this->_prop)){'.$sCR; $sClass .=' $this->_prop[$key]["VALUE"] = $value;'.$sCR; $sClass .=' }'.$sCR; $sClass .=' } //end function _bindProps'.$sCR; // --- Fin Function _bindProps ----------------------------- $sClass .="$sCR"; // --- Function _bindValues ----------------------------- $sClass .=' function _bindValues(){'.$sCR; for($i = 0; $i < count($_Propiedades); $i++) { $sClass .=' $this->_prop['.$sComaSimple.$_Propiedades[$i]['CAMPO'].$sComaSimple."]['VALUE'] = ".'$this->'.$_Propiedades[$i]['NOMBRE'].';'.$sCR; } $sClass .=' } //end function _bindValues'.$sCR; // --- Fin Function _bindValues ----------------------------- $sClass .="$sCR"; $sClass .='} //end class '.$_Clase.$sCR; //=== Fin Class Base ======================== $sClass .="$sCR"; //=== Class Collection ====================== $sClass .="class $_Collection { $sCR"; $sClass .="$sCR"; $sClass .=' // variables internas'.$sCR; $sClass .=' var $_item_class;'.$sCR; $sClass .=' var $_entidad_base;'.$sCR; $sClass .=' var $_prop;'.$sCR; $sClass .=' var $_condb; // Conexion a la base de datos '.$sCR; $sClass .="$sCR"; $sClass .="$sCR"; $sClass .=" function $_Collection() { $sCR"; $sClass .=' $this->_item_class = new '.$_Clase.'();'.$sCR; $sClass .=' $this->_entidad_base = $this->_item_class->_entidad_base;'.$sCR; $sClass .=' $this->_condb = $_SESSION["ConDB"];'.$sCR; $sClass .=' }'.$sCR; $sClass .="$sCR"; $sClass .=" function GetAll() { $sCR"; $sClass .=' $sqlHelper = new gODataManager($this->_condb);'.$sCR; $sClass .=' $rs = $sqlHelper->spGetAll($this->_entidad_base);'.$sCR; $sClass .=' return $rs;'.$sCR; $sClass .=' }'.$sCR; $sClass .='} //end class '.$_Collection.$sCR; //=== Fin Class Collection ====================== $sClass .="?>$sCR"; return $sClass; }