Commit e1f66e65aab7a20a8ca7436b8acb4e250f7f66d3

Authored by rob
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
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 +?>
... ...