sQuery = $sTmpQuery; $this->iResultsToDisplay = $iTmpResultsToDisplay; $this->aColumns = $aTmpColumns; $this->aColumnHeadings = $aTmpColumnHeaders; $this->aColumnTypes = $aTmpColumnTypes; $this->aLinkURLs = $aTmpLinkURLs; $this->aDBQueryStringColumns = $aTmpDBQueryStringColumns; $this->aQueryStringVariableNames = $aTmpQueryStringVariableNames; $this->sQueryString = ""; } function setQueryString($sNewQueryString) { $this->sQueryString = $sNewQueryString; } function getQueryString() { return $this->sOrderByColumn; } 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; $sSectionName = $default->siteMap->getSectionName(substr($_SERVER["PHP_SELF"], strlen($default->rootUrl), strlen($_SERVER["PHP_SELF"]))); $sTHBGColour = $default->siteMap->getSectionColour($sSectionName, "th"); //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; if ($sql->num_rows() == 0) { //no results $sToRender = "\n"; $sToRender .= "\n"; $sToRender .= "\n"; $sToRender .= "\n"; $sToRender .= "

No results matched your criteria

\n"; } else { $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"; $sToRender .= "\n"; } else { //$sToRender .= "\n"; $sToRender .= "\n"; } } else { //$sToRender .= "\n"; $sToRender .= "\n"; } } $sToRender .= "\n"; $iColour = 0; $iDisplayed = 0; //limit the result set displayed while($sql->next_record() && ($iDisplayed < $this->iResultsToDisplay)) { $sToRender .= ""; $iColour++; 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; case 4: //diplay an image 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"; $sToRender .= "iStartIndex + $this->iResultsToDisplay) . "\" />\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]."" . $this->aColumnHeadings[$i]. "iStartIndex . "\">" . $this->aColumnHeadings[$i]."" . $this->aColumnHeadings[$i]. "iStartIndex . "\">" . $this->aColumnHeadings[$i]."" . $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($sURLplusQuery, "?") === false) { $sURLplusQuery .= "?" . $this->aQueryStringVariableNames[$j] . "=" . $sql->f($this->aDBQueryStringColumns[$j]); } else { $sURLplusQuery .= "&" . $this->aQueryStringVariableNames[$j] . "=" . $sql->f($this->aDBQueryStringColumns[$j]); } } $sToRender .= $sURLplusQuery; $sToRender .= "\">" . $sql->f($this->aColumns[$i]) . "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 .= "\">f($this->aColumns[$i]) . "\" border=\"0\" />
 
"; //$sToRender .= ("Next"); $sToRender .= ("graphicsUrl/widgets/next.gif\" onClick=\"setActionAndSubmit('" . $_SERVER["PHP_SELF"] . "?fStartIndex=" . ($this->iStartIndex + $this->iResultsToDisplay) . $this->sQueryString . "')\" />"); $sToRender .= ""; $sToRender .= ("graphicsUrl/widgets/next.gif\" onClick=\"setActionAndSubmit('" . $_SERVER["PHP_SELF"] . "?fStartIndex=" . ($this->iStartIndex + $this->iResultsToDisplay) . $this->sQueryString . "')\" />"); $sToRender .= ""; $sToRender .= ("graphicsUrl/widgets/previous.gif\" onClick=\"setActionAndSubmit('" . $_SERVER["PHP_SELF"] . "?fStartIndex=" . ($this->iStartIndex - $this->iResultsToDisplay) . $this->sQueryString . "')\" />"); $sToRender .= "\n"; $sToRender .= (" "); $sToRender .= "\n"; $sToRender .= ("graphicsUrl/widgets/previous.gif\" onClick=\"setActionAndSubmit('" . $_SERVER["PHP_SELF"] . "?fStartIndex=" . ($this->iStartIndex - $this->iResultsToDisplay) . $this->sQueryString . "')\" />"); $sToRender .= "
\n"; } return $sToRender; } function getResultCount($sql) { if ($sql->query($this->sQuery)) { return $sql->num_rows(); } return 0; } } ?>