-
Côme Chilliet authored
issue #6187
Unverified9fb6ce7c
<?php
/*
This code is part of FusionDirectory (http://www.fusiondirectory.org/)
Copyright (C) 2003-2010 Cajus Pollmeier
Copyright (C) 2011-2018 FusionDirectory
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
*/
/*!
* \file class_divSelectBox.inc
* Source code for class divSelectBox
*/
/*!
* \brief This class contains all the functions to
* manage select box
*/
class divSelectBox
{
protected $headers = FALSE;
protected $a_entries;
protected $s_summary;
protected $cols;
protected $id;
protected $height = '200px';
/*!
* \brief Default divSelectBox constructor
*/
function __construct ($id)
{
$this->s_summary = '';
$this->a_entries = [];
$this->cols = 0;
$this->id = $id;
}
/*!
* \brief Set new height value
*
* \param integer $h Height
*/
function setHeight ($h)
{
if (is_numeric($h)) {
$this->height = $h.'px';
} else {
$this->height = $h;
}
}
/*!
* \brief Add an entry
*
* \param array $a_entriedata
7172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140
*/
function addEntry ($a_entriedata)
{
$this->a_entries[] = $a_entriedata;
}
/*!
* \brief Set column headers
*
* \param array $headers
*/
function setHeaders ($headers)
{
$this->headers = $headers;
}
/*!
* \brief Draw the list
*/
function drawList ()
{
$s_return = '';
$s_return .= '<div style="border:1px solid rgb(170,170,170);padding-right:1px;height:'.$this->height.';width:100%">'."\n";
$s_return .= '<div style="overflow:auto; width:100%; height:100%;">'."\n";
$s_return .= '<table '.
'class="listingTable" '.
'id="'.$this->id.'" '.
'style="overflow:scroll; '.
'height:98%; '.
'width:100%; '.
'border:none; '.
'"'.
">\n";
$s_return .= $this->generatePage();
$s_return .= '</table></div></div>';
if ($this->headers !== FALSE) {
$s_return .=
'<script>
var sorter'.$this->id.' = tsorter.create(\''.$this->id.'\');
</script>';
}
return $s_return;
}
/*!
* \brief Set summary
*
* \param string $msg
*/
function setSummary ($msg)
{
$this->s_summary = $msg;
}
/*!
* \brief Generate the page
*/
protected function generatePage ()
{
$display = '';
if ($this->headers !== FALSE) {
$display .= '<thead><tr>';
foreach ($this->headers as $header) {
if ($header === '') {
$header = ' ';
}
$display .= '<th>'.$header.'</th>';
}
$display .= '</tr></thead>'."\n";
}
141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210
return $display.'<tbody>'.$this->generateBody().'</tbody>';
}
/*!
* \brief Generate the body
*/
protected function generateBody ()
{
/* If divselectbox is empty, append a single white entry */
if (count($this->a_entries) == 0) {
$str = '';
if ($this->headers !== FALSE) {
$this->cols = count($this->headers);
$str .= '<tr>';
for ($i = 0; $i < ($this->cols); $i++) {
if ($i >= ($this->cols - 1)) {
$str .= '<td style="height:100%;border:0px;"> </td>';
} else {
$str .= '<td style="height:100%;"> </td>';
}
}
$str .= '</tr>';
} else {
$str .= '<tr><td style="height:100%; border-right:0px;"> </td></tr>';
}
return $str;
}
$s_return = '';
$i = count($this->a_entries);
foreach ($this->a_entries as $s_value) {
$i--;
$s_return .= "\n<tr>";
$cnt = 0;
$this->cols = count($s_value);
foreach ($s_value as $s_value2) {
$cnt++;
if (!isset($s_value2['class'])) {
$class = "";
} else {
$class = "class='".$s_value2['class']."'";
}
if (!isset($s_value2['attach'])) {
$style = "";
} else {
$style = " ".$s_value2['attach']." ";
}
$s_return .= "\n<td".$style.$class.">";
if (isset($s_value2['string'])) {
if ($s_value2['string'] === '') {
$s_return .= ' ';
} else {
$s_return .= htmlescape($s_value2['string']);
}
} else {
$s_return .= $s_value2['html'];
}
$s_return .= '</td>';
}
$s_return .= "\n</tr>";
}
$s_return .= "\n<tr>";
for ($i = 0; $i < ($this->cols); $i++) {
if ($i >= ($this->cols - 1)) {
211212213214215216217218219220
$s_return .= '<td style="height:100%;border:0px;"><div style="font-size:1px;"> </div></td>';
} else {
$s_return .= '<td style="height:100%;"><div style="font-size:1px;"> </div></td>';
}
}
$s_return .= '</tr>';
return $s_return;
}
}