diff options
-rw-r--r-- | core/functions.php | 65 | ||||
-rw-r--r-- | core/include/category/list.php | 3 | ||||
-rw-r--r-- | core/include/category/main.php | 3 | ||||
-rw-r--r-- | core/include/home.php | 9 | ||||
-rw-r--r-- | core/include/page/list.php | 4 | ||||
-rw-r--r-- | core/include/post/list.php | 3 | ||||
-rw-r--r-- | core/include/user/list.php | 4 |
7 files changed, 27 insertions, 64 deletions
diff --git a/core/functions.php b/core/functions.php index 3282f1c..8a46b5b 100644 --- a/core/functions.php +++ b/core/functions.php @@ -9,66 +9,15 @@ use Template\Template as Template; use Template\Factory as TemplateFactory; #=============================================================================== -# Helper function to reduce duplicate code -#=============================================================================== -function generateNaviTemplate(int $current, $location, $namespace): Template { - $Repository = Application::getRepository($namespace); - - $listSize = Application::get(strtoupper($namespace).'.LIST_SIZE'); - $lastSite = ceil($Repository->getCount() / $listSize); - - $PaginationTemplate = TemplateFactory::build('pagination'); - $PaginationTemplate->set('THIS', $current); - $PaginationTemplate->set('LAST', $lastSite); - $PaginationTemplate->set('HREF', "{$location}?site=%d"); - - return $PaginationTemplate; -} - -#=============================================================================== -# Helper function to reduce duplicate code -#=============================================================================== -function generatePageNaviTemplate($current): Template { - return generateNaviTemplate($current, Application::getPageURL(), 'Page'); -} - +# Create generic pagination template #=============================================================================== -# Helper function to reduce duplicate code -#=============================================================================== -function generatePostNaviTemplate($current): Template { - return generateNaviTemplate($current, Application::getPostURL(), 'Post'); -} - -#=============================================================================== -# Helper function to reduce duplicate code -#=============================================================================== -function generateUserNaviTemplate($current): Template { - return generateNaviTemplate($current, Application::getUserURL(), 'User'); -} - -#=============================================================================== -# Helper function to reduce duplicate code -#=============================================================================== -function generateCategoryNaviTemplate($current): Template { - return generateNaviTemplate($current, Application::getCategoryURL(), 'Category'); -} - -#=============================================================================== -# Generate the post navigation template for posts in a category -#=============================================================================== -function generateCategoryPostNaviTemplate(int $current, Category $Category): Template { - $location = Application::getEntityURL($Category); - $Repository = Application::getRepository('Post'); - - $listSize = Application::get('POST.LIST_SIZE'); - $lastSite = ceil($Repository->getCountByCategory($Category) / $listSize); - - $PaginationTemplate = TemplateFactory::build('pagination'); - $PaginationTemplate->set('THIS', $current); - $PaginationTemplate->set('LAST', $lastSite); - $PaginationTemplate->set('HREF', "{$location}?site=%d"); +function createPaginationTemplate($current, $last, string $location): Template { + $Pagination = TemplateFactory::build('pagination'); + $Pagination->set('THIS', $current); + $Pagination->set('LAST', $last); + $Pagination->set('HREF', "{$location}?site=%d"); - return $PaginationTemplate; + return $Pagination; } #=============================================================================== diff --git a/core/include/category/list.php b/core/include/category/list.php index 4702a79..3a5720b 100644 --- a/core/include/category/list.php +++ b/core/include/category/list.php @@ -52,7 +52,8 @@ $ListTemplate = Template\Factory::build('category/list'); $ListTemplate->set('PAGINATION', [ 'THIS' => $currentSite, 'LAST' => $lastSite, - 'HTML' => generateCategoryNaviTemplate($currentSite) + 'HTML' => createPaginationTemplate( + $currentSite, $lastSite, Application::getCategoryURL()) ]); $ListTemplate->set('LIST', [ 'CATEGORIES' => $templates ?? [] diff --git a/core/include/category/main.php b/core/include/category/main.php index 066ea26..b1bea72 100644 --- a/core/include/category/main.php +++ b/core/include/category/main.php @@ -111,7 +111,8 @@ $CategoryTemplate->set('COUNT', [ $CategoryTemplate->set('PAGINATION', [ 'THIS' => $currentSite, 'LAST' => $lastSite, - 'HTML' => generateCategoryPostNaviTemplate($currentSite, $Category) + 'HTML' => createPaginationTemplate( + $currentSite, $lastSite, Application::getEntityURL($Category)) ]); $CategoryTemplate->set('LIST', [ 'POSTS' => $post_templates ?? [], diff --git a/core/include/home.php b/core/include/home.php index bc73bef..2893f0e 100644 --- a/core/include/home.php +++ b/core/include/home.php @@ -19,11 +19,18 @@ foreach($posts as $Post) { } #=============================================================================== +# Pagination +#=============================================================================== +$count = $PostRepository->getCount(); +$lastSite = ceil($count / Application::get('POST.LIST_SIZE')); + +#=============================================================================== # Build document #=============================================================================== $HomeTemplate = Template\Factory::build('home'); $HomeTemplate->set('PAGINATION', [ - 'HTML' => generatePostNaviTemplate(1) + 'HTML' => createPaginationTemplate( + 1, $lastSite, Application::getPostURL()) ]); $HomeTemplate->set('LIST', [ 'POSTS' => $templates ?? [] diff --git a/core/include/page/list.php b/core/include/page/list.php index f7541fa..8cfbce5 100644 --- a/core/include/page/list.php +++ b/core/include/page/list.php @@ -55,7 +55,9 @@ $ListTemplate = Template\Factory::build('page/list'); $ListTemplate->set('PAGINATION', [ 'THIS' => $currentSite, 'LAST' => $lastSite, - 'HTML' => generatePageNaviTemplate($currentSite) + 'HTML' => createPaginationTemplate( + $currentSite, $lastSite, Application::getPageURL() + ) ]); $ListTemplate->set('LIST', [ 'PAGES' => $templates ?? [] diff --git a/core/include/post/list.php b/core/include/post/list.php index 4599883..ab48552 100644 --- a/core/include/post/list.php +++ b/core/include/post/list.php @@ -55,7 +55,8 @@ $ListTemplate = Template\Factory::build('post/list'); $ListTemplate->set('PAGINATION', [ 'THIS' => $currentSite, 'LAST' => $lastSite, - 'HTML' => generatePostNaviTemplate($currentSite) + 'HTML' => createPaginationTemplate( + $currentSite, $lastSite, Application::getPostURL()) ]); $ListTemplate->set('LIST', [ 'POSTS' => $templates ?? [] diff --git a/core/include/user/list.php b/core/include/user/list.php index f6f794a..f4aec77 100644 --- a/core/include/user/list.php +++ b/core/include/user/list.php @@ -53,7 +53,9 @@ $ListTemplate = Template\Factory::build('user/list'); $ListTemplate->set('PAGINATION', [ 'THIS' => $currentSite, 'LAST' => $lastSite, - 'HTML' => generateUserNaviTemplate($currentSite) + 'HTML' => createPaginationTemplate( + $currentSite, $lastSite, Application::getUserURL() + ) ]); $ListTemplate->set('LIST', [ 'USERS' => $templates ?? [] |