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){
?>
}
function getNumberOfResultsSelectorGoLink($text){
if($this->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;
?> echo $text;?>
}
function getNumberOfResultsSelectorGoLinkAjax($text){
$page=$this->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";
?> echo $text;?>
}
function draw(){
if($this->ajax){
$this->drawAjax();
return;
}
?>
}
function drawAjax(){
?>
?>
?>
}
function getNavigationBar(){
if($this->ajax){
$this->getAjaxNavigationBar();
return;
}
if (($this->interval==0)||($this->interval=="")) return;
$prev=$this->hasFirstPage();
$next=$this->hasLastPage();
?>navTableClass==""?"":(" class=\"".$this->navTableClass."\""); ?>>| getNavWidth() ?>>
if ($prev){
echo $this->getFirstPage();
echo " ";
echo $this->getPreviousPage();
echo " ";
}
if ($this->variance!=0){
echo $this->getNavNumbers();
}
if ($next){
echo $this->getNextPage();
echo " ";
echo $this->getLastPage();
echo " ";
}
?> |
}
function getAjaxNavigationBar(){
if (($this->interval==0)||($this->interval=="")){
?>
?>
return;
}
?>
$prev=$this->hasFirstPage();
$next=$this->hasLastPage();
?>navTableClass==""?"":(" class=\"".$this->navTableClass."\""); ?>>| getNavWidth() ?>>
if ($prev){
echo $this->getFirstPageAjax();
echo " ";
echo $this->getPreviousPageAjax();
echo " ";
}
if ($this->variance!=0){
echo $this->getNavNumbersAjax();
}
if ($next){
echo $this->getNextPageAjax();
echo " ";
echo $this->getLastPageAjax();
echo " ";
}
?> |
?>
}
function drawAjaxHeadHtml(){
?>
}
function getParamStringForSort(){
$ret="change=order";
$ret.="&dbuser=".$this->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;
}
}
?>
function changeBack($string){
while(strpos($string,"<")!==false)
$string=str_replace("<","<",$string);
while(strpos($string,">")!==false)
$string=str_replace(">",">",$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##";
}
?>