diff options
Diffstat (limited to 'codebase/grid_config.php')
-rw-r--r-- | codebase/grid_config.php | 423 |
1 files changed, 0 insertions, 423 deletions
diff --git a/codebase/grid_config.php b/codebase/grid_config.php deleted file mode 100644 index 24297b2..0000000 --- a/codebase/grid_config.php +++ /dev/null @@ -1,423 +0,0 @@ -<?php -/* - @author dhtmlx.com - @license GPL, see license.txt -*/ - -class GridConfiguration{ - - /*! attaching header functionality - */ - protected $headerDelimiter = ','; - protected $headerNames = false; - protected $headerAttaches = array(); - protected $footerAttaches = array(); - protected $headerWidthsUnits = 'px'; - - protected $headerIds = false; - protected $headerWidths = false; - protected $headerTypes = false; - protected $headerAlign = false; - protected $headerVAlign = false; - protected $headerSorts = false; - protected $headerColors = false; - protected $headerHidden = false; - protected $headerFormat = false; - - protected $convert_mode = false; - - function __construct($headers = false){ - if ($headers === false || $headers === true ) - $this->headerNames = $headers; - else - $this->setHeader($headers); - } - - /*! brief convert list of parameters to an array - @param param - list of values or array of values - @return array of parameters - */ - private function parse_param_array($param, $check=false, $default = ""){ - if (gettype($param) == 'string') - $param = explode($this->headerDelimiter, $param); - - if ($check){ - for ($i=0; $i < sizeof($param); $i++) { - if (!array_key_exists($param[$i],$check)) - $param[$i] = $default; - } - } - return $param; - } - - /*! sets delimiter for string arguments in attach header functions (default is ,) - @param headerDelimiter - string delimiter - */ - public function setHeaderDelimiter($headerDelimiter) { - $this->headerDelimiter = $headerDelimiter; - } - - /*! sets header - @param names - array of names or string of names, delimited by headerDelimiter (default is ,) - */ - public function setHeader($names) { - if ($names instanceof DataConfig){ - $out = array(); - for ($i=0; $i < sizeof($names->text); $i++) - $out[]=$names->text[$i]["name"]; - $names = $out; - } - - $this->headerNames = $this->parse_param_array($names); - } - - /*! sets init columns width in pixels - @param wp - array of widths or string of widths, delimited by headerDelimiter (default is ,) - */ - public function setInitWidths($wp) { - $this->headerWidths = $this->parse_param_array($wp); - $this->headerWidthsUnits = 'px'; - } - - /*! sets init columns width in persents - @param wp - array of widths or string of widths, delimited by headerDelimiter (default is ,) - */ - public function setInitWidthsP($wp) { - $this->setInitWidths($wp); - $this->headerWidthsUnits = '%'; - } - - /*! sets columns align - @param alStr - array of aligns or string of aligns, delimited by headerDelimiter (default is ,) - */ - public function setColAlign($alStr) { - $this->headerAlign = $this->parse_param_array($alStr, - array("right"=>1, "left"=>1, "center"=>1, "justify"=>1), - "left"); - } - - /*! sets columns vertical align - @param alStr - array of vertical aligns or string of vertical aligns, delimited by headerDelimiter (default is ,) - */ - public function setColVAlign($alStr) { - $this->headerVAlign = $this->parse_param_array($alStr, - array("baseline"=>1, "sub"=>1, "super"=>1, "top"=>1, "text-top"=>1, "middle"=>1, "bottom"=>1, "text-bottom"=>1), - "top"); - } - - /*! sets column types - @param typeStr - array of types or string of types, delimited by headerDelimiter (default is ,) - */ - public function setColTypes($typeStr) { - $this->headerTypes = $this->parse_param_array($typeStr); - } - - /*! sets columns sorting - @param sortStr - array if sortings or string of sortings, delimited by headerDelimiter (default is ,) - */ - public function setColSorting($sortStr) { - $this->headerSorts = $this->parse_param_array($sortStr); - } - - /*! sets columns colors - @param colorStr - array of colors or string of colors, delimited by headerDelimiter (default is ,) - if (color should not be applied it's value should be null) - */ - public function setColColor($colorStr) { - $this->headerColors = $this->parse_param_array($colorStr); - } - - /*! sets hidden columns - @param hidStr - array of bool values or string of bool values, delimited by headerDelimiter (default is ,) - */ - public function setColHidden($hidStr) { - $this->headerHidden = $this->parse_param_array($hidStr); - } - - /*! sets columns id - @param idsStr - array of ids or string of ids, delimited by headerDelimiter (default is ,) - */ - public function setColIds($idsStr) { - $this->headerIds = $this->parse_param_array($idsStr); - } - - /*! sets number/date format - @param formatArr - array of mask formats for number/dates , delimited by headerDelimiter (default is ,) - */ - public function setColFormat($formatArr) { - $this->headerFormat = $this->parse_param_array($formatArr); - } - - /*! attaches header - @param values - array of header names or string of header names, delimited by headerDelimiter (default is ,) - @param styles - array of header styles or string of header styles, delimited by headerDelimiter (default is ,) - */ - public function attachHeader($values, $styles = null, $footer = false) { - $header = array(); - $header['values'] = $this->parse_param_array($values); - if ($styles != null) { - $header['styles'] = $this->parse_param_array($styles); - } else { - $header['styles'] = null; - } - if ($footer) - $this->footerAttaches[] = $header; - else - $this->headerAttaches[] = $header; - } - - /*! attaches footer - @param values - array of footer names or string of footer names, delimited by headerDelimiter (default is ,) - @param styles - array of footer styles or string of footer styles, delimited by headerDelimiter (default is ,) - */ - public function attachFooter($values, $styles = null) { - $this->attachHeader($values, $styles, true); - } - - private function auto_fill($mode){ - $headerWidths = array(); - $headerTypes = array(); - $headerSorts = array(); - $headerAttaches = array(); - - for ($i=0; $i < sizeof($this->headerNames); $i++) { - $headerWidths[] = 100; - $headerTypes[] = "ro"; - $headerSorts[] = "connector"; - $headerAttaches[] = "#connector_text_filter"; - } - if ($this->headerWidths == false) - $this->setInitWidths($headerWidths); - if ($this->headerTypes == false) - $this->setColTypes($headerTypes); - - if ($mode){ - if ($this->headerSorts == false) - $this->setColSorting($headerSorts); - $this->attachHeader($headerAttaches); - } - } - - public function defineOptions($conn){ - if (!$conn->is_first_call()) return; //render head only for first call - - $config = $conn->get_config(); - $full_header = ($this->headerNames === true); - - if (gettype($this->headerNames) == 'boolean') //auto-config - $this->setHeader($config); - $this->auto_fill($full_header); - - if (isset($_GET["dhx_colls"])) return; - - $fillList = array(); - for ($i = 0; $i < count($this->headerNames); $i++) - if ($this->headerTypes[$i] == "co" || $this->headerTypes[$i] == "coro") - $fillList[$i] = true; - - for ($i = 0; $i < count($this->headerAttaches); $i++) { - for ($j = 0; $j < count($this->headerAttaches[$i]['values']); $j++) { - if ($this->headerAttaches[$i]['values'][$j] == "#connector_select_filter" - || $this->headerAttaches[$i]['values'][$j] == "#select_filter") { - $fillList[$j] = true;; - } - } - } - - $temp = array(); - foreach($fillList as $k => $v) - $temp[] = $k; - if (count($temp)) - $_GET["dhx_colls"] = implode(",",$temp); - } - - - /*! gets header as array - */ - private function getHeaderArray() { - $head = Array(); - $head[0] = $this->headerNames; - $head = $this->getAttaches($head, $this->headerAttaches); - return $head; - } - - - /*! get footer as array - */ - private function getFooterArray() { - $foot = Array(); - $foot = $this->getAttaches($foot, $this->footerAttaches); - return $foot; - } - - - /*! gets array of data with attaches - */ - private function getAttaches($to, $from) { - for ($i = 0; $i < count($from); $i++) { - $line = $from[$i]['values']; - $to[] = $line; - } - return $to; - } - - - /*! calculates rowspan array according #cspan markers - */ - private function processCspan($data) { - $rspan = Array(); - for ($i = 0; $i < count($data); $i++) { - $last = 0; - $rspan[$i] = Array(); - for ($j = 0; $j < count($data[$i]); $j++) { - $rspan[$i][$j] = 0; - if ($data[$i][$j] === '#cspan') { - $rspan[$i][$last]++; - } else { - $last = $j; - } - } - } - return $rspan; - } - - - /*! calculates colspan array according #rspan markers - */ - private function processRspan($data) { - $last = Array(); - $cspan = Array(); - for ($i = 0; $i < count($data); $i++) { - $cspan[$i] = Array(); - for ($j = 0; $j < count($data[$i]); $j++) { - $cspan[$i][$j] = 0; - if (!isset($last[$j])) $last[$j] = 0; - if ($data[$i][$j] === '#rspan') { - $cspan[$last[$j]][$j]++; - } else { - $last[$j] = $i; - } - } - } - return $cspan; - } - - - /*! sets mode of output format: usual mode or convert mode. - * @param mode - * true - convert mode, false - otherwise - */ - public function set_convert_mode($mode) { - $this->convert_mode = $mode; - } - - - /*! adds header configuration in output XML - */ - public function attachHeaderToXML($conn, $out) { - if (!$conn->is_first_call()) return; //render head only for first call - - $head = $this->getHeaderArray(); - $foot = $this->getFooterArray(); - $rspan = $this->processRspan($head); - $cspan = $this->processCspan($head); - - $str = '<head>'; - - if ($this->convert_mode) $str .= "<columns>"; - - for ($i = 0; $i < count($this->headerNames); $i++) { - $str .= '<column'; - $str .= ' type="'. $this->headerTypes[$i].'"'; - $str .= ' width="'.$this->headerWidths[$i].'"'; - $str .= $this->headerIds ? ' id="'.$this->headerIds[$i].'"' : ''; - $str .= $this->headerAlign[$i] ? ' align="'.$this->headerAlign[$i].'"' : ''; - $str .= $this->headerVAlign[$i] ? ' valign="'.$this->headerVAlign[$i].'"' : ''; - $str .= $this->headerSorts[$i] ? ' sort="'.$this->headerSorts[$i].'"' : ''; - $str .= $this->headerColors[$i] ? ' color="'.$this->headerColors[$i].'"' : ''; - $str .= $this->headerHidden[$i] ? ' hidden="'.$this->headerHidden[$i].'"' : ''; - $str .= $this->headerFormat[$i] ? ' format="'.$this->headerFormat[$i].'"' : ''; - $str .= $cspan[0][$i] ? ' colspan="'.($cspan[0][$i] + 1).'"' : ''; - $str .= $rspan[0][$i] ? ' rowspan="'.($rspan[0][$i] + 1).'"' : ''; - $str .= '>'.$this->headerNames[$i].'</column>'; - } - - if (!$this->convert_mode) { - $str .= '<settings><colwidth>'.$this->headerWidthsUnits.'</colwidth></settings>'; - if ((count($this->headerAttaches) > 0)||(count($this->footerAttaches) > 0)) { - $str .= '<afterInit>'; - } - for ($i = 0; $i < count($this->headerAttaches); $i++) { - $str .= '<call command="attachHeader">'; - $str .= '<param>'.implode(",",$this->headerAttaches[$i]['values']).'</param>'; - if ($this->headerAttaches[$i]['styles'] != null) { - $str .= '<param>'.implode(",",$this->headerAttaches[$i]['styles']).'</param>'; - } - $str .= '</call>'; - } - for ($i = 0; $i < count($this->footerAttaches); $i++) { - $str .= '<call command="attachFooter">'; - $str .= '<param>'.implode(",",$this->footerAttaches[$i]['values']).'</param>'; - if ($this->footerAttaches[$i]['styles'] != null) { - $str .= '<param>'.implode(",",$this->footerAttaches[$i]['styles']).'</param>'; - } - $str .= '</call>'; - } - if ((count($this->headerAttaches) > 0)||(count($this->footerAttaches) > 0)) { - $str .= '</afterInit>'; - } - } else { - $str .= "</columns>"; - for ($i = 1; $i < count($head); $i++) { - $str .= "<columns>"; - for ($j = 0; $j < count($head[$i]); $j++) { - $str .= '<column'; - $str .= $cspan[$i][$j] ? ' colspan="'.($cspan[$i][$j] + 1).'"' : ''; - $str .= $rspan[$i][$j] ? ' rowspan="'.($rspan[$i][$j] + 1).'"' : ''; - $str .= '>'.$head[$i][$j].'</column>'; - } - $str .= "</columns>\n"; - } - } - $str .= '</head>'; - - - if ($this->convert_mode && count($foot) > 0) { - $rspan = $this->processRspan($foot); - $cspan = $this->processCspan($foot); - $str .= "<foot>"; - for ($i = 0; $i < count($foot); $i++) { - $str .= "<columns>"; - for ($j = 0; $j < count($foot[$i]); $j++) { - $str .= '<column'; - $str .= $cspan[$i][$j] ? ' colspan="'.($cspan[$i][$j] + 1).'"' : ''; - $str .= $rspan[$i][$j] ? ' rowspan="'.($rspan[$i][$j] + 1).'"' : ''; - $str .= '>'.$foot[$i][$j].'</column>'; - } - $str .= "</columns>\n"; - } - $str .= "</foot>"; - } - - $out->add($str); - } -} - -?>
\ No newline at end of file |