ConstructInterval($query,$interval); else $this->Construct($query); $this->nowpage=$this->clean($_SERVER['REQUEST_URI']); $rows = mysql_fetch_assoc($this->result); $this->columns = array_keys($rows); } function ConstructInterval($query,$interval){ $this->from=0; $this->to=$interval; $this->interval=$interval; $this->query=$query; $from=false; if ($_GET['qfrom']!=''){ $this->from=$_GET['qfrom']; $this->to=$this->from+$interval; $from=true; } if ($_GET['qorder']==""){ $this->result=mysql_query("select SQL_CALC_FOUND_ROWS * from(".$query.") as x".($from?" limit ".($this->from.",".$interval):"")); } else{ $this->result=mysql_query("select SQL_CALC_FOUND_ROWS * from(".$query." order by ".$_GET['qorder']." ".$_GET['qdirection'].") as x".($from?" limit ".($this->from.",".$interval):"")); $this->order=$_GET['qorder']; $this->direction=$_GET['qdirection']; } $this->totalsize=mysql_result(mysql_query("SELECT FOUND_ROWS()"),0,'FOUND_ROWS()'); } function Construct($query){ $this->from=0; $this->query=$query; if ($_GET['qorder']==""){ $this->result=mysql_query($query); } else{ $this->result=mysql_query($query." order by ".$_GET['qorder']." ".$_GET['qdirection']); $this->order=$_GET['qorder']; $this->direction=$_GET['qdirection']; } $this->to=mysql_num_rows($this->result); $this->totalsize=mysql_num_rows($this->result); } function addDisplayField($name,$display,$sizeOfField=50){ $this->fields[]=$name; $this->fieldstext[]=""; $this->displayfields[]=$display; $this->sizefields[]=$sizeOfField; $this->typefields[]="normal"; } function addSpecialDisplayField($name,$display,$text,$sizeOfField=50){ $this->fields[]=$name; $this->fieldstext[]=$text; $this->displayfields[]=$display; $this->sizefields[]=$sizeOfField; $this->typefields[]="special"; } function setTableClassName($name){ $this->tableclass=$name; } function setNavigationTableClassName($name){ $this->navTableClass=$name; } function setSortLinkClassName($name){ $this->sortLinksClass=$name; } function setNavigationLinkClass($name){ $this->navLinksClass=$name; } function setSortASCPicture($loc){ $this->sortASCpic=$loc; } function setSortDESCPicture($loc){ $this->sortDESCpic=$loc; } function setLeftText($text){ $this->leftText=$text; } function setRightText($text){ $this->rightText=$text; } function setLeftJumpText($text){ $this->leftJumpText=$text; } function setRightJumpText($text){ $this->rightJumpText=$text; } function setLeftImage($text){ $this->leftImage=$text; } function setRightImage($text){ $this->rightImage=$text; } function setLeftJumpImage($text){ $this->leftJumpImage=$text; } function setRightJumpImage($text){ $this->rightJumpImage=$text; } function enableNavigationalNumbers($variance){ $this->variance=$variance; } function enableAjax($database_host,$database_user,$database_password,$database_name){ $this->dbuser=$database_user; $this->dbpassword=$database_password; $this->dbhost=$database_host; $this->dbname=$database_name; $this->ajax=true; } function setAjaxLoadingText($text){ $this->ajaxLoadingText=$text; } function getNumberOfResultsPerPageSelector($interval,$maximum){ ?> ajax){ $this->getNumberOfResultsSelectorGoLinkAjax($text); return; } $page=str_replace("&qfrom=".$_GET['qfrom'],"",$this->nowpage); $page=str_replace("&qinterval=".$_GET['qinterval'],"",$page); $page=str_replace("?qfrom=".$_GET['qfrom'],"",$page); $page=str_replace("?qinterval=".$_GET['qinterval'],"",$page); $addchar=strpos($page,"?")!==false?"&":"?"; $page.=$addchar."qinterval='+document.getElementById('queselect').value"; if ($this->order!=""){ $page.="+'&qorder=".$this->order."&qdirection=".$this->direction."'"; } $page="'".$page; ?>getParamStringForSort(); $page=str_replace("&qfrom=".$_GET['qfrom'],"",$page); $page=str_replace("&qinterval=".$_GET['qinterval'],"",$page); $page=str_replace("?qfrom=".$_GET['qfrom'],"",$page); $page=str_replace("?qinterval=".$_GET['qinterval'],"",$page); $page="'".$page."&qinterval='+document.getElementById('queselect').value"; $page.="+'&qorder='+qorderkeep+'&qdirection='+qdirectionkeep"; ?>ajax){ $this->drawAjax(); return; } ?>tableclass!="") echo " class='".$this->tableclass."'"; ?>>fields);$r++){ ?>sizefields[$r]; ?>> order==$this->fields[$r]){ if ($this->direction=="ASC") $addon="qorder=".$this->fields[$r]."&qdirection=DESC"; else $addon=""; } else $addon="qorder=".$this->fields[$r]."&qdirection=ASC"; ?> getLinkWithAddon($addon)."\""; echo $this->sortLinksClass!=""?(" class='".$this->sortLinksClass."'"):""; ?>> displayfields[$r]; ?> order==$this->fields[$r]){ if (($this->direction=="ASC")&&($this->sortASCpic!="")){ ?> sortASCpic ?>> direction=="DESC")&&($this->sortDESCpic!="")){ ?> sortDESCpic ?>> to)&&($rresult)));$r++){ ?>fields);$k++){ ?>getField($r,$k); ?>tableclass!="") echo " class='".$this->tableclass."'"; ?>>fields);$r++){ ?>sizefields[$r]; ?>> getParamStringForSort(); $qtext=""; $qtext="'".$this->fields[$r]."',"; if ($this->order==$this->fields[$r]){ if ($this->direction=="ASC"){ $addon.="&qorder=".$this->fields[$r]."&qdirection=DESC"; $qtext.="'DESC'"; } else{ $addon.=""; $qtext.="''"; } } else{ $addon.="&qorder=".$this->fields[$r]."&qdirection=ASC"; $qtext.="'ASC'"; } ?> sortLinksClass!=""?(" class='".$this->sortLinksClass."'"):""; ?>> displayfields[$r]; ?> order==$this->fields[$r]){ if (($this->direction=="ASC")&&($this->sortASCpic!="")){ ?> sortASCpic ?>> direction=="DESC")&&($this->sortDESCpic!="")){ ?> sortDESCpic ?>> to)&&($rresult)));$r++){ ?>fields);$k++){ ?>getField($r,$k); ?>ajax){ $this->getAjaxNavigationBar(); return; } if (($this->interval==0)||($this->interval=="")) return; $prev=$this->hasFirstPage(); $next=$this->hasLastPage(); ?>navTableClass==""?"":(" class=\"".$this->navTableClass."\""); ?>>getNavWidth() ?>>getFirstPage(); echo " "; echo $this->getPreviousPage(); echo " "; } if ($this->variance!=0){ echo $this->getNavNumbers(); } if ($next){ echo $this->getNextPage(); echo " "; echo $this->getLastPage(); echo " "; } ?>interval==0)||($this->interval=="")){ ?>hasFirstPage(); $next=$this->hasLastPage(); ?>navTableClass==""?"":(" class=\"".$this->navTableClass."\""); ?>>getNavWidth() ?>>getFirstPageAjax(); echo " "; echo $this->getPreviousPageAjax(); echo " "; } if ($this->variance!=0){ echo $this->getNavNumbersAjax(); } if ($next){ echo $this->getNextPageAjax(); echo " "; echo $this->getLastPageAjax(); echo " "; } ?> dbuser; $ret.="&dbpassword=".$this->dbpassword; $ret.="&dbhost=".$this->dbhost; $ret.="&dbname=".$this->dbname; $ret.="&interval=".$this->interval; $ret.="&query=".$this->query; $ret.="&tableclass=".$this->tableclass; $ret.="&navTableClass=".$this->navTableClass; $ret.="&navLinkClass=".$this->navLinksClass; $ret.="&sortLinkClass=".$this->sortLinksClass; $ret.="&sortASCpic=".$this->sortASCpic; $ret.="&sortDESCpic=".$this->sortDESCpic; $ret.="&leftText=".$this->leftText; $ret.="&leftJumpText=".$this->leftJumpText; $ret.="&rightText=".$this->rightText; $ret.="&rightJumpText=".$this->rightJumpText; $ret.="&leftImage=".$this->leftImage; $ret.="&leftJumpImage=".$this->leftJumpImage; $ret.="&rightImage=".$this->rightImage; $ret.="&rightJumpImage=".$this->rightJumpImage; $ret.="&variance=".$this->variance; $ret.="&fields=".count($this->fields); for ($r=0;$rfields);$r++){ $ret.="&field".$r."=".$this->fields[$r]; $ret.="&fieldstext".$r."=".$this->fieldstext[$r]; $ret.="&displayfields".$r."=".$this->displayfields[$r]; $ret.="&sizefields".$r."=".$this->sizefields[$r]; $ret.="&typefields".$r."=".$this->typefields[$r]; } return $this->replaceHTMLChars($ret); } function replaceHTMLChars($string){ while(strpos($string,"\"")!==false) $string=str_replace("\"","d_o_u_b_l_e_q",$string); while(strpos($string,"'")!==false) $string=str_replace("'","s_i_n_g_l_e_q",$string); while(strpos($string,"<")!==false) $string=str_replace("<","&_l_t_;",$string); while(strpos($string,">")!==false) $string=str_replace(">","&_g_t_;",$string); while(strpos($string,"<")!==false) $string=str_replace("<","<",$string); while(strpos($string,">")!==false) $string=str_replace(">",">",$string); return $string; } function getField($row,$field){ if ($this->typefields[$field]=="normal") return mysql_result($this->result,$row,$this->fields[$field]); $columns=$this->columns; $text=$this->fieldstext[$field]; for ($r=0;$rresult,$row,$columns[$r]),$text); } return $text; } function clean($text){ $r=strpos($text,"qorder="); if ($r){ $rem="qorder=".$_GET['qorder']; $text=str_replace($rem,"",$text); } $r=strpos($text,"qdirection="); if ($r){ $rem="qdirection=".$_GET['qdirection']; $text=str_replace($rem,"",$text); } $r=strpos($text,"qfrom="); if ($r){ $rem="qfrom=".$_GET['qfrom']; $text=str_replace($rem,"",$text); } while(strpos($text,"&&")) $text=str_replace("&&","&",$text); if ($text[strlen($text)-1]=="&") $text=substr($text,0,strlen($text)-1); return $text; } function getLinkWithAddon($addon){ if (!strpos($this->nowpage,"?")) return $this->nowpage."?".$addon; return $this->nowpage."&".$addon; } function hasFirstPage(){ return $this->from!=0; } function hasLastPage(){ return $this->from<$this->totalsize-$this->interval; } function getLastPage(){ return "getLastLink()."\"".($this->navLinksClass!=''?(" class='".$this->navLinksClass."'"):"")." >".($this->rightJumpImage!=""?"rightJumpImage."\">":$this->rightJumpText).""; } function getLastPageAjax(){ return "getLastLinkAjax()."')\"".($this->navLinksClass!=''?(" class='".$this->navLinksClass."'"):"")." >".($this->rightJumpImage!=""?"rightJumpImage."\">":$this->rightJumpText).""; } function getFirstPage(){ return "getFirstLink()."\"".($this->navLinksClass!=''?(" class='".$this->navLinksClass."'"):"")." >".($this->leftJumpImage!=""?"leftJumpImage."\">":$this->leftJumpText).""; } function getFirstPageAjax(){ return "getFirstLinkAjax()."')\"".($this->navLinksClass!=''?(" class='".$this->navLinksClass."'"):"")." >".($this->leftJumpImage!=""?"leftJumpImage."\">":$this->leftJumpText).""; } function getPreviousPage(){ return "getPreviousLink()."\"".($this->navLinksClass!=''?(" class='".$this->navLinksClass."'"):"")." >".($this->leftImage!=""?"leftImage."\">":$this->leftText).""; } function getPreviousPageAjax(){ return "getPreviousLinkAjax()."')\"".($this->navLinksClass!=''?(" class='".$this->navLinksClass."'"):"")." >".($this->leftImage!=""?"leftImage."\">":$this->leftText).""; } function getNextPage(){ return "getNextLink()."\"".($this->navLinksClass!=''?(" class='".$this->navLinksClass."'"):"")." >".($this->rightImage!=""?"rightImage."\">":$this->rightText).""; } function getNextPageAjax(){ return "getNextLinkAjax()."')\"".($this->navLinksClass!=''?(" class='".$this->navLinksClass."'"):"")." >".($this->rightImage!=""?"rightImage."\">":$this->rightText).""; } function getNextLink(){ $l=$this->nowpage; $fchar=strpos($this->nowpage,"?")?"&":"?"; if ($this->order!=""){ $l.=$fchar."qorder=".$this->order; $fchar="&"; $l.=$fchar."qdirection=".$this->direction; $fchar="&"; } $l.=$fchar."qfrom=".($this->from+$this->interval); return $l; } function getNextLinkAjax(){ $l=$this->getParamStringForSort(); $fchar="&"; if ($this->order!=""){ $l.=$fchar."qorder=".$this->order; $l.=$fchar."qdirection=".$this->direction; } $l.=$fchar."qfrom=".($this->from+$this->interval); return $l; } function getLastLink(){ $l=$this->nowpage; $fchar=strpos($this->nowpage,"?")?"&":"?"; if ($this->order!=""){ $l.=$fchar."qorder=".$this->order; $fchar="&"; $l.=$fchar."qdirection=".$this->direction; $fchar="&"; } $z=$this->from; $r=$this->totalsize; while($z<$r) $z+=$this->interval; $z-=$this->interval; $l.=$fchar."qfrom=".($z); return $l; } function getLastLinkAjax(){ $l=$this->getParamStringForSort(); $fchar="&"; if ($this->order!=""){ $l.=$fchar."qorder=".$this->order; $l.=$fchar."qdirection=".$this->direction; } $z=$this->from; $r=$this->totalsize; while($z<$r) $z+=$this->interval; $z-=$this->interval; $l.=$fchar."qfrom=".($z); return $l; } function getPreviousLink(){ $l=$this->nowpage; $fchar=strpos($this->nowpage,"?")?"&":"?"; if ($this->order!=""){ $l.=$fchar."qorder=".$this->order; $fchar="&"; $l.=$fchar."qdirection=".$this->direction; $fchar="&"; } $l.=$fchar."qfrom=".($this->from-$this->interval); return $l; } function getPreviousLinkAjax(){ $l=$this->getParamStringForSort(); $fchar="&"; if ($this->order!=""){ $l.=$fchar."qorder=".$this->order; $l.=$fchar."qdirection=".$this->direction; } $l.=$fchar."qfrom=".($this->from-$this->interval); return $l; } function getFirstLink(){ $l=$this->nowpage; $fchar=strpos($this->nowpage,"?")?"&":"?"; if ($this->order!=""){ $l.=$fchar."qorder=".$this->order; $fchar="&"; $l.=$fchar."qdirection=".$this->direction; $fchar="&"; } return $l; } function getFirstLinkAjax(){ $l=$this->getParamStringForSort(); $fchar="&"; if ($this->order!=""){ $l.=$fchar."qorder=".$this->order; $l.=$fchar."qdirection=".$this->direction; } return $l; } function getNavLink($r){ $l=$this->nowpage; $fchar=strpos($this->nowpage,"?")?"&":"?"; if ($this->order!=""){ $l.=$fchar."qorder=".$this->order; $fchar="&"; $l.=$fchar."qdirection=".$this->direction; $fchar="&"; } $l.=$fchar."qfrom=".$r; return $l; } function getNavLinkAjax($r){ $l=$this->getParamStringForSort(); $fchar="&"; if ($this->order!=""){ $l.=$fchar."qorder=".$this->order; $l.=$fchar."qdirection=".$this->direction; } $l.=$fchar."qfrom=".$r; return $l; } function getNavNumbers(){ $nownumber=$this->getNowNumber(); $max=$this->getMaxPage(); for ($r=$nownumber-$this->variance;(($r<=$nownumber+$this->variance)&&($r<$max));$r++){ if ($r>=1){ if ($r==$nownumber) echo $r; else { $from=($r*$this->interval)-$this->interval; echo "getNavLink($from)."\"".($this->navLinksClass!=''?(" class='".$this->navLinksClass."'"):"")." >".$r.""; } echo " "; } } } function getNavNumbersAjax(){ $nownumber=$this->getNowNumber(); $max=$this->getMaxPage(); for ($r=$nownumber-$this->variance;(($r<=$nownumber+$this->variance)&&($r<$max));$r++){ if ($r>=1){ if ($r==$nownumber) echo $r; else { $from=($r*$this->interval)-$this->interval; echo "getNavLinkAjax($from)."')\"".($this->navLinksClass!=''?(" class='".$this->navLinksClass."'"):"")." >".$r.""; } echo " "; } } } function getNowNumber(){ return ($this->from/$this->interval)+1; } function getMaxPage(){ $r=0; $page=0; $to=$this->totalsize; while($r<$to){ $r+=$this->interval; $page++; } return $page+1; } function getNavWidth(){ $c=0; for ($r=0;$rsizefields);$r++){ $c+=$this->sizefields[$r]; } return $c; } } ?> ",$string); while(strpos($string,"&_l_t_;")!==false) $string=str_replace("&_l_t_;","<",$string); while(strpos($string,"&_g_t_;")!==false) $string=str_replace("&_g_t_;",">",$string); while(strpos($string,"d_o_u_b_l_e_q")!==false) $string=str_replace("d_o_u_b_l_e_q","\"",$string); while(strpos($string,"s_i_n_g_l_e_q")!==false) $string=str_replace("s_i_n_g_l_e_q","'",$string); return $string; } if ($_POST['qfrom']!="") $_GET['qfrom']=$_POST['qfrom']; if ($_POST['qinterval']!="") $_GET['qinterval']=$_POST['qinterval']; if ($_POST['change']=="order"){ mysql_connect(changeBack($_POST['dbhost']),changeBack($_POST['dbuser']),changeBack($_POST['dbpassword'])); mysql_select_db(changeBack($_POST['dbname'])); $_GET['qorder']=changeBack($_POST['qorder']); $_GET['qdirection']=changeBack($_POST['qdirection']); if (($_POST['interval']!="")&&($_POST['interval']!=0)) $rep= new Report(changeBack($_POST['query']),$_POST['interval']); else $rep= new Report(changeBack($_POST['query'])); if ($_POST['tableclass']!="") $rep->setTableClassName(changeBack($_POST['tableclass'])); if ($_POST['navTableClass']!="") $rep->setNavigationTableClassName(changeBack($_POST['navTableClass'])); if ($_POST['navLinkClass']!="") $rep->setNavigationLinkClass(changeBack($_POST['navLinkClass'])); if ($_POST['sortLinkClass']!="") $rep->setSortLinkClassName(changeBack($_POST['sortLinkClass'])); if ($_POST['sortASCpic']!="") $rep->setSortASCPicture(changeBack($_POST['sortASCpic'])); if ($_POST['sortDESCpic']!="") $rep->setSortDESCPicture(changeBack($_POST['sortDESCpic'])); if ($_POST['leftText']!="") $rep->setLeftText(changeBack($_POST['leftText'])); if ($_POST['leftJumpText']!="") $rep->setLeftJumpText(changeBack($_POST['leftJumpText'])); if ($_POST['rightText']!="") $rep->setRightText(changeBack($_POST['rightText'])); if ($_POST['rightJumpText']!="") $rep->setRightJumpText(changeBack($_POST['rightJumpText'])); if ($_POST['leftImage']!="") $rep->setLeftImage(changeBack($_POST['leftImage'])); if ($_POST['leftJumpImage']!="") $rep->setLeftJumpImage(changeBack($_POST['leftJumpImage'])); if ($_POST['rightImage']!="") $rep->setRightImage(changeBack($_POST['rightImage'])); if ($_POST['rightJumpImage']!="") $rep->setRightJumpImage(changeBack($_POST['rightJumpImage'])); if (($_POST['variance']!=="")&&($_POST['variance']!=0)) $rep->enableNavigationalNumbers($_POST['variance']); $fields=$_POST['fields']; for ($r=0;$r<$fields;$r++){ if ($_POST['typefields'.$r]=="normal") $rep->addDisplayField(changeBack($_POST['field'.$r]),changeBack($_POST['displayfields'.$r]),changeBack($_POST['sizefields'.$r])); else $rep->addSpecialDisplayField(changeBack($_POST['field'.$r]),changeBack($_POST['displayfields'.$r]),changeBack($_POST['fieldstext'.$r]),changeBack($_POST['sizefields'.$r])); } $rep->enableAjax(changeBack($_POST['dbhost']),changeBack($_POST['dbuser']),changeBack($_POST['dbpassword']),changeBack($_POST['dbname'])); $rep->draw(); echo "##24##next##"; if (($_POST['interval']!="")&&($_POST['interval']!=0)) $rep->getNavigationBar(); else if ($_POST['qinterval']!="") $rep->getNavigationBar(); else echo "##none##none##"; } ?>