load($filename)) { die("Cannot parse $filename!"); } } function load($filename) { $contents = file_get_contents($filename); $this->xmlData= xml::xml2array($contents, 1); if (!isset($this->xmlData['list'])) { return false; } $this->xmlData= $this->xmlData["list"]; // Load some definition values foreach (array("departmentBrowser", "departmentRootVisible", "multiSelect") as $token) { if (isset($this->xmlData['definition'][$token]) && $this->xmlData['definition'][$token] == "true"){ $this->$token= true; } } // Parse layout per column $this->colprops= $this->parseLayout($this->xmlData['table']['layout']); // Prepare table headers $this->header= array(); if (isset($this->xmlData['table']['column'])){ foreach ($this->xmlData['table']['column'] as $index => $config) { if (isset($config['header'])) { $this->header[$index]= "colprops[$index].">".xml::getLocalizedAttribute($config['header'], $GLOBALS['t_language']).""; } else { $this->header[$index]= "colprops[$index]."> "; } } } return true; } function render() { #print_a($this->xmlData); #print_a($this->entries); echo "Fill summary, handle empty lists differently, alternating
"; $summary= "empty"; // Initialize list $result= ""; // New table for the real list contents $result.= "
"; $num_cols= count($this->colprops) + ($this->multiSelect?1:0); // Build list header $result.= ""; if ($this->multiSelect) { $result.= ""; } foreach ($this->header as $header) { $result.= $header; } // Add 13px for scroller $result.= "
 
"; // Fill with contents $first= true; foreach ($this->entries as $entry){ $result.=""; foreach ($this->xmlData['table']['column'] as $config) { if ($first) { } else { } } $first= false; } # for ($i= 0; $i<10; $i++) { # $result.=""; # $result.=""; # $result.=""; # $result.=""; # $result.=""; # $result.=""; # $result.=""; # } // Need to fill the list if it's not full (nobody knows why this is 22 ;-)) if (count($this->entries) < 22) { $result.= ""; for ($i= 0; $i<=$num_cols; $i++) { if ($i == 0) { $result.= ""; continue; } if ($i != $num_cols-1) { $result.= ""; } else { $result.= ""; } } $result.= ""; } $result.= "
 Administrativa - [Funktionelle Daten]  
   
"; return $result; } function setEntries($entries) { $this->entries= &$entries; } function parseLayout($layout) { $result= array(); $layout= preg_replace("/^\|/", "", $layout); $layout= preg_replace("/\|$/", "", $layout); $cols= split("\|", $layout); foreach ($cols as $index => $config) { if ($config != "") { $components= split(';', $config); $config= ""; foreach ($components as $part) { if (preg_match("/^r$/", $part)) { $config.= "text-align:right;"; continue; } if (preg_match("/^l$/", $part)) { $config.= "text-align:left;"; continue; } if (preg_match("/^c$/", $part)) { $config.= "text-align:center;"; continue; } if (preg_match("/^[0-9]+(|px|%)$/", $part)) { $config.= "width:$part;"; continue; } } $result[$index]= " style='$config' "; } else { $result[$index]= null; } } return $result; } } ?>