コード例 #1
0
ファイル: Control.php プロジェクト: Max201/nanocore
 /**
  * Categories list
  *
  * @param Request $request
  * @return mixed
  */
 public function posts_categories(Request $request)
 {
     $title = $this->lang->translate('post.categories');
     // Delete post
     if ($request->get('delete')) {
         $post = \PostCategory::find_by_id(intval($request->get('delete')));
         if ($post && $post->delete()) {
             $this->view->assign('message', $this->lang->translate('form.deleted'));
         }
     }
     // Filter categories
     $filter = [];
     if ($request->order) {
         $filter['order'] = $request->order;
     }
     if ($request->get('category')) {
         $category = \PostCategory::find($request->get('category'));
         $filter['conditions'] = ['parent_id = ?', $category->id];
         $title = $this->lang->translate('post.category') . ' ' . $category->title;
     }
     /** @var Listing $paginator */
     $paginator = NCService::load('Paginator.Listing', [$request->page, \PostCategory::count()]);
     $filter = array_merge($filter, $paginator->limit());
     // Listing categories
     $categories = \PostCategory::all($filter);
     $categories = array_map(function ($i) {
         $a = $i->to_array();
         $a['posts'] = \Post::count(['conditions' => ['category_id = ?', $a['id']]]);
         return $a;
     }, $categories);
     return $this->view->render('posts/list_categories.twig', ['title' => $title, 'category_list' => $categories, 'listing' => $paginator->pages(), 'page' => $paginator->cur_page]);
 }