Commit e1f66e65aab7a20a8ca7436b8acb4e250f7f66d3
1 parent
f036289c
Initial revision. Editable version of PatternTableSqlQuery
git-svn-id: https://kt-dms.svn.sourceforge.net/svnroot/kt-dms/trunk@550 c91229c3-7414-0410-bfa2-8a42b809f60b
Showing
1 changed file
with
95 additions
and
0 deletions
lib/visualpatterns/PatternEditableTableSqlQuery.inc
0 → 100644
| 1 | +<?php | ||
| 2 | + | ||
| 3 | + | ||
| 4 | +class PatternEditableTableSqlQuery { | ||
| 5 | + | ||
| 6 | + /** query to execute*/ | ||
| 7 | + var $sQuery; | ||
| 8 | + /* Columns in table to query (ID is included by default) */ | ||
| 9 | + var $aColumns; | ||
| 10 | + /* Column types. Possibles are 1 = text, 2 = boolean*/ | ||
| 11 | + var $aColumnTypes; | ||
| 12 | + /** header names to display */ | ||
| 13 | + var $aColumnHeaderNames; | ||
| 14 | + /** table width, either in pixels or as a percentage e.g. 600 or 100%*/ | ||
| 15 | + var $sWidth; | ||
| 16 | + /* Where clause */ | ||
| 17 | + var $sWhereClause; | ||
| 18 | + /* Order by clause */ | ||
| 19 | + var $sOrderByClause; | ||
| 20 | + /** display the column headings or not */ | ||
| 21 | + var $bDisplayColumnHeadings; | ||
| 22 | + /** table heading */ | ||
| 23 | + var $sTableHeading; | ||
| 24 | + var $aColumnEditable; | ||
| 25 | + var $sTableName; | ||
| 26 | + var $iVariableCount = 0; | ||
| 27 | + var $sUniqueName; | ||
| 28 | + //var $aVariableArray; | ||
| 29 | + | ||
| 30 | + function PatternEditableTableSqlQuery($sTmpQuery, $sTmpTableName, $sTmpUniqueName, $aTmpColumns, $aTmpColumnTypes, $aTmpColumnEditable, $aTmpColumnHeaderNames, $sTmpWidth, $bTmpDisplayColumnHeadings = false, $sTmpWhereClause = null, $sTmpOrderByClause = null) { | ||
| 31 | + $this->sQuery = $sTmpQuery; | ||
| 32 | + $this->aColumns = & $aTmpColumns; | ||
| 33 | + $this->aColumnTypes = $aTmpColumnTypes; | ||
| 34 | + $this->aColumnHeaderNames = $aTmpColumnHeaderNames; | ||
| 35 | + $this->sWidth = $sTmpWidth; | ||
| 36 | + $this->sWhereClause = & $sTmpWhereClause; | ||
| 37 | + $this->sOrderByClause = $sTmpOrderByClause; | ||
| 38 | + $this->bDisplayColumnHeadings = $bTmpDisplayColumnHeadings; | ||
| 39 | + $this->aColumnEditable = $aTmpColumnEditable; | ||
| 40 | + $this->sTableName = $sTmpTableName; | ||
| 41 | + $this->sUniqueName = $sTmpUniqueName; | ||
| 42 | + } | ||
| 43 | + | ||
| 44 | + function setTableHeading($sNewValue) { | ||
| 45 | + $this->sTableHeading = $sNewValue; | ||
| 46 | + } | ||
| 47 | + | ||
| 48 | + function & render() { | ||
| 49 | + //$sToRender = "<table border = 0, width=$this->sWidth>\n"; | ||
| 50 | + $sToRender = "<table cellpadding = 5, border = 0>\n"; | ||
| 51 | + if (isset($this->sTableHeading)) { | ||
| 52 | + $sToRender .= "<caption colspan = " . count($this->aColumns) . ", align=left><b>$this->sTableHeading</b></caption>\n"; | ||
| 53 | + } | ||
| 54 | + if ($this->bDisplayColumnHeadings) { | ||
| 55 | + for ($i = 0; $i < count($this->aColumnHeaderNames); $i++) { | ||
| 56 | + $sToRender .= "<th align=left>" . $this->aColumnHeaderNames[$i] . "</th>\n"; | ||
| 57 | + } | ||
| 58 | + } | ||
| 59 | + $sql = new Owl_DB(); | ||
| 60 | + $sql->query($this->sQuery); | ||
| 61 | + if ($sql->num_rows() == 0) { | ||
| 62 | + $sToRender .= "<tr>\n"; | ||
| 63 | + $sToRender .= "<td colspan=" . count($this->aColumns) . ">No " . (isset($this->sTableHeading) ? $this->sTableHeading : "") . " data</td>\n"; | ||
| 64 | + $sToRender .= "</tr>\n"; | ||
| 65 | + } else { | ||
| 66 | + while ($sql->next_record()) { | ||
| 67 | + $sToRender .= "<tr>\n"; | ||
| 68 | + for ($i = 0; $i < count($this->aColumns); $i++) { | ||
| 69 | + switch ($this->aColumnTypes[$i]) { | ||
| 70 | + case 1: | ||
| 71 | + $sToRender .= "\t<td>\n"; | ||
| 72 | + if ($this->aColumnEditable[$i]) { | ||
| 73 | + //$this->aVariableArray[$this->iVariableCount] = $this->sUniqueName . "_" . $this->iVariableCount; | ||
| 74 | + $sToRender .= "\t\t<input type=\"text\" name=\"unique_" .$this->sUniqueName . "_" . $this->iVariableCount . "\" value=\"" . $sql->f($this->aColumns[$i]) . "\" />\n"; | ||
| 75 | + $sToRender .= "\t\t<input type=\"hidden\" name=\"unique_" . $this->sUniqueName . "_" . $this->iVariableCount . "_id\" value=\"" . $sql->f("id") . "\" />\n"; | ||
| 76 | + $sToRender .= "\t\t<input type=\"hidden\" name=\"unique_" . $this->sUniqueName . "_" . $this->iVariableCount . "_tn\" value=\"" . $this->sTableName . "\" />\n"; | ||
| 77 | + $this->iVariableCount++; | ||
| 78 | + } else { | ||
| 79 | + $sToRender .= "\t\t" . $sql->f($this->aColumns[$i]) . "\n"; | ||
| 80 | + } | ||
| 81 | + $sToRender .= "\t</td>\n"; | ||
| 82 | + break; | ||
| 83 | + default: | ||
| 84 | + break; | ||
| 85 | + } | ||
| 86 | + } | ||
| 87 | + $sToRender .= "</tr>\n"; | ||
| 88 | + } | ||
| 89 | + } | ||
| 90 | + $sToRender .= "</table>"; | ||
| 91 | + return $sToRender; | ||
| 92 | + } | ||
| 93 | +} | ||
| 94 | + | ||
| 95 | +?> |