sQuery = $sTmpQuery; $this->iResultsToDisplay = $iTmpResultsToDisplay; $this->aColumns = $aTmpColumns; $this->aColumnHeadings = $aTmpColumnHeaders; $this->aColumnTypes = $aTmpColumnTypes; $this->aLinkURLs = $aTmpLinkURLs; $this->aDBQueryStringColumns = $aTmpDBQueryStringColumns; $this->aQueryStringVariableNames = $aTmpQueryStringVariableNames; } function setStartIndex($iNewValue) { $this->iStartIndex = $iNewValue; } function setOrderByColumn($sNewValue) { $this->sOrderByColumn = $sNewValue; } function setOrderDirection($sNewValue) { $this->sOrderDirection = $sNewValue; } /** * Build the HTML string used to render the object * * @return String of HTML used to render object * * @todo possibly add in image size restraints for link types 2 and 3 */ function & render() { global $default; //add the limit and offset stuff for cutting down result set $sLimitQuery = $this->sQuery . " LIMIT " . $this->iStartIndex . ", " . $this->iResultsToDisplay; $sql = & $default->db; $sql->query($sLimitQuery); $sToRender = "\n"; $sToRender .= "\n"; for ($i = 0; $i < count($this->aColumnHeadings); $i++) { if (! (strcmp($this->sOrderByColumn, $this->aColumns[$i]) === false) && (strcmp($this->sOrderByColumn, $this->aColumns[$i]) == 0)) { if (!(strcmp($this->sOrderDirection,"ASC") === false) && (strcmp($this->sOrderDirection,"ASC") == 0)) { $sToRender .= "\n"; } else { $sToRender .= "\n"; } } else { $sToRender .= "\n"; } } $sToRender .= "\n"; $iDisplayed = 0; //limit the result set displayed while($sql->next_record() && ($iDisplayed < $this->iResultsToDisplay)) { $sToRender .= ""; for ($i = 0; $i < count($this->aColumns); $i++) { switch ($this->aColumnTypes[$i]) { case 1: //display text $sToRender .= "\n"; break; case 2: //diplay a checkbox $sToRender .= "\n"; break; case 3: //display a url $sToRender .= "\n"; break; default: break; } } $sToRender .= "\n"; $iDisplayed++; } //if we displayed less results than the number to display //simply pad the table while ($iDisplayed < $this->iResultsToDisplay) { $sToRender .= "\n"; $iDisplayed++; } $sToRender .= "\n"; /* Display only the next button */ if (($this->iStartIndex + $this->iResultsToDisplay) < $this->getResultCount($sql) && $this->iStartIndex == 0) { $sToRender .= "\n"; } /* Display both the next and the previous buttons */ else if (($this->iStartIndex + $this->iResultsToDisplay) < $this->getResultCount($sql) && $this->iStartIndex > 0) { $sToRender .= ""; $sToRender .= "\n"; } /* Display only the previous button */ else if ($this->iStartIndex > 0) { $sToRender .= ""; $sToRender .= ""; } $sToRender .= "\n"; $sToRender .= "
iStartIndex . "\">" . $this->aColumnHeadings[$i]."iStartIndex . "\">" . $this->aColumnHeadings[$i]."iStartIndex . "\">" . $this->aColumnHeadings[$i]."
" . $sql->f($this->aColumns[$i]) . "" . ($sql->f($this->aColumns[$i]) ? "Yes" : "No") . "aLinkURLs[$i]; for ($j = 0; $j < count($this->aDBQueryStringColumns); $j++) { if (strpos($sToRender, "?") === false) { $sToRender .= "?" . $this->aQueryStringVariableNames[$j] . "=" . $sql->f($this->aDBQueryStringColumns[$j]); } else { $sToRender .= "&" . $this->aQueryStringVariableNames[$j] . "=" . $sql->f($this->aDBQueryStringColumns[$j]); } } $sToRender .= "\">" . $sql->f($this->aColumns[$i]) . "
 
"; $sToRender .= ("Next"); $sToRender .= ""; $sToRender .= ("Next"); $sToRender .= ""; $sToRender .= ("Previous"); $sToRender .= "\n"; $sToRender .= (" "); $sToRender .= "\n"; $sToRender .= ("Previous"); $sToRender .= "
\n"; return $sToRender; } function getResultCount($sql) { if ($sql->query($this->sQuery)) { return $sql->num_rows(); } return 0; } } ?>