public function getSlidePropertiesById($slide_rev) { //TODO : rewrite not to check all the children, if the slide was found $result = array(); $result['slide_id'] = 0; $result['deck_id'] = 0; $result['position'] = 0; $result['link'] = ''; if ($slide_rev) { $this->initConnection(); $children = array(); $childrenArr = array(); $children[] = $this->id; $childrenArr = explode('.', $this->getChildren()); foreach ($childrenArr as $child_id) { if ($child_id > '') { $children[] = $child_id; } } foreach ($children as $child_id) { $deck = new Deck(); $deck->createFromID($child_id); if ($deck->isSlideInThis($slide_rev)) { $result['slide_id'] = $slide_rev; $result['deck_id'] = $deck->id; $slide_position = $this->dbGetOne('SELECT position FROM deck_content WHERE deck_revision_id=:deck_id AND item_type="slide" AND item_id=:slide_id LIMIT 1', array('deck_id' => $deck->id, 'slide_id' => $slide_rev)); $result['position'] = $slide_position; $result['link'] = 'tree-' . $result['deck_id'] . '-slide-' . $result['slide_id'] . '-' . $result['position'] . '-view'; return $result; } } } return $result; }