query(sprintf($execSQL, Post\Attribute::TABLE))->fetchAll($Database::FETCH_COLUMN); foreach($postIDs as $postID) { try { $Post = Post\Factory::build($postID); $User = User\Factory::build($Post->get('user')); $ItemTemplate = Template\Factory::build('feed/item_post'); $ItemTemplate->set('POST', generateItemTemplateData($Post)); $ItemTemplate->set('USER', generateItemTemplateData($User)); $post_templates[] = $ItemTemplate; } catch(Post\Exception $Exception){} catch(User\Exception $Exception){} } } #=============================================================================== # Page feed #=============================================================================== if(!isset($param) OR $param !== 'post') { $PAGE['FEED_SORT'] = Application::get('PAGE.FEED_SORT'); $PAGE['FEED_SIZE'] = Application::get('PAGE.FEED_SIZE'); $execSQL = "SELECT id FROM %s ORDER BY {$PAGE['FEED_SORT']} LIMIT {$PAGE['FEED_SIZE']}"; $pageIDs = $Database->query(sprintf($execSQL, Page\Attribute::TABLE))->fetchAll($Database::FETCH_COLUMN); foreach($pageIDs as $pageID) { try { $Page = Page\Factory::build($pageID); $User = User\Factory::build($Page->get('user')); $ItemTemplate = Template\Factory::build('feed/item_page'); $ItemTemplate->set('PAGE', generateItemTemplateData($Page)); $ItemTemplate->set('USER', generateItemTemplateData($User)); $page_templates[] = $ItemTemplate; } catch(Page\Exception $Exception){} catch(User\Exception $Exception){} } } #=============================================================================== # Build document #=============================================================================== $FeedTemplate = Template\Factory::build('feed/main'); $FeedTemplate->set('FEED', [ 'TYPE' => $param ?? NULL, 'LIST' => [ 'POSTS' => $post_templates ?? [], 'PAGES' => $page_templates ?? [], ] ]); echo $FeedTemplate;