Account Suspended
Account Suspended
This Account has been suspended.
Contact your hosting provider for more information.
 All Data Structures Functions Variables Pages
StackedExtendedGridView.php
1 <?php
2  /*********************************************************************************
3  * Zurmo is a customer relationship management program developed by
4  * Zurmo, Inc. Copyright (C) 2017 Zurmo Inc.
5  *
6  * Zurmo is free software; you can redistribute it and/or modify it under
7  * the terms of the GNU Affero General Public License version 3 as published by the
8  * Free Software Foundation with the addition of the following permission added
9  * to Section 15 as permitted in Section 7(a): FOR ANY PART OF THE COVERED WORK
10  * IN WHICH THE COPYRIGHT IS OWNED BY ZURMO, ZURMO DISCLAIMS THE WARRANTY
11  * OF NON INFRINGEMENT OF THIRD PARTY RIGHTS.
12  *
13  * Zurmo is distributed in the hope that it will be useful, but WITHOUT
14  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
15  * FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more
16  * details.
17  *
18  * You should have received a copy of the GNU Affero General Public License along with
19  * this program; if not, see http://www.gnu.org/licenses or write to the Free
20  * Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
21  * 02110-1301 USA.
22  *
23  * You can contact Zurmo, Inc. with a mailing address at 27 North Wacker Drive
24  * Suite 370 Chicago, IL 60606. or at email address contact@zurmo.com.
25  *
26  * The interactive user interfaces in original and modified versions
27  * of this program must display Appropriate Legal Notices, as required under
28  * Section 5 of the GNU Affero General Public License version 3.
29  *
30  * In accordance with Section 7(b) of the GNU Affero General Public License version 3,
31  * these Appropriate Legal Notices must retain the display of the Zurmo
32  * logo and Zurmo copyright notice. If the display of the logo is not reasonably
33  * feasible for technical reasons, the Appropriate Legal Notices must display the words
34  * "Copyright Zurmo Inc. 2017. All rights reserved".
35  ********************************************************************************/
36 
42  {
43  const ROW_TYPE_TD = 'td';
44 
45  const ROW_TYPE_DIV = 'div';
46 
50  public function renderItems()
51  {
52  if ($this->dataProvider->getItemCount() > 0 || $this->showTableOnEmpty)
53  {
54  echo "<table class=\"{$this->itemsCssClass} stacked-list\">\n";
55  ob_start();
56  $this->renderTableBody();
57  $body = ob_get_clean();
58  $this->renderTableFooter();
59  echo $body; // TFOOT must appear before TBODY according to the standard.
60  echo "</table>";
61  }
62  else
63  {
64  $this->renderEmptyText();
65  }
66  }
67 
71  public function renderTableBody()
72  {
73  $data = $this->dataProvider->getData();
74  $n = count($data);
75  echo "<tbody>\n";
76 
77  if ($n > 0)
78  {
79  for ($row = 0; $row < $n; ++$row) // Not Coding Standard
80  {
81  $this->renderTableRow($row);
82  }
83  }
84  else
85  {
86  echo '<tr><td>';
87  $this->renderEmptyText();
88  echo "</td></tr>\n";
89  }
90  echo "</tbody>\n";
91  }
92 
97  public function renderTableRow($row)
98  {
99  if ($this->rowCssClassExpression !== null)
100  {
101  $data = $this->dataProvider->data[$row];
102  echo '<tr class = "' . $this->evaluateExpression($this->rowCssClassExpression, array('row' => $row, 'data' => $data)) . '">';
103  }
104  elseif (is_array($this->rowCssClass) && ($n = count($this->rowCssClass)) > 0)
105  {
106  echo '<tr class="' . $this->rowCssClass[$row%$n] . '">';
107  }
108  else
109  {
110  echo '<tr>';
111  }
112  $this->renderRowAsTableCellOrDiv($row, self::ROW_TYPE_TD);
113  echo "</tr>\n";
114  }
115 
119  protected function renderRowAsTableCellOrDiv($row, $type)
120  {
121  assert('$type == self::ROW_TYPE_TD || $type == self::ROW_TYPE_DIV');
122  echo static::renderRowTypeForOpenTag($type);
123  foreach ($this->columns as $column)
124  {
125  if ($column instanceof RowMenuColumn)
126  {
127  continue;
128  }
129  elseif ($column instanceof CGridColumn)
130  {
131  $column->attachBehavior('stackedDataCell', new StackedGridColumnBehavior());
132  $column->renderStackedDataCell($row);
133  }
134  else
135  {
136  $column->renderDataCell($row);
137  }
138  }
139  echo static::renderRowTypeForCloseTag($type);
140  foreach ($this->columns as $column)
141  {
142  if ($column instanceof RowMenuColumn)
143  {
144  $column->attachBehavior('stackedDataCell', new StackedGridColumnBehavior());
145  echo static::renderRowTypeForOpenTag($type);
146  $column->renderStackedDataCell($row);
147  echo static::renderRowTypeForCloseTag($type);
148  }
149  }
150  }
151 
156  protected static function renderRowTypeForOpenTag($type)
157  {
158  if ($type == self::ROW_TYPE_TD)
159  {
160  return "<td>\n";
161  }
162  else
163  {
164  return "<div>\n";
165  }
166  }
167 
172  protected static function renderRowTypeForCloseTag($type)
173  {
174  if ($type == self::ROW_TYPE_TD)
175  {
176  return "</td>\n";
177  }
178  else
179  {
180  return "</div>\n";
181  }
182  }
183  }
184 ?>
Generated on Wed Jul 8 2020 07:10:31
Account Suspended
Account Suspended
This Account has been suspended.
Contact your hosting provider for more information.