_uuid = $uuid; //$this->setGridlineMode(TREEVIEW_GRIDLINE_DOTTED); if ($treename != false) { $this->setTreeName($treename); } $this->setBackgroundColors(array($cfg['color']['table_light'], $cfg['color']['table_dark'])); $this->_user = new cApiUser($auth->auth["uid"]); } function processParameters() { if (($items = $this->_user->getUserProperty("expandstate", $this->_uuid)) !== false) { $list = unserialize($items); foreach ($list as $litem) { $this->setCollapsed($litem); } } if (!empty($this->_name)) { $treename = $this->_name . "_"; } if (array_key_exists($treename . "collapse", $_GET)) { $this->setCollapsed($_GET[$treename . "collapse"]); } if (array_key_exists($treename . "expand", $_GET)) { $this->setExpanded($_GET[$treename . "expand"]); } $xlist = array(); // Define variable before using it by reference... $this->getCollapsedList($xlist); $slist = serialize($xlist); $this->_user->setUserProperty("expandstate", $this->_uuid, $slist); } /** * applies an action to all items in the tree. * * @param cApiClickableAction action action object * @return void * @access public */ function applyGlobalAction($action) { } // end of member function applyGlobalAction /** * removes the action from all treeitems. * * @param cApiClickableAction action Removes the action from the global context. * @return void * @access public */ function removeGlobalAction($action) { } // end of member function removeGlobalAction /** * flushes all actions * * @return void * @access public */ function flushGlobalActions() { } // end of member function flushGlobalActions /** * sets an action to a specific item. * * @param mixed item cTreeItem-Object or an id of a TreeItem-Object * @param cApiClickableAction action * @return void * @access public */ function applyItemAction($item, $action) { } // end of member function applyItemAction /** * unsets an action from a specific item. Note that you can unset global actions * using this method! * * @param mixed item cTreeItem-Object or an id of a TreeItem-Object * @param cApiClickableAction action Action to unset * @return void * @access public */ function removeItemAction($item, $action) { } // end of member function removeItemAction /** * flushes all actions for a specific item * * @param mixed item cTreeItem-Object or an id of a TreeItem-Object * @return void * @access public */ function flushItemActions($item) { } // end of member function flushItemActions /** * Applies an action to all items with a certain attribute set. * * @param array attributes Values which need to match. The array key is the attribute name. Multiple array entries are connected with "AND". * @param cApiClickableAction action Action to apply * @return void * @access public */ function applyActionByItemAttribute($attributes, $action) { } // end of member function applyActionByItemAttribute /** * Removes an action from all items with a certain attribute set. * * @param array attributes Values which need to match. The array key is the attribute name. Multiple array entries are connected with "AND". * @param cApiClickableAction action Action to remove * @return void * @access public */ function removeActionByItemAttribute($attributes, $action) { } // end of member function removeActionByItemAttribute /** * Removes all actions for items with specific attributes * * @param array attributes Values which need to match. The array key is the attribute name. Multiple array entries are connected with "AND". * @return void * @access public */ function flushActionByItemAttribute($attributes) { } // end of member function flushActionByItemAttribute /** * * * @param int mode Sets the gridline mode to one of the following values: * TREEVIEW_GRIDLINE_SOLID * TREEVIEW_GRIDLINE_DASHED * TREEVIEW_GRIDLINE_DOTTED * TREEVIEW_GRIDLINE_NONE * * @return void * @access public */ function setGridlineMode($mode) { $this->_gridlineMode = $mode; } // end of member function setGridlineMode function setBackgroundMode($mode) { $this->_backgroundMode = $mode; } function setMouseoverMode($mode) { $this->_mouseoverMode = $mode; } function setBackgroundColors($colors) { $this->_backgroundColors = $colors; } /** * * * @return void * @access public */ function render($with_root = true) { $objects = $this->flatTraverse(0); if ($with_root == false) { unset($objects[0]); } $img = new cHTMLImage; $r_table = new cHTMLTable; $r_row = new cHTMLTableRow; $r_leftcell = new cHTMLTableData; $r_rightcell = new cHTMLTableData; $r_actioncell = new cHTMLTableData; $img_spacer = new cHTMLImage; $img_spacer->updateAttributes(array('width' => '16', 'height' => '20')); $img_spacer->setAlt(""); $img_spacer->setSrc("images/spacer.gif"); $img_spacer->advanceID(); $r_table->setCellPadding(0); $r_table->setCellSpacing(0); $r_table->setWidth("100%"); $r_rightcell->setStyleDefinition("padding-left", "3px"); $r_rightcell->setVerticalAlignment("middle"); $r_leftcell->setVerticalAlignment("middle"); $r_leftcell->updateAttributes(array("nowrap" => "nowrap")); $r_rightcell->updateAttributes(array("nowrap" => "nowrap")); $r_actioncell->updateAttributes(array("nowrap" => "nowrap")); $r_leftcell->setWidth("1%"); $r_rightcell->setWidth("100%"); $r_actioncell->setAlignment("right"); $r_actioncell->setWidth("1%"); if (!is_object($this->_baseLink)) { $this->_baseLink = new cHTMLLink; } $lastitem = array(); foreach ($objects as $key => $object) { $img->setAlt(""); $r_table->advanceID(); $r_rightcell->advanceID(); $r_leftcell->advanceID(); $r_row->advanceID(); $r_actioncell->advanceID(); for ($level = 1; $level < $object->_level + 1; $level++) { if ($object->_level == $level) { if ($object->_next === false) { if (count($object->_subitems) > 0) { $link = $this->_setExpandCollapseLink($this->_baseLink, $object); $link->advanceID(); $img->setSrc($this->_getExpandCollapseIcon($object)); $img->advanceID(); $link->setContent($img); $out .= $link->render(); } else { if ($level == 1 && $with_root == false) { $out .= $img_spacer->render(); } else { $img->setSrc($this->_buildImagePath("grid_linedownrightend.gif")); $img->advanceID(); $out .= $img->render(); } } $lastitem[$level] = true; } else { if (count($object->_subitems) > 0) { $link = $this->_setExpandCollapseLink($this->_baseLink, $object); $link->advanceID(); $img->setSrc($this->_getExpandCollapseIcon($object)); $img->advanceID(); $link->setContent($img); $out .= $link->render(); } else { if ($level == 1 && $with_root == false) { $out .= $img_spacer->render(); } else { $img->setSrc($this->_buildImagePath("grid_linedownright.gif")); $out .= $img->render(); } } $lastitem[$level] = false; } } else { if ($lastitem[$level] == true) { $out .= $img_spacer->render(); } else { if ($level == 1 && $with_root == false) { $out .= $img_spacer->render(); } else { $img->setSrc($this->_buildImagePath("/grid_linedown.gif")); $img->advanceID(); $out .= $img->render(); } } } } /* Fetch Render icon from the meta object */ if (is_object($object->payload)) { /* Fetch payload object */ $meta = $object->payload->getMetaObject(); if (is_object($meta)) { $icon = $meta->getIcon(); $actions = $meta->getActions(); $r_actioncell->setContent($actions); $img->setAlt($meta->getDescription()); $img->advanceID(); /* Check if we've got an edit link */ if (count($meta->_editAction) > 0) { $meta->defineActions(); $edit = $meta->getAction($meta->_editAction); $edit->setIcon($icon); $renderedIcon = $edit->render(); $edit->_link->setContent($object->_name); $edit->_link->advanceID(); $renderedName = $edit->_link->render(); } else { $img->setSrc($icon); $renderedIcon = $img->render(); $renderedName = $object->_name; } } } else { if (isset($object->_attributes["icon"])) { $img->setSrc($object->_attributes["icon"]); $renderedIcon = $img->render(); $renderedName = $object->_name; } else { /* Fetch tree icon */ if ($object->_id == 0) { $icon = $object->_treeIcon; $img->setSrc($icon); $renderedIcon = $img->render(); $renderedName = $object->_name; } else { $icon = $object->_treeIcon; $img->setSrc($icon); $renderedIcon = $img->render(); $renderedName = $object->_name; } } } if ($this->_backgroundMode == TREEVIEW_BACKGROUND_SHADED) { if (current($this->_backgroundColors) === false) { reset($this->_backgroundColors); } $color = current($this->_backgroundColors); next($this->_backgroundColors); $r_rightcell->setBackgroundColor($color); $r_leftcell->setBackgroundColor($color); $r_actioncell->setBackgroundColor($color); } $img->setSrc($icon); $r_leftcell->setContent($out . $renderedIcon); $r_rightcell->setContent($renderedName); $r_row->setContent(array($r_leftcell, $r_rightcell, $r_actioncell)); $r_table->setContent($r_row); $result .= $r_table->render(); unset($out); } return ('
' . $result . '
'); } // end of member function render function _getExpandCollapseIcon($object) { if ($object->_collapsed == true) { return ($this->_buildImagePath("grid_expand.gif")); } else { return ($this->_buildImagePath("grid_collapse.gif")); } } function _setExpandCollapseLink($link, $object) { if (!empty($this->_name)) { $treename = $this->_name . "_"; } unset($link->_custom[$treename . "expand"]); unset($link->_custom[$treename . "collapse"]); if ($object->_collapsed == true) { $link->setCustom($treename . "expand", $object->_id); } else { $link->setCustom($treename . "collapse", $object->_id); } return ($link); } function _buildImagePath($image) { return ("./images/" . $this->_gridlineMode . "/" . $image); } function setBaseLink($link) { $this->_baseLink = $link; } }