retrieve("SELECT chapter_id,chapter_sef,chapter_name,chapter_parent FROM #page_chapters ORDER BY chapter_id ASC", true); $chapter = array(); foreach($books as $row) { $id = (int) $row['chapter_id']; $chapter[$id] = $row; } return $chapter; } /** * Takes an existing array (eg. from page table) and adds in chapter and book field data based on the given chapter field. * @param array $row * @param string $chapterField * @return array|false */ public static function addSefFields(&$row = array(), $chapterField = 'page_chapter') { if($chapterField ==='page_chapter' && empty($row['page_sef'])) { $row['page_sef'] = '--sef-not-assigned--'; } if(empty($row[$chapterField])) // nothing to add, so return what was sent. { return $row; } $chapID = (int) $row[$chapterField]; static $chaptersList; if(empty($chaptersList)) { $chaptersList = self::load(); } // merge in the chapter data. foreach($chaptersList[$chapID] as $k => $v) { if(!isset($row[$k])) { $row[$k] = $v; } } /* if(isset($row['book_id'])) { return $row; }*/ // merge in the book data. $parent = (int) $row['chapter_parent']; $row['book_id'] = $parent; $row['book_name'] = varset($chaptersList[$parent]['chapter_name'], '--sef-not-assigned--'); $row['book_sef'] = vartrue($chaptersList[$parent]['chapter_sef'], '--sef-not-assigned--'); return $row; } }