";} if($extra != '' )$extra='AND '.$extra; $rsa=$conn->GetRow("SELECT id,ordering FROM #__$table WHERE id = ".$cid[0]." $extra"); $order=$rsa['ordering']; $rsa=$conn->GetRow("SELECT id,ordering FROM #__$table WHERE ordering $sortsym $order $extra ORDER BY ordering $sort"); $cid1=$cid[0]; $cid1_o=$order; $cid2=$rsa['id']; $cid2_o=$rsa['ordering']; $conn->Execute("UPDATE #__$table SET ordering = $cid2_o WHERE id = $cid1"); $conn->Execute("UPDATE #__$table SET ordering = $cid1_o WHERE id = $cid2"); } function auto_category($table,$id,$count) // automatically handles the category { if(!$this->section)return; global $conn; $row = $conn->GetRow("SELECT catid FROM #__$table WHERE id = $id"); change_val("categories",$row['catid'] ,"count",$count); } // all take cid[] from global function orderup($table,$extra='') { $this->order($table,"up",$extra); } function orderdown($table,$and='') { $this->order($table,"down",$extra); } function neworder($table,$extra='') { global $conn; if($extra!='')$extra = 'WHERE '.$extra; $rs=$conn->Execute("SELECT id,ordering FROM #__$table $extra ORDER BY ordering DESC"); $last = $rs->RecordCount(); if($rs && $last>0 && $rsa=$rs->GetArray() ) { //if reordering is needed $reorder_required=false; for($i=1;$i<$last;$i++) { if($rsa[$i]['ordering']==$rsa[$i-1]['ordering']) { $reorder_required=true; } } if($reorder_required){ echo "reorder"; $new_order=$last; for($i=0;$i<$last;$i++) { $conn->Execute("UPDATE #__$table SET ordering=$new_order WHERE id=".$rsa[$i]['id']); $new_order--; } return $last+1; } return $rsa[0]['ordering']+1; } return 1; } function insert($table,$prefix) { global $conn,$lm_prefix; $table = $lm_prefix.$table; $table_meta=$conn->MetaColumns($table); $cols=""; $vals=""; $first_loop=true; foreach($table_meta as $key=>$meta) { $gvar=$prefix.$key; global $$gvar; if(isset($$gvar)) { if($key=="id" && $$gvar=="")continue; if(!$first_loop) { $cols.=","; $vals.=","; }else { $first_loop=false; } $cols.=$key; if(strstr($meta->type,"text") || strstr($meta->type,"char")) { $vals.="'".$$gvar."'"; } else { $vals.=$$gvar; } } } //Now create the SQL $sql="INSERT INTO $table ($cols) VALUES ($vals)"; $conn->Execute($sql); } function update($table,$prefix,$condition=false) { global $conn,$lm_prefix; $table = $lm_prefix.$table; $table_meta=$conn->MetaColumns($table); $set=""; $first_loop=true; foreach($table_meta as $key=>$meta) { $gvar=$prefix.$key; global $$gvar; if(isset($$gvar)) { if($key=="id" && !$condition)continue; if(!$first_loop) { $set.=","; }else { $first_loop=false; } if(strstr($meta->type,"text") || strstr($meta->type,"char")) { $set.=$key.'='."'".$$gvar."'"; } else { $set.=$key.'='.$$gvar; } } } //Now create the SQL if(!$condition) { $tid=$prefix."id"; global $$tid; $condition= "id=".$$tid; } $sql="UPDATE $table SET $set WHERE $condition"; $conn->Execute($sql); } function reorder($table,$extra) { global $conn,$cid,$oid,$ooid; for($i=0;$iis_published($table,$var)) { $conn->Execute("UPDATE #__$table SET published = 1 WHERE id = $var "); $this->auto_category($table,$var,1); } } } function unpublish($table) { global $conn,$cid; foreach($cid as $var){ if($this->is_published($table,$var)) { $conn->Execute("UPDATE #__$table SET published = 0 WHERE id = $var "); $this->auto_category($table,$var,-1); } } } function archive($table) { global $conn,$cid; foreach($cid as $var){ $conn->Execute("UPDATE #__$table SET published = 4 WHERE id = $var "); if($this->is_published($table,$var)) { $this->auto_category($table,$var,-1); } } } function unarchive($table) { global $conn,$cid; foreach($cid as $var){ $conn->Execute("UPDATE #__$table SET published = 0 WHERE id = $var "); } } function delete($table,$extra='') { global $conn,$cid; if($extra != '' )$extra='AND '.$extra; foreach($cid as $var){ if($this->is_published($table,$var,$extra)) { $this->auto_category($table,$var,-1); } $conn->Execute("DELETE FROM #__$table WHERE id = $var $extra"); } } function check_category($table,$id,$new_cat,$old_cat) { if($new_cat != $old_cat ) { if($this->is_published($table,$id)) { change_val("categories",$new_cat,"count",1); change_val("categories",$old_cat,"count",-1); } } } function position_list($table,$lm_title,$where="") { global $conn,$cid; $rs=$conn->Execute("SELECT $lm_title,ordering,position FROM #__$table $where ORDER BY ordering ASC"); $pos_array[]=array("name"=>"First","value"=>'first'); if($rs && $rs->RecordCount()>0 && $rsa=$rs->GetArray() ) { foreach($rsa as $row){$pos_array[]=array("name"=>" ".$row['ordering']." : ".$row[$lm_title]." (".$row['position'].")","value"=>$row['ordering']); } } $pos_array[]=array("name"=>"Last","value"=>'last'); return $pos_array; } /*some general functions*/ function data_table($table,$redir='',$extra='',$section=false) { global $task,$limbocore; if($section!=false) { $this->section=true; } switch($task) { case "orderup": $this->orderup($table,$extra); break; case "orderdown": $this->orderdown($table,$extra); break; case "publish": $this->publish($table); break; case "unpublish": $this->unpublish($table); break; case "archive": $this->archive($table); break; case "unarchive": $this->unarchive($table); break; case "delete": $this->delete($table,$extra); break; case "reorder": $this->reorder($table,$extra); break; default : break; } if($redir!='')$limbocore->redir($redir); } } ?>