Commit 4c335bd72d742cfb4b61641c4401ca6a96f5457c
1 parent
0a2a2263
Initial revision. Display one row from a db table in an editable format
git-svn-id: https://kt-dms.svn.sourceforge.net/svnroot/kt-dms/trunk@566 c91229c3-7414-0410-bfa2-8a42b809f60b
Showing
1 changed file
with
159 additions
and
0 deletions
lib/visualpatterns/PatternEditableListFromQuery.inc
0 → 100644
| 1 | +<?php | |
| 2 | +/** | |
| 3 | +* Class PatternEditableListFromQuery | |
| 4 | +* Takes a SQL query, an array of column names and and an array of column types | |
| 5 | +* and displays the data in an editable two column list format | |
| 6 | +* | |
| 7 | +* @author Rob Cherry, Jam Warehouse (Pty) Ltd, South Africa | |
| 8 | +* @date 27 January 2003 | |
| 9 | +* @package lib.visualpatterns | |
| 10 | +* | |
| 11 | +* @todo implement HyperLinkURL option | |
| 12 | +*/ | |
| 13 | + | |
| 14 | +class PatternEditableListFromQuery { | |
| 15 | + | |
| 16 | + /** SQL query to execute */ | |
| 17 | + var $sQuery; | |
| 18 | + /** table on which to perform store/create */ | |
| 19 | + var $sTableName; | |
| 20 | + /** array of columns to display */ | |
| 21 | + var $aDisplayColumns; | |
| 22 | + /** columns to store */ | |
| 23 | + var $aStoreColumns; | |
| 24 | + /** names of columns to display */ | |
| 25 | + var $aColumnNames; | |
| 26 | + /** array of column types (1 = text, 2 = boolean, 3 = dropdown list) */ | |
| 27 | + var $aDisplayColumnTypes; | |
| 28 | + /** database column types (0 = id, 1 = text, 2 = boolean) */ | |
| 29 | + var $aDatabaseColumnTypes; | |
| 30 | + /** number of rows for text area if text area option is being used */ | |
| 31 | + var $iTextAreaRows = 6; | |
| 32 | + /** number of colums for text area if text area option is being used */ | |
| 33 | + var $iTextAreaColums = 20; | |
| 34 | + /** heading for table */ | |
| 35 | + var $sTableHeading; | |
| 36 | + /** set the table width */ | |
| 37 | + var $iTableWidth = null; | |
| 38 | + /** unique name to prepend to form variables */ | |
| 39 | + var $sUniqueName; | |
| 40 | + | |
| 41 | + /** | |
| 42 | + * Default constructor | |
| 43 | + * | |
| 44 | + * @param String Query to execute | |
| 45 | + * @param | |
| 46 | + */ | |
| 47 | + function PatternEditableListFromQuery($sNewQuery, $sNewTableName, $aNewDisplayColumns, $aNewStoreColumns, $aNewColumnNames, $aNewDisplayColumnTypes, $aNewDatabaseColumnTypes) { | |
| 48 | + $this->sQuery = $sNewQuery; | |
| 49 | + $this->sTableName = $sNewTableName; | |
| 50 | + $this->aDisplayColumns = $aNewDisplayColumns; | |
| 51 | + $this->aStoreColumns = $aNewStoreColumns; | |
| 52 | + $this->aColumnNames = $aNewColumnNames; | |
| 53 | + $this->aDisplayColumnTypes = $aNewDisplayColumnTypes; | |
| 54 | + $this->aDatabaseColumnTypes = $aNewDatabaseColumnTypes; | |
| 55 | + } | |
| 56 | + | |
| 57 | + function setUniqueName($sNewValue) { | |
| 58 | + $this->sUniqueName = $sNewValue; | |
| 59 | + } | |
| 60 | + | |
| 61 | + function setTableWidth($iNewValue) { | |
| 62 | + $this->iTableWidth = $iNewValue; | |
| 63 | + } | |
| 64 | + | |
| 65 | + function setTextAreaRows($iNewValue) { | |
| 66 | + $this->iTextAreaRows = $iNewValue; | |
| 67 | + } | |
| 68 | + | |
| 69 | + function setTextAreaDisplayColumns($iNewValue) { | |
| 70 | + $this->iTextAreaDisplayColumns = $iNewValue; | |
| 71 | + } | |
| 72 | + | |
| 73 | + function setTableHeading($sNewValue) { | |
| 74 | + $this->sTableHeading = $sNewValue; | |
| 75 | + } | |
| 76 | + | |
| 77 | + function setRenderIndividualTableForEachResult($bNewValue) { | |
| 78 | + $this->bIndividualTableForEachResult = $bNewValue; | |
| 79 | + } | |
| 80 | + | |
| 81 | + function & render() { | |
| 82 | + $sql = new Owl_DB(); | |
| 83 | + $sql->query($this->sQuery); | |
| 84 | + if ($sql->next_record()) {; | |
| 85 | + $sToRender = ""; | |
| 86 | + $sToRender .= "<table border = 0, cellpadding = 5 " . (isset($this->iTableWidth) ? ", width = $this->iTableWidth" : "") . " >\n"; | |
| 87 | + $sToRender .= "<input type=\"hidden\" name=\"unique_start_" . $this->sUniqueName . "\" value=\"\" />\n"; | |
| 88 | + $sToRender .= "<input type=\"hidden\" name=\"$this->sUniqueName\" value=\"" . $sql->f("id") . "\" />\n"; | |
| 89 | + $sToRender .= "<input type=\"hidden\" name=\"" . $this->sUniqueName . "_tn\" value=\"$this->sTableName\" />\n"; | |
| 90 | + | |
| 91 | + if (isset($this->sTableHeading)) { | |
| 92 | + $sToRender .= "<caption align = left><b>$this->sTableHeading</b></caption>\n"; | |
| 93 | + } | |
| 94 | + | |
| 95 | + if ($sql->num_rows() == 0) { | |
| 96 | + $sToRender .= "<tr>\n"; | |
| 97 | + $sToRender .= "<td colspan=" . count($this->aDisplayColumns) . ">No " . (isset($this->sTableHeading) ? "$this->sTableHeading" : "") . " data</td>\n"; | |
| 98 | + $sToRender .= "</tr>\n"; | |
| 99 | + } else { | |
| 100 | + for ($i = 0; $i < count($this->aDisplayColumns); $i++) { | |
| 101 | + $sToRender .= "<tr>\n"; | |
| 102 | + $sToRender .= "<input type=\"hidden\" name=\"" . $this->sUniqueName . "_tc\" value=\"" . $this->aStoreColumns[$i] . "\" />\n"; | |
| 103 | + $sToRender .= "<input type=\"hidden\" name=\"" . $this->sUniqueName . "_type\" value=\"" . $this->aDatabaseColumnTypes[$i] . "\" />\n"; | |
| 104 | + $sToRender .= "\t<td>" . $this->aColumnNames[$i] . "</td>\n"; | |
| 105 | + switch ($this->aDisplayColumnTypes[$i]) { | |
| 106 | + case 1: | |
| 107 | + //plain text field | |
| 108 | + $sToRender .= "\t<td><input type=\"text\" name=\"" . $this->sUniqueName . "_" . $i . "_value\" value=\"" . $sql->f($this->aDisplayColumns[$i]) . "\"</td>\n"; | |
| 109 | + break; | |
| 110 | + case 2: | |
| 111 | + //boolean value | |
| 112 | + //$sToRender .= "\t<td><textarea cols=$this->iTextAreaDisplayColumns rows=$this->iTextAreaRows READONLY>" . $sql->f($this->aDisplayColumns[$i]) . "</textarea></td>\n"; | |
| 113 | + break; | |
| 114 | + case 3: | |
| 115 | + break; | |
| 116 | + default: | |
| 117 | + break; | |
| 118 | + } | |
| 119 | + $sToRender .= "</tr>\n"; | |
| 120 | + } | |
| 121 | + | |
| 122 | + /*while ($sql->next_record()) { | |
| 123 | + //$sToRender .= "<tr><td>\n"; | |
| 124 | + for ($i = 0; $i < count($this->aDisplayColumns); $i++) { | |
| 125 | + $sToRender .= "<tr>\n"; | |
| 126 | + $sToRender .= "<input type=\"hidden\" name=\"" . $this->sUniqueName . "_tc\" value=\"" . $this->aStoreColumns[$i] . "\" />\n"; | |
| 127 | + $sToRender .= "<input type=\"hidden\" name=\"" . $this->sUniqueName . "_type\" value=\"" . $this->aDatabaseColumnTypes[$i] . "\" />\n"; | |
| 128 | + $sToRender .= "\t<td>" . $this->aColumnNames[$i] . "</td>\n"; | |
| 129 | + switch ($this->aDisplayColumnTypes[$i]) { | |
| 130 | + case 1: | |
| 131 | + //plain text field | |
| 132 | + $sToRender .= "\t<td><input type=\"text\" name=\"" . $this->sUniqueName . "_" . $i . "_value\" value=\"" . $sql->f($this->aDisplayColumns[$i]) . "\"</td>\n"; | |
| 133 | + break; | |
| 134 | + case 2: | |
| 135 | + //boolean value | |
| 136 | + //$sToRender .= "\t<td><textarea cols=$this->iTextAreaDisplayColumns rows=$this->iTextAreaRows READONLY>" . $sql->f($this->aDisplayColumns[$i]) . "</textarea></td>\n"; | |
| 137 | + break; | |
| 138 | + case 3: | |
| 139 | + break; | |
| 140 | + default: | |
| 141 | + break; | |
| 142 | + } | |
| 143 | + $sToRender .= "</tr>\n"; | |
| 144 | + } | |
| 145 | + }*/ | |
| 146 | + } | |
| 147 | + $sToRender .= "<input type=\"hidden\" name=\"unique_end_" . $this->sUniqueName . "\" value=\"\" />\n"; | |
| 148 | + $sToRender .= "</table>\n"; | |
| 149 | + } | |
| 150 | + return $sToRender; | |
| 151 | + } | |
| 152 | + | |
| 153 | + function replaceValues($sQueryStringText, $sql) { | |
| 154 | + return $sQueryStringText; | |
| 155 | + } | |
| 156 | + | |
| 157 | +} | |
| 158 | + | |
| 159 | +?> | ... | ... |