public static function daoToCategoryPrepopulated($listDAO) { $list = array(); if (!is_array($listDAO)) { $listDAO = array($listDAO); } $previousLine = null; $feedsDao = array(); $feedDao = FreshRSS_Factory::createFeedDAO(); foreach ($listDAO as $line) { if ($previousLine['c_id'] != null && $line['c_id'] !== $previousLine['c_id']) { // End of the current category, we add it to the $list $cat = new FreshRSS_Category($previousLine['c_name'], $feedDao->daoToFeed($feedsDao, $previousLine['c_id'])); $cat->_id($previousLine['c_id']); $list[$previousLine['c_id']] = $cat; $feedsDao = array(); //Prepare for next category } $previousLine = $line; $feedsDao[] = $line; } // add the last category if ($previousLine != null) { $cat = new FreshRSS_Category($previousLine['c_name'], $feedDao->daoToFeed($feedsDao, $previousLine['c_id'])); $cat->_id($previousLine['c_id']); $list[$previousLine['c_id']] = $cat; } return $list; }