sTableName = $sNewTableName; $this->sDisplayColumn = $sNewDisplayColumn; $this->sValueColumn = $sNewValueColumn; $this->sSelectName = $sNewSelectName; $this->sWhereClause = $sNewWhereClause; $this->bOrderAsc = $bNewOrderAsc; } function setQuery($sQuery) { $this->sQuery = $sQuery; } function setSelectName($sNewSelectName) { $this->sSelectName = $sNewSelectName; } function setPostBackOnChange($bNewValue) { $this->bPostBackOnChange = $bNewValue; } function setOnChangeAction($sNewValue) { $this->sOnChangeAction = $sNewValue; } function setSelectedValue($NewValue) { $this->selectedValue = $NewValue; } function setWhereClause($sNewValue) { $this->sWhereClause = $sNewValue; } function setFromClause($sNewValue) { $this->sFromClause = $sNewValue; } function setEmptyErrorMessage($sNewValue) { $this->sEmptyErrorMessage = $sNewValue; } function setIncludeDefaultValue($bNewValue) { $this->bIncludeDefaultValue = $bNewValue; } function setAdditionalEntries($aNewValue) { $this->aAdditionalEntries = $aNewValue; } function setCompositeDisplayName($sNewValue) { $this->sCompositeDisplayColumnName = $sNewValue; } /** * Create the HTML string that will be used to render the list box * * @return String html used to render the list box * */ function & render() { global $default; $sql = $default->db; if (isset($this->sQuery)) { $sQuery = $this->sQuery; } else { $sQuery = "SELECT ";/*wc*/ if (isset($this->sCompositeDisplayColumnName)) { $sQuery .= "$this->sCompositeDisplayColumnName"; } else { $sQuery .= "DISTINCT ST." . $this->sDisplayColumn; } $sQuery .= " AS display, ST." . $this->sValueColumn . " AS value FROM $this->sTableName AS ST "; if (isset($this->sFromClause)) { $sQuery .= $this->sFromClause . " "; } if (isset($this->sWhereClause)) { $sQuery .= "WHERE " . $this->sWhereClause . " "; } $sQuery .= "ORDER BY ST.$this->sDisplayColumn " . ($this->bOrderAsc ? "ASC" : "DESC"); } $sql->query($sQuery); if ($sql->num_rows() > 0 || $this->bIncludeDefaultValue && (strlen($this->sEmptyErrorMessage) == 0)) { if (isset($this->sOnChangeAction)) { $sToRender = "sSelectName\" ". ($this->bPostBackOnChange ? "onChange=\"document.MainForm.submit();\" " : " ") . ">\n"; } if ($this->bIncludeDefaultValue) { $sToRender .= "\n"; } while ($sql->next_record()) { if ($this->selectedValue == $sql->f("value")) { $sToRender .= "\n"; } else { $sToRender .= "\n"; } } if (isset($this->aAdditionalEntries)) { for ($i=0; $iaAdditionalEntries); $i++) { $sToRender .= "\n"; } } $sToRender .= "\n"; } else { $sToRender .= "\n"; } return $sToRender; } function getEntries() { global $default; $sql = $default->db; $sQuery = "SELECT DISTINCT ST." . $this->sDisplayColumn . " AS display, ST." . $this->sValueColumn . " AS value FROM $this->sTableName AS ST ";/*wc*/ if (isset($this->sFromClause)) { $sQuery .= $this->sFromClause . " "; } if (isset($this->sWhereClause)) { $sQuery .= "WHERE " . $this->sWhereClause . " "; } $sQuery .= "ORDER BY ST.$this->sDisplayColumn " . ($this->bOrderAsc ? "ASC" : "DESC"); $sql->query($sQuery); $aValues = array(); while ($sql->next_record()) { $aValues[] = array("value" => $sql->f("value"), "display" => $sql->f("display")); } return $aValues; } } ?>