/** * * get slides of the current slider */ public function getSlidesFromGallery($publishedOnly = false) { $this->validateInited(); $arrSlides = array(); $arrSlideRecords = $this->db->fetch(GlobalsRevSlider::$table_slides, "slider_id=" . $this->id, "slide_order"); $arrChildren = array(); foreach ($arrSlideRecords as $record) { $slide = new RevSlide(); $slide->initByData($record); $slideID = $slide->getID(); $arrIdsAssoc[$slideID] = true; if ($publishedOnly == true) { $state = $slide->getParam("state", "published"); if ($state == "unpublished") { continue; } } $parentID = $slide->getParam("parentid", ""); if (!empty($parentID)) { $lang = $slide->getParam("lang", ""); if (!isset($arrChildren[$parentID])) { $arrChildren[$parentID] = array(); } $arrChildren[$parentID][] = $slide; continue; //skip adding to main list } //init the children array $slide->setArrChildren(array()); $arrSlides[$slideID] = $slide; } //add children array to the parent slides foreach ($arrChildren as $parentID => $arr) { if (!isset($arrSlides[$parentID])) { continue; } $arrSlides[$parentID]->setArrChildren($arr); } $this->arrSlides = $arrSlides; return $arrSlides; }