server_id = $server_id; $this->dn = $dn; } /** * Get the DN of this tree item. * * @return DN The DN of this item. */ public function getDN() { if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) { debug_log('Entered (%%)', 33, 1, __FILE__, __LINE__, __METHOD__, $fargs, $this->dn); } return $this->dn; } public function getDNEncode() { return urlencode(preg_replace('/%([0-9a-fA-F]+)/',"%25\\1",$this->dn)); } /** * Get the RDN of this tree items DN. * * @return RDN The RDN of this items DN. */ public function getRDN() { if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) { debug_log('Entered (%%)', 33, 0, __FILE__, __LINE__, __METHOD__, $fargs); } return get_rdn($this->getDN(),0,true); } /** * Set this item as a LDAP base DN item. */ public function setBase() { if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) { debug_log('Entered (%%)', 33, 1, __FILE__, __LINE__, __METHOD__, $fargs); } $this->base_entry = true; } /** * Return if this item is a base DN item. */ public function isBaseDN() { if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) { debug_log('Entered (%%)', 33, 1, __FILE__, __LINE__, __METHOD__, $fargs, $this->base_entry); } return $this->base_entry; } public function setObjectClasses($oc) { if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) { debug_log('Entered (%%)', 33, 1, __FILE__, __LINE__, __METHOD__, $fargs); } $this->objectclasses = $oc; } public function getObjectClasses() { if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) { debug_log('Entered (%%)', 33, 1, __FILE__, __LINE__, __METHOD__, $fargs, $this->objectclasses); } return $this->objectclasses; } public function isInLDAP() { if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) { debug_log('Entered (%%)', 33, 0, __FILE__, __LINE__, __METHOD__, $fargs); } return count($this->objectclasses) ? true : false; } /** * Returns null if the children have never be defined * or an array of the dn of the children */ public function getChildren() { if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) { debug_log('Entered (%%)', 33, 1, __FILE__, __LINE__, __METHOD__, $fargs, $this->children); } if ($this->childsort && ! $this->reading_children) { usort($this->children,'pla_compare_dns'); $this->childsort = false; } return $this->children; } public function readingChildren($bool) { $this->reading_children = $bool; } /** * Do the children require resorting */ public function isChildSorted() { if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) { debug_log('Entered (%%)', 33, 1, __FILE__, __LINE__, __METHOD__, $fargs, $this->childsort); } return $this->childsort; } /** * Mark the children as sorted */ public function childSorted() { if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) { debug_log('Entered (%%)', 33, 1, __FILE__, __LINE__, __METHOD__, $fargs); } $this->childsort = false; } /** * Add a child to this DN entry. * * @param DN The DN to add. */ public function addChild($dn) { if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) { debug_log('Entered (%%)', 33, 0, __FILE__, __LINE__, __METHOD__, $fargs); } if (in_array($dn,$this->children)) { return; } $this->children[] = $dn; $this->childsort = true; } /** * Delete a child from this DN entry. * * @param DN The DN to add. */ public function delChild($dn) { if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) { debug_log('Entered (%%)', 33, 0, __FILE__, __LINE__, __METHOD__, $fargs); } if ($this->children) { # If the parent hasnt been opened in the tree, then there wont be any children. $index = array_search($dn,$this->children); if ($index !== false) { unset($this->children[$index]); } } } /** * Rename this DN. * * @param DN The DN to rename to. */ public function rename($dn) { if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) { debug_log('Entered (%%)', 33, 0, __FILE__, __LINE__, __METHOD__, $fargs); } $this->dn = $dn; } /** * Return if this item has been opened. */ public function isOpened() { if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) { debug_log('Entered (%%)', 33, 1, __FILE__, __LINE__, __METHOD__, $fargs, $this->open); } return $this->open; } /** * Mark this node as closed. */ public function close() { if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) { debug_log('Entered (%%)', 33, 0, __FILE__, __LINE__, __METHOD__, $fargs); } $this->open = false; } /** * Opens the node ; the children of the node must have been defined */ public function open() { if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) { debug_log('Entered (%%)', 33, 0, __FILE__, __LINE__, __METHOD__, $fargs); } $this->open = true; } /** * Mark this node as a leaf. */ public function setLeaf() { if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) { debug_log('Entered (%%)', 33, 1, __FILE__, __LINE__, __METHOD__, $fargs); } $this->leaf = true; } /** * Return if this node is a leaf. */ public function isLeaf() { if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) { debug_log('Entered (%%)', 33, 1, __FILE__, __LINE__, __METHOD__, $fargs, $this->leaf); } return $this->leaf; } /** * Returns the path of the icon file used to represent this node ; * If the icon hasnt been set, it will call get_icon() */ public function getIcon() { if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) { debug_log('Entered (%%)', 33, 1, __FILE__, __LINE__, __METHOD__, $fargs, $this->icon); } if (! $this->icon) { $this->icon = get_icon($this->server_id, $this->dn, $this->objectclasses); } return $this->icon; } /** * Mark this node as a size limited (it wont have all its children). */ public function setSizeLimited() { if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) { debug_log('Entered (%%)', 33, 1, __FILE__, __LINE__, __METHOD__, $fargs); } $this->size_limited = true; } /** * Clear the size limited flag. */ public function unsetSizeLimited() { if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) { debug_log('Entered (%%)', 33, 0, __FILE__, __LINE__, __METHOD__, $fargs); } $this->size_limited = false; } /** * Return if this node has hit an LDAP size limit (and thus doesnt have all its children). */ public function isSizeLimited() { if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) { debug_log('Entered (%%)', 33, 0, __FILE__, __LINE__, __METHOD__, $fargs); } return $this->size_limited; } public function setTemplate($template) { if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) { debug_log('Entered (%%)', 33, 1, __FILE__, __LINE__, __METHOD__, $fargs); } $this->template = $template; } public function getTemplate() { if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) { debug_log('Entered (%%)', 33, 0, __FILE__, __LINE__, __METHOD__, $fargs); } return $this->template; } }