index 46f427a28fe732500b423f6719494035226369bd..225509525ad1420ae3c3b97d4b2ddb220d2473ec 100644 (file)
var $baseSelector;
- function listing($filename)
+ function listing($source, $isString = FALSE)
{
global $config;
global $class_mapping;
// Initialize pid
$this->pid= preg_replace("/[^0-9]/", "", microtime(TRUE));
- if (!$this->load($filename)) {
- die("Cannot parse $filename!");
+ if($isString){
+ if(!$this->loadString($source)){
+ die("Cannot parse $source!");
+ }
+ }else{
+ if (!$this->loadFile($source)) {
+ die("Cannot parse $source!");
+ }
}
// Set base for filter
}
// Move footer information
- $this->showFooter= ($config->get_cfg_value("listSummary") == "true");
+ $this->showFooter= ($config->get_cfg_value("core","listSummary") == "true");
// Register build in filters
$this->registerElementFilter("objectType", "listing::filterObjectType");
return false;
}
+ function loadFile($filename)
+ {
+ return($this->loadString(file_get_contents($filename)));
+ }
- function load($filename)
+ function loadString($contents)
{
- $contents = file_get_contents($filename);
$this->xmlData= xml::xml2array($contents, 1);
if (!isset($this->xmlData['list'])) {
// Fill with department browser if configured this way
$departmentIterator= new departmentSortIterator($this->departments, $this->sortDirection[$this->sortColumn]);
foreach ($departmentIterator as $row => $entry){
- $result.="<tr>";
+ $rowResult= "<tr>";
// Render multi select if needed
if ($this->multiSelect || $this->singleSelect) {
- $result.="<td style='text-align:center;padding:0;' class='list1'> </td>";
+ $rowResult.="<td style='text-align:center;padding:0;' class='list1'> </td>";
}
// Render defined department columns, fill the rest with some stuff
$colspan= $config['span'];
$this->useSpan= true;
}
- $result.="<td colspan='$colspan' ".$this->colprops[$index]." class='list1'>".$this->renderCell($config['value'], $entry, $row)."</td>";
+ $rowResult.="<td colspan='$colspan' ".$this->colprops[$index]." class='list1'>".$this->renderCell($config['value'], $entry, $row)."</td>";
$rest-= $colspan;
}
// Fill remaining cols with nothing
$last= $this->numColumns - $rest;
for ($i= 0; $i<$rest; $i++){
- $result.= "<td ".$this->colprops[$last+$i-1]." class='list1'> </td>";
+ $rowResult.= "<td ".$this->colprops[$last+$i-1]." class='list1'> </td>";
}
- $result.="</tr>";
+ $rowResult.="</tr>";
+ // Apply label to objecttype icon?
+ if (preg_match("/<objectType:([^:]+):(.*)\/>/i", $rowResult, $matches)){
+ $objectType= image($matches[1], null, LDAP::fix(base64_decode($matches[2])));
+ $rowResult= preg_replace("/<objectType[^>]+>/", $objectType, $rowResult);
+ }
+ $result.= $rowResult;
$alt++;
}
+
+
$deps= $alt;
}