| // +----------------------------------------------------------------------+ // // $Id: class.hw_vgal.php,v 1.00 2005/01/25 21:27:16 mansion Exp $ /** * hw_vgal * * This class allows for building an Gallery from given Folder. * The class is highly customizable by an Array of common Parameters * The HTML Output is not yet based on Templates * * @author Marian Feiler * @package hw_vgal */ class portrait{ /* PageIteraor */ /** * Standard PageNumber * Ex: 1 or 5 * @var int */ var $pageNo = 1; /** * Standard Folders per Page * Ex: 5 or 10 * @var int */ var $perPage = 1; /** * Maximum Pagenumbers to display * Ex: 5 or 10 * @var int */ var $pageLinks = 0; /* POST und GET Daten */ /** * The fetched Data from the $_GET - Variable * @var string */ var $gdata = array(); /* Verzeichnisse */ /** * Folder to begin the Search for other Folders with contents * Ex: ../gallery or gallery * @var string */ var $startverzeichnis = portraitPATH; /** * Folders that should not be displayed * Ex: array("Folder1", "Folder2"); * @var string */ var $ausgeschlossene_verzeichnisse = array(); /** * Max Number of shown Pics per Line * Ex: 2 or 3 * @var int */ var $bilder_in_Zeile = 4; /** * Suffix of Picturefiles * Ex: jpg or png or gif * @var string */ var $bild_endung = "jpg"; /** * possible suffix for videofiles * Ex: array("mpg", "wmv", "mpeg"); * @var string */ var $video_endungen = array("mpg", "wmv", "mpeg"); /** * Whether to show empty folders * Ex: true or false * @var boolean */ var $leere_anzeigen = false; /** * Whether to show Debugmessages * Ex: true or false * @var boolean */ var $debug = false; /** * Used for Pagebreak * @var object */ var $paginator; /** * Used for Pagebreak * @var object */ var $html; var $t; var $admin = 0; var $g; var $lang; var $bereich = "portrait"; /** * Constructor * fetches the given Params, the $_GET-Data * and updates the perPage and pageNo variables * * @param array $param Parameter für die Klasse * $params = array("bild_endung" => "jpg", * "video_endungen" => array("wmv", "mpeg"), * "bilder_in_zeile" => 2, * "leere_anzeigen" => false, * "pageNo" => 1, * "perPage" => 5, * "pageLinks" => 10, * "startverzeichnis" => "../portrait/", * "ausgeschlossene_verzeichnisse" => array("Test Galerie 2","Test Galerie 7") * ); * bild_endung = der Suffix der Bilddateien in den Ordnern * video_endungen = die erlaubten Videosuffixe als Array * bilder_in_zeile = Anzahl Bilder einer Zeile bei Galerie eines Ordners * leere_anzeigen = Leere Ordner anzeigen? Boolsche Werte true und false * pageNo = Welche Seite soll als erste angezeigt werden? 1 oder 2 oder ? * perPage = Wieviele Ordner auf einer Seite? 5 oder 10 oder 20 oder ? * pageLinks = Wieviele Seitenzahlen auf einmal? 5 oder 10 oder ? * startverzeichnis = in welchem Verzeichnis sind die Ordner? * ausgeschlossene_verzeichnisse = nicht anzeigen als Array * * @access public * @return bool */ function portrait($params = array()){ global $_GET, $_SESS; foreach($params as $key => $val){ $this->$key = $val; } $this->gdata = $_REQUEST; $this->g = $_REQUEST; if($this->gdata['perPage'] != "") $this->perPage = $this->gdata['perPage']; if($this->gdata['pageNo'] != "") $this->pageNo = $this->gdata['pageNo']; if($this->g[mode] != ""){ $this->save(); } $this->t = new Template; if($_SESS[user_name]) $this->admin = 1; if($this->g['do'] == "delpic"){ $res = @mysql_query("SELECT gal_id FROM portrait_pics WHERE id='".$this->g[pic]."'"); $out = @mysql_fetch_object($res); @mysql_query("DELETE FROM portrait_pics WHERE id='".$this->g[pic]."'"); @unlink(portraitPATH.$out->gal_id."/".$this->g[id].".jpg"); @unlink(portraitPATH.$out->gal_id."/thumbs/".$this->g[id].".jpg"); @unlink(portraitPATH.$out->gal_id."/mobile/".$this->g[id].".jpg"); } $this->html = ""; //echo $this->startverzeichnis; return true; } function start(){ global $lplus; if($this->admin == 1){ $lplus->ub .= "g[catid]."&art=".$this->g[art]."&pljob=editSerie\">neue Bilderserie"; $res = mysql_query("SELECT * FROM portrait_galleries ORDER BY galdate DESC"); $nums = mysql_num_rows($res); if($nums < 1){ $this->format = 1; return "Es gibt noch keine Bilderserien."; }else{ for($i = 0; $i < $nums; $i++){ $out = mysql_fetch_object($res); $ret .= "g[catid]."&art=".$this->g[art]."&pljob=showPics&serie=".$out->galid."\">".$out->galname_dt." g[catid]."&art=".$this->g[art]."&pljob=editSerie&serie=".$out->galid."\">\"Serie \"Serie
"; } } return $ret; $this->t->prepare("portrait_admin.html"); $this->t->set("CONTENT", $ret); }else{ if($this->g[serie] == ""){ $res = mysql_query("SELECT galid, galname_dt FROM portrait_galleries ORDER BY galdate DESC limit 0,1") or die(mysql_error()); $out = mysql_fetch_object($res); //echo $out->galid; $gal = $out->galid; $res = mysql_query("SELECT id, firstpic, picpos, format FROM portrait_pics WHERE firstpic='yes' AND gal_id='".$out->galid."'") or die(mysql_error()); }else{ $res = mysql_query("SELECT galid, galname_dt FROM portrait_galleries WHERE galid='".$this->g[serie]."' ORDER BY galdate DESC limit 0,1") or die(mysql_error()); $out = mysql_fetch_object($res); $gal = $out->galid; if($this->g[pic] != ""){ $res = mysql_query("SELECT id, firstpic, picpos, format FROM portrait_pics WHERE id='".$this->g[pic]."' AND gal_id='".$this->g[serie]."'") or die(mysql_error()); }else{ $res = mysql_query("SELECT id, firstpic, picpos, format FROM portrait_pics WHERE firstpic='yes' AND gal_id='".$this->g[serie]."'") or die(mysql_error()); } } $thenav = $this->nav($out->galid); $out = mysql_fetch_object($res); //echo $out->id; if($out->format == "hoch"){ $this->t->prepare("portrait,bild,hoch.html"); }else{ $this->t->prepare("portrait,bild,quer.html"); } echo $out->id; $this->t->set("BPIC", "id.".jpg\">"); if($this->g[pic] != ""){ $res = mysql_query("SELECT id, firstpic, picpos, format FROM portrait_pics WHERE id!='".$this->g[pic]."' AND gal_id='".$this->g[serie]."'") or die(mysql_error()); }else{ $res = mysql_query("SELECT id, firstpic, picpos, format FROM portrait_pics WHERE firstpic!='yes' AND gal_id='".$gal."'") or die(mysql_error()); } $nums = mysql_num_rows($res); for($i = 0; $i < 4; $i++){ $out = @mysql_fetch_object($res); if($out->id != ""){ $ret = "
g[catid]."&art=".$this->g[art]."&serie=".$gal."&pic=".$out->id."';\" title=\"".$out->bild_name."\" align=\"center\" valign=\"middle\" class=\"img\" onmouseover=\"this.id='overIMG'; this.style.cursor='pointer'\" onmouseout=\"this.id='IMG'; this.style.cursor='default'\">id.".jpg\" title=\"".$out->bildname."\" alt=\"".$out->bildname."\" border=\"0\" />
"; //$this->t->set("BILD".($i+1), "g[catid]."&art=".$this->g[art]."&serie=".$gal."&pic=".$out->id."\">id.".jpg\" border=\"0\">"); $this->t->set("BILD".($i+1), $ret); }else{ $this->t->set("BILD".($i+1), ""); } } } $this->t->set("BUTTONS", $thenav); return $this->t->tpl; } function nav($act){ global $front_url, $left_nav_aktiv, $left_nav_passiv, $right_nav_aktiv, $right_nav_passiv, $ueber_nav_aktiv, $ueber_nav_hover, $right_nav_hover, $left_nav_hover; $navl = new Template; $res = mysql_query("SELECT galid FROM portrait_galleries ORDER BY galdate DESC"); $nums = mysql_num_rows($res); for($i = 0; $i < $nums; $i++){ $out = mysql_fetch_object($res); $id[] = $out->galid; $out->galid == $act ? $act_i = $i : ''; } if($act == $id[0]){ $nav[left] = "javascript:void(0);"; $nav[left] = "\"zurück"; }else{ $link = "start.php?catid=".$this->g[catid]."&art=".$this->g[art]."&serie=".$id[($act_i-1)]; $nav[left] = "start.php?catid=".$this->g[catid]."&art=".$this->g[art]."&serie=".$id[($act_i-1)]; $nav[left] = "\"zurück"; } if($act == $id[($nums-1)]){ $nav[right] = "javascript:void(0);"; $nav[right] = "\"vor"; }else{ $link = "start.php?catid=".$this->g[catid]."&art=".$this->g[art]."&serie=".$id[($act_i+1)]; $nav[right] = "start.php?catid=".$this->g[catid]."&art=".$this->g[art]."&serie=".$id[($act_i+1)]; $nav[right] = "\"vor"; } $link = $front_url."?x=bilder"; //$nav[ueber] = "".$bild.""; $nav[ueber] = ""; //echo $nums; $navi = $this->t; $navi->prepare("portrait,button,backforward.html"); $navi->set("BACKWARD", $nav[left]); $navi->set("FORWARD", $nav[right]); return $navi->tpl; } function showPics(){ global $lplus; $lplus->ub .= "g[art]."&catid=".$this->g[catid]."&serie=".$this->g[serie]."&pljob=newgalpics\">neue Bilder hochladen"; return $this->create_gal($this->g[serie]); } function newgalpics(){ if($this->admin == 1 && $this->g[serie] != ""){ $this->html .= "
g[art]."&catid=".$this->g[catid]."&serie=".$this->g[serie]."&pljob=showPics&mode=newgalpicssave\">"; for($i = 1; $i <= 5; $i++){ $this->html .= ""; } $this->html .= "
Bild ".$i."
Bildname ".$i."
Vorname ".$i."
Name ".$i."
Beruf ".$i."
Location ".$i."
Ort ".$i."
Datum / Uhrzeit ".$i."
YYYY-MM-DD HH:MM:SS
  > \">

"; }else{ $this->html = "You are not an Admin of this site!"; } return $this->html; } function editSerie(){ if($this->admin == 1){ if($this->g[serie] == ""){ $this->html .= "
g[art]."&catid=".$this->g[catid]."&mode=newgalnamesave\">"; $this->html .= "Serie:
"; $this->html .= "details:
"; $this->html .= "Aktiv?
"; }else{ $res = mysql_query("SELECT * FROM portrait_galleries WHERE galid='".$this->g[serie]."'"); $out = mysql_fetch_object($res); $this->html .= "
g[art]."&catid=".$this->g[catid]."&serie=".$this->g[serie]."&mode=editgalnamesave\">"; $this->html .= "Serie: galname_dt."\">
"; $this->html .= "details: details."\">
"; $this->html .= "Aktiv?
"; } } return $this->html; } function save(){ if($this->g[mode] == "newgalnamesave"){ $res = mysql_query("INSERT INTO portrait_galleries SET galname_dt='".urldecode(addslashes($this->g[galname_dt]))."', galname_en='".urldecode(addslashes($this->g[galname_en]))."', galname_fr='".urldecode(addslashes($this->g[galname_fr]))."', galdate=now(), cat='".$this->g[catid]."', art='".$this->g[art]."'") or die ( mysql_error() ) ; }elseif($this->g[mode] == "editgalnamesave"){ $res = mysql_query("UPDATE portrait_galleries SET galname_dt='".urldecode(addslashes($this->g[galname_dt]))."', galname_en='".urldecode(addslashes($this->g[galname_en]))."', galname_fr='".urldecode(addslashes($this->g[galname_fr]))."', galactive='".$this->g[galactive]."', galdate=now() WHERE galid='".$this->g[serie]."'"); }elseif($this->g[mode] == "newgalpicssave"){ require_once("../classes/class.thumbs.php"); if(!file_exists(portraitPATH.$this->g[serie])){ mkdir(portraitPATH.$this->g[serie], 0777); } if(!file_exists(portraitPATH.$this->g[serie]."/thumbs")){ mkdir(portraitPATH.$this->g[serie]."/thumbs", 0777); } if(!file_exists(portraitPATH.$this->g[serie]."/mobile")){ mkdir(portraitPATH."/".$this->g[serie]."/mobile", 0777); } for( $i = 0; $i < count( $_FILES[photo][name] ); $i++ ){ if( $_FILES[photo][name][ $i ] != "" && $_FILES[photo][name][ $i ] != "none"){ if( $_FILES[photo][size][ $i ] > 2048000 ) error( "Invalid image size" ); if( $_FILES[photo][type][ $i ] == "image/pjpeg" || $_FILES[photo][type][ $i ] == "image/jpeg" ){ $newphoto[] = $_FILES[photo][tmp_name][ $i ]; }else{ die( "Invalid image type, JPEG only" ); } } } echo count($newphoto); for( $i = 0; $i < count( $newphoto ); $i++ ){ //echo $ad_id; $im = ImageCreateFromJPEG( $newphoto[$i] ); $piW = ImageSX( $im ); $piH = ImageSY( $im ); if($piW > $piH) $format = "quer"; if($piW < $piH) $format = "hoch"; if($piW == $piH) $format = "quer"; mysql_query( "INSERT INTO portrait_pics ( picname, name, vorname, beruf, location, ort, datumzeit, format, gal_id, bereich ) VALUES ( '".$this->g[photoname_dt][$i]."', '".$this->g[name][$i]."', '".$this->g[vorname][$i]."', '".$this->g[beruf][$i]."', '".$this->g[location][$i]."', '".$this->g[ort][$i]."', '".$this->g[datumzeit][$i]."', '".$format."', '".$this->g[serie]."', '".$this->g[bereich][$i]."' )" ) or die("photo insert". mysql_error() ); $photoid = mysql_insert_id(); //copy( $newphoto[ $i ], "tmp/".$photoid.".jpg" ); copy( $newphoto[ $i ], portraitPATH.$this->g[serie]."/mobile/".$photoid.".jpg" ); $imginfo = @getimagesize($newphoto[$i]); if ($imginfo != NULL){ $breite = $imginfo[0]; $hoehe = $imginfo[1]; } if($breite >= 500 || $hoehe >= 500){ $tb_gr = new thumbs(500,500, portraitPATH.$this->g[serie]."/mobile/".$photoid.".jpg", portraitPATH.$this->g[serie]."/".$photoid.".jpg"); $tb_gr->create_thumb(); //thumbs::addWatermark(portraitPATH.$this->g[serie]."/".$photoid.".jpg"); }else{ copy( portraitPATH.$this->g[serie]."/mobile/".$photoid.".jpg", portraitPATH.$this->g[serie]."/".$photoid.".jpg" ); //thumbs::addWatermark(portraitPATH.$this->g[serie]."/".$photoid.".jpg"); } $tb_kl = new thumbs(87,87, portraitPATH.$this->g[serie]."/mobile/".$photoid.".jpg", portraitPATH.$this->g[serie]."/thumbs/".$photoid.".jpg"); $tb_kl->create_thumb(); //copy( $newthumb[ $i ], "../images/thumb/{$photoid}.jpg" ); unlink( $newphoto[ $i ] ); $this->html .= " 
Bilder eingetragen

 "; } }elseif($this->g[mode] == "setFirstPic"){ @mysql_query("UPDATE portrait_pics SET firstpic='no' WHERE gal_id='".$this->g[serie]."'"); @mysql_query("UPDATE portrait_pics SET firstpic='yes' WHERE id='".$this->g[pic]."'"); } return $this->html; } /** * creates the Output * * @access public * @return bool */ function _start(){ if($this->admin == 1 && $this->g[mode] == "newgalpics" && $this->g[galid] != ""){ $this->html .= "
g[art]."&catid=".$this->g[catid]."&galid=".$this->g[galid]."&mode=newgalpicssave\">"; for($i = 1; $i <= 5; $i++){ $this->html .= ""; if(MULTILANG == "on"){ $this->html .= ""; } } $this->html .= "
Bild ".$i."
Name DE ".$i."
Name EN ".$i."
Name FR ".$i."
  > \">

"; }else{ $data = $this->galnames2array(); //print_r($data); //echo $this->pageNo; //echo $this->perPage; $this->html .= $this->pagit($data, 0); //echo '

VIDEOCLIPS

'; $this->html .= '

'; if($this->admin == 1 && $this->g[mode] != "editgalname"){ $this->html .= "

g[art]."&catid=".$this->g[catid]."&mode=newgalnamesave\">"; $this->html .= "Gallery Name DE:
"; if(MULTILANG == "on"){ $this->html .= "Gallery Name EN:
Gallery Name FR:
"; } $this->html .= "Aktiv?
"; } while($this->paginator->hasNextElement()){ $ndx = $this->paginator->nextElement(); //echo $ndx; //echo $this->lang." - ".$data[$ndx]["galname_".$this->lang]."
"; if(!is_file($data[$ndx][ub])){ if($this->admin != 1){ $this->html .= "
".$data[$ndx]["galname_".$this->lang]."
"; } if($this->admin == 1){ if($this->g[mode] == "editgalname" && $data[$ndx][galid] == $this->g[galid]){ $this->html .= "
g[art]."&catid=".$this->g[catid]."&galid=".$data[$ndx][galid]."&mode=editgalnamesave\">"; $this->html .= "Gallery Name DE:
"; if(MULTILANG == "on"){ $this->html .= "Gallery Name EN:
Gallery Name FR:
"; } $this->html .= "Aktiv?
"; }else{ $this->html .= '
'.$data[$ndx]["galname_".$this->lang].' '; if($data[$ndx][galactive] == "yes"){ $this->html .= " aktiv "; }else{ $this->html .= " inaktiv "; } $this->html .= ''; $this->html .= "
g[art]."&catid=".$this->g[catid]."&galid=".$data[$ndx][galid]."&mode=newgalpics\">neue Bilder hochladen"; } } $this->html .= ''; } //print_r($this->getfoldercontent($data[$ndx][ub])); if(is_array($this->getgalcontent($data[$ndx][galid]))){ $this->html .= ''; $this->html .= $this->create_gal($data[$ndx][galid],$this->getgalcontent($data[$ndx][galid])); $this->html .= ''; } } $this->html .= '

'; $this->html .= $this->pagit($data); } return true; } /** * Returns HTML * * @access public * @return string */ function getHTML(){ echo $this->html; } /** * Creates an Array of Contents of the given Folder * * @param string $folder actual Folder to be read in * @access private * @return array */ function getfoldercontent($folder){ //echo $this->startverzeichnis.$folder; $handle = opendir($this->startverzeichnis.$folder); $i = 0; while($file = readdir($handle)){ if($file != "." && $file != ".."){ $tmp = split("\.", $file); //echo $tmp[0]." ".$tmp[1]; if($tmp[1] == $this->bild_endung){ $arr[bild_name][] = $tmp[0]; $arr[bild_dateiname][] = $file; reset($this->video_endungen); while(list($key,$vid) = each($this->video_endungen)){ //echo $vid; //echo $this->startverzeichnis.$folder."/".$tmp[0].".".$vid; if(file_exists($this->startverzeichnis.$folder."/".$tmp[0].".".$vid)){ $arr[video_dateiname][] = $tmp[0].".".$vid; } } } } $i++; } return $arr; } function getgalcontent($galid){ //echo $this->startverzeichnis.$folder; $res = mysql_query("SELECT * FROM portrait_pics where gal_id='".$galid."'"); $nums = mysql_num_rows($res); $handle = opendir($this->startverzeichnis.$folder); for($i = 0; $i < $nums; $i++){ $out = mysql_fetch_object($res); $arr[bild_name][] = $out->{"picname_".$this->lang}; $arr[bild_dateiname][] = $out->id; } return $arr; } /** * Creates an Array of the dirnames within the startfolder * * @access private * @return array */ function dirnames2array(){ if(!is_dir($this->startverzeichnis)) die("FATAL ERROR: Das angegebene Verzeichnis ist nicht vorhanden"); $handle = opendir($this->startverzeichnis); while($file = readdir($handle)){ if($file != "." && $file != ".." && is_dir($this->startverzeichnis.$file)){ if($this->leere_anzeigen == true){ if($this->in_dir($file, $this->video_endungen)){ if(!in_array($file, $this->ausgeschlossene_verzeichnisse)){ $alldirs[][ub] = $file; } }else{ if(!in_array($file, $this->ausgeschlossene_verzeichnisse)){ $alldirs[][ub] = $file; } } }else{ if($this->in_dir($file, $this->video_endungen)){ if(!in_array($file, $this->ausgeschlossene_verzeichnisse)){ $alldirs[][ub] = $file; } } } //echo $file; } } //print_r($alldirs); return $alldirs; } function galnames2array(){ if($this->admin != 1){ $where = "WHERE galactive='yes'"; if($this->g[art] != ""){ $where .= " AND art='".$this->g[art]."'"; }else{ $where .= " AND cat='".$this->g[catid]."'"; } if(MULTILANG == "on"){ if($this->lang == "dt"){ $where .= " AND galname_dt != ''"; }elseif($this->lang == "en"){ $where .= " AND galname_en != ''"; }elseif($this->lang == "fr"){ $where .= " AND galname_fr != ''"; } } }else{ if($this->g[art] != ""){ $where .= "WHERE art='".$this->g[art]."'"; }else{ $where .= "WHERE cat='".$this->g[catid]."'"; } } $res = mysql_query("SELECT * from portrait_galleries ".$where." ORDER BY galdate DESC"); $nums = mysql_num_rows($res); if($nums >= 1){ while($out = mysql_fetch_array($res)){ $gals[] = $out; } } return $gals; } /** * checks whether allowed Videofiles are in folder * * @param string $file folder to be checked * @param string $sufarray suffixes to be checked * @access private * @return bool */ function in_dir($file, $sufarray){ $handle = opendir($this->startverzeichnis.$file); while($test = readdir($handle)){ if($test != "." && $test != ".." && is_file($this->startverzeichnis.$file."/".$test)){ $tmp = split("\.", $test); if(in_array($tmp[(count($tmp)-1)], $sufarray)){ return true; } } } return false; } /** * Creates the picture gallery itself * * @param string $d_dir actual Folder to workin (used for links) * @param array $d_data Array of the picture and videodata * @access private * @return string containing the gallery of the dir */ function create_gal($serie){ //print_r($d_data); //$ret = ""; $this->startverzeichnis = portraitPATH; $d_dir = $serie; $res = mysql_query("SELECT * FROM portrait_pics WHERE gal_id='".$serie."'"); $nums = mysql_num_rows($res); echo $nums; $cpl = $this->bilder_in_zeile+4; $rows = 1; $k = 1; $line = ceil($nums/$cpl); for($i = 0; $i < $nums; $i++){ $out = mysql_fetch_object($res); if($k == 1) $ret .= "
"; $img = ImageCreateFromJpeg($this->startverzeichnis.$d_dir."/".$out->id.".jpg"); $heigth = ImageSY($img); $width = ImageSX($img); $ret .= ""; if($k == $nums) $ret .= "
"; if($this->admin == 1){ $ret .= ""; if($out->firstpic == "no"){ $ret .= ""; }else{ $ret .= ""; } } $ret .= "
startverzeichnis.$d_dir."/".$out->id.".jpg', ".$width.", ".$heigth.")\" title=\"".$out->bild_name."\" align=\"center\" valign=\"middle\" class=\"img\" onmouseover=\"this.id='overIMG'; this.style.cursor='pointer'\" onmouseout=\"this.id='IMG'; this.style.cursor='default'\">startverzeichnis.$d_dir."/thumbs/".$out->id.".jpg\" title=\"".$out->bildname."\" alt=\"".$out->bildname."\" border=\"0\" />
g[art]."&catid=".$this->g[catid]."&serie=".$serie."&pic=".$out->id."&pljob=showPics&do=delpic\">Bild löschen
g[art]."&catid=".$this->g[catid]."&serie=".$serie."&pic=".$out->id."&mode=setFirstPic\">Startbild
Startbild
"; $k++; } return $ret; } /** * Creates the Navigation, to navigate through the pages * * @param string $data to count $data * @param int $pnons whether to show Page x of y * @access private * @return string contains HTML for the Navi */ function pagit($data, $pnons = 0){ $ret = ""; if($data){ $this->paginator = new PageIterator(sizeof($data), $this->pageNo, $this->perPage, $this->pageLinks, $d); $this->pageNo = $this->paginator->getCurrentPageNumber(); // $data may cause $this->pageNo to change }else{ $this->paginator = new PageIterator(sizeof($data), $this->pageNo, $this->perPage, $this->pageLinks); } if($pnons == 1){ $ret .= '

'; $ret .= ''.PAGE.' ' . $this->pageNo . ' '.POF.' ' . $this->paginator->getPageCount(); $ret .= '

'; //echo $_SERVER['QUERY_STRING']; $qs = "&".$_SERVER['QUERY_STRING']; $qs = $this->RemoveArgFromURL($qs, 'pageNo'); $qs = $this->RemoveArgFromURL($qs,'perPage'); $qs = $this->RemoveArgFromURL($qs,'pageLinks'); if($qs != "") $qs = $qs; $ret .= '

'; // Print page links like << < [1] [2] [3] ... [n] > >> if($this->paginator->getPageCount() > 1){ if ($this->pageNo == 1){ $ret .= '<<  <  '; }else{ $ret .= '<<  '; $ret .= '<  '; } while($this->paginator->hasNextPage()){ $ndx = $this->paginator->nextPage(); if($ndx == $this->pageNo){ $ret .= "$ndx   "; }else{ $ret .= ''; $ret .= '[' . $ndx . ']  '; } } if($this->pageNo == $this->paginator->getPageCount()){ $ret .= '>  >>  '; }else{ $ret .= '>  '; $ret .= '>>  '; } } $ret .= '

'; } return $ret; } function RemoveArgFromURL($URL,$Arg){ while($Pos = strpos($URL,"$Arg=")){ if($Pos){ if($URL[$Pos-1] == "&"){ $Pos--; } $nMax = strlen($URL); $nEndPos = strpos($URL,"&",$Pos+1); if($nEndPos === false){ $URL = substr($URL,0,$Pos); }else{ $URL = str_replace(substr($URL,$Pos,$nEndPos-$Pos),'',$URL); } } } return $URL; } }; ?>