DS_SQL; if( trim($this->DS_Arguments) != "" ){ $Args = explode(",", $this->DS_Arguments); if( is_array($Args) ){ foreach($Args as $k => $Arg){ if( ($ArgItem = trim($Arg)) != "" ){ $ArgItemVal = explode("=", $ArgItem); if( !isset($DS_Args[substr($ArgItemVal[0],1)]) ){ return "*** MISSING DS Arg: '" . $ArgItemVal[0] . "'"; } // echo "\$DS_ARGS[" . substr($ArgItemVal[0],1) . "]\t= " . $ArgItemVal[1] . ";\n"; $T = str_replace($ArgItemVal[0], $DS_Args[substr($ArgItemVal[0],1)], $T); } } } } $SourceSQL = explode("\n", $T); $TmpSQL = "SELECT COUNT(*) AS DS_SIZE "; foreach($SourceSQL as $k => $clause){ $cc = explode(' ', trim($clause) ); switch( strtoupper($cc[0]) ){ case "SELECT": // case "WHERE": case "ORDER": // case "GROUP": case "LIMIT": break; default: $TmpSQL .= $clause . " "; } } // echo ""; $Data = GetArray($DB, $TmpSQL); if( sizeof($Data) > 1 ){ return sizeof($Data); }else{ return $Data[0][DS_SIZE]; } } // GetNumRows() // --------------------------------------------------- // Constructor // --------------------------------------------------- function WEB_TEMPLATE_DATA_SOURCE($DSID=""){ global $DB; $DSID = intval($DSID); if( $DSID != "" ){ $SQL = "SELECT * FROM WEB_TEMPLATE_DATA_SOURCE WHERE DSID=" . intval($DSID) ; $Data = GetObject($DB, $SQL); $this->DSID = $Data["DSID"]; $this->DS_Name = $Data["DS_Name"]; $this->DS_Description = $Data["DS_Description"]; $this->DS_SQL = $Data["DS_SQL"]; $this->DS_Arguments = $Data["DS_Arguments"]; $this->DS_Results = $Data["DS_Results"]; $this->DS_Size = 0 ; }else{ $this->DSID = ""; $this->DS_Name = ""; $this->DS_Description = ""; $this->DS_SQL = ""; $this->DS_Arguments = ""; $this->DS_Results = ""; $this->DS_Size = 0 ; } } // function WEB_TEMPLATE_DATA_SOURCE($DSID); function WEB_TEMPLATE_DATA_SOURCE_LOAD_BY_NAME($DS_Name=""){ global $DB; if( $DS_Name != "" ){ $SQL = "SELECT * FROM WEB_TEMPLATE_DATA_SOURCE WHERE DS_Name=" . QuoteAndSlashes($DS_Name) ; $Data = GetObject($DB, $SQL); $this->DSID = $Data["DSID"]; $this->DS_Name = $Data["DS_Name"]; $this->DS_Description = $Data["DS_Description"]; $this->DS_SQL = $Data["DS_SQL"]; $this->DS_Arguments = $Data["DS_Arguments"]; $this->DS_Results = $Data["DS_Results"]; $this->DS_Size = 0 ; }else{ $this->DSID = ""; $this->DS_Name = ""; $this->DS_Description = ""; $this->DS_SQL = ""; $this->DS_Arguments = ""; $this->DS_Results = ""; $this->DS_Size = 0 ; } } // function WEB_TEMPLATE_DATA_SOURCE($DSID); function WEB_TEMPLATE_DATA_SOURCE_GETSO_FIELD($SOField){ if( strstr($this->DS_Results, "$" . $SOField . "\n") ){ return $SOField; }else{ $RF = explode("\n", $this->DS_Results); return substr(trim($RF[0]), 1); } } // WEB_TEMPLATE_DATA_SOURCE_GETSO_FIELD($SOField) function WEB_TEMPLATE_DATA_SOURCE_ITERATOR($DS_Args, $TemplateName, $Evaluate=false, $UseCompiled=false, $Styles=false, $Globals=false){ global $DB; if( trim($this->DS_SQL) == "" ){ return "*** EMPTY SQL ***"; } $T = $this->DS_SQL; if( trim($this->DS_Arguments) != "" ){ $Args = explode(",", $this->DS_Arguments); if( is_array($Args) ){ foreach($Args as $k => $Arg){ if( ($ArgItem = trim($Arg)) != "" ){ $ArgItemVal = explode("=", $ArgItem); if( !isset($DS_Args[substr($ArgItemVal[0],1)]) ){ return "*** MISSING DS Arg: '" . $ArgItemVal[0] . "'"; } // echo "\$DS_ARGS[" . substr($ArgItemVal[0],1) . "]\t= " . $ArgItemVal[1] . ";\n"; $T = str_replace($ArgItemVal[0], $DS_Args[substr($ArgItemVal[0],1)], $T); } } } } // echo "\n"; $Data = GetArray($DB, $T); if( !$Data ){ // return "*** NO Result ***"; return ""; }else{ $DS_TEMPLATE = new TheTemplate(); $DS_TEMPLATE->LoadTemplate($TemplateName); // var_dump($DS_TEMPLATE); $Result = ""; $RowCnt = 0; foreach($Data as $key=>$DataRow){ unset($TemplateData); foreach($DataRow as $FldName => $FldVal ){ $TemplateData[$this->DS_Name .".". $FldName] = $FldVal ; } if( $Styles && is_array($Styles) && sizeof($Styles)>1 ){ $TemplateData['_ROW_STYLE_'] = $Styles[$RowCnt % 2]; $RowCnt++; }else{ $TemplateData['_ROW_STYLE_'] = ""; } if( $Globals && is_array($Globals) ){ foreach($Globals as $k=>$v){ $TemplateData[$k] = $v; } } // var_dump($TemplateData) ; $Result .= $DS_TEMPLATE->PrepareTemplate($TemplateData, $Evaluate, $UseCompiled); } return $Result; } } // function WEB_TEMPLATE_DATA_SOURCE($DSID); // --------------------------------------------------- // Update method // --------------------------------------------------- function WEB_TEMPLATE_DATA_SOURCE_PreUpdate($UsePost = true){ // perform PRE Update functions... } // WEB_TEMPLATE_DATA_SOURCE_PreUpdate() function WEB_TEMPLATE_DATA_SOURCE_PostUpdate($UsePost = true){ // perform POST Update functions... } // WEB_TEMPLATE_DATA_SOURCE_PostUpdate() function WEB_TEMPLATE_DATA_SOURCE_Update($UsePost = true){ global $DB; $this->WEB_TEMPLATE_DATA_SOURCE_PreUpdate($UsePost); if( $UsePost ){ $WEB_TEMPLATE_DATA_SOURCE_UpdateData = array( DS_Name => QuoteAndSlashes($_POST["DS_Name"]), DS_Description => QuoteAndSlashes($_POST["DS_Description"]), DS_SQL => QuoteAndSlashes($_POST["DS_SQL"]), DS_Arguments => QuoteAndSlashes($_POST["DS_Arguments"]), DS_Results => QuoteAndSlashes($_POST["DS_Results"]) ); $WhereClause = "DSID=" . $_POST["DSID"] ; DBUpdate($DB, $Tablename="WEB_TEMPLATE_DATA_SOURCE", $WEB_TEMPLATE_DATA_SOURCE_UpdateData, $WhereClause) ; $this->WEB_TEMPLATE_DATA_SOURCE($_POST["DSID"]); }else{ $WEB_TEMPLATE_DATA_SOURCE_UpdateData = array( DS_Name => QuoteAndSlashes($this->DS_Name), DS_Description => QuoteAndSlashes($this->DS_Description), DS_SQL => QuoteAndSlashes($this->DS_SQL), DS_Arguments => QuoteAndSlashes($this->DS_Arguments), DS_Results => QuoteAndSlashes($this->DS_Results) ); $WhereClause = "DSID=" . $this->DSID ; DBUpdate($DB, $Tablename="WEB_TEMPLATE_DATA_SOURCE", $WEB_TEMPLATE_DATA_SOURCE_UpdateData, $WhereClause ) ; } $this->WEB_TEMPLATE_DATA_SOURCE_PostUpdate($UsePost); } // WEB_TEMPLATE_DATA_SOURCE_Update($UsePost = true) // --------------------------------------------------- // Insert method // --------------------------------------------------- function WEB_TEMPLATE_DATA_SOURCE_PreInsert($UsePost = true){ // perform PRE insert functions... } // WEB_TEMPLATE_DATA_SOURCE_PreInsert() function WEB_TEMPLATE_DATA_SOURCE_PostInsert($UsePost = true){ // perform POST insert functions... } // WEB_TEMPLATE_DATA_SOURCE_PostInsert() function WEB_TEMPLATE_DATA_SOURCE_Insert($UsePost = true){ global $DB; $this->WEB_TEMPLATE_DATA_SOURCE_PreInsert($UsePost); if( $UsePost ){ $WEB_TEMPLATE_DATA_SOURCE_InsertData = array( DS_Name => QuoteAndSlashes($_POST["DS_Name"]), DS_Description => QuoteAndSlashes($_POST["DS_Description"]), DS_SQL => QuoteAndSlashes($_POST["DS_SQL"]), DS_Arguments => QuoteAndSlashes($_POST["DS_Arguments"]), DS_Results => QuoteAndSlashes($_POST["DS_Results"]) ); $this->DSID = DBInsert($DB, $Tablename="WEB_TEMPLATE_DATA_SOURCE", $WEB_TEMPLATE_DATA_SOURCE_InsertData) ; $this->WEB_TEMPLATE_DATA_SOURCE($this->DSID); }else{ $WEB_TEMPLATE_DATA_SOURCE_InsertData = array( DS_Name => QuoteAndSlashes($this->DS_Name), DS_Description => QuoteAndSlashes($this->DS_Description), DS_SQL => QuoteAndSlashes($this->DS_SQL), DS_Arguments => QuoteAndSlashes($this->DS_Arguments), DS_Results => QuoteAndSlashes($this->DS_Results) ); $this->DSID = DBInsert($DB, $Tablename="WEB_TEMPLATE_DATA_SOURCE", $WEB_TEMPLATE_DATA_SOURCE_InsertData) ; $this->WEB_TEMPLATE_DATA_SOURCE($this->DSID); } $this->WEB_TEMPLATE_DATA_SOURCE_PostInsert($UsePost); } // WEB_TEMPLATE_DATA_SOURCE_Insert($UsePost = true) // --------------------------------------------------- // Delete method // --------------------------------------------------- function WEB_TEMPLATE_DATA_SOURCE_PreDelete($UsePost = true){ // perform PRE delete functions... } // WEB_TEMPLATE_DATA_SOURCE_PreDelete() function WEB_TEMPLATE_DATA_SOURCE_PostDelete($UsePost = true){ // perform POST delete functions... } // WEB_TEMPLATE_DATA_SOURCE_PostDelete() function WEB_TEMPLATE_DATA_SOURCE_Delete($UsePost = true){ global $DB; $this->WEB_TEMPLATE_DATA_SOURCE_PreDelete($UsePost); if( $UsePost ){ $SQL = "DELETE FROM WEB_TEMPLATE_DATA_SOURCE WHERE DSID = " . intval($_POST["DSID"]) ; DBExec($DB, $SQL); }else{ $SQL = "DELETE FROM WEB_TEMPLATE_DATA_SOURCE WHERE DSID = " . intval($this->DSID) ; DBExec($DB, $SQL); } $this->WEB_TEMPLATE_DATA_SOURCE_PostDelete($UsePost); $this->DSID = ""; $this->DS_Name = ""; $this->DS_Description = ""; $this->DS_SQL = ""; $this->DS_Arguments = ""; $this->DS_Results = ""; } // WEB_TEMPLATE_DATA_SOURCE_Delete($UsePost = true) // ------------------------- // User defined functions... // ------------------------- } // end class WEB_TEMPLATE_DATA_SOURCE ?>