getID() == $path) { $this->grant($player); } } else { //get child with the next level id and dispatch $tmp = explode(";",$path); $c = $this->getChildDataByID($tmp[1]); if($c != null) { // check if it's really own child unset($tmp[0]); $c->grantNode(implode(";",$tmp),$player); } } } function denyNode($path,$player) { if(is_numeric($path)) { //it's me (id == numeric) if($this->getID() == $path) { $this->deny($player); } } else { //get child with the next level id and dispatch $tmp = explode(";",$path); if($tmp[0] == $this->getID()) { // it's my id! $c = $this->getChildDataByID($tmp[1]); if($c != null) { // check if it's really own child unset($tmp[0]); $c->denyNode(implode(";",$tmp),$player); } } } } function getPath($path = "") { if($path != "") { $path = ";".$path; } $path = $this->getID().$path; if($this->hasParent()) { $path = $this->parent->getPath($path); } return $path; } private function hasParent() { return ($this->parent != null); } } ?>