Exemple #1
0
 protected function handle()
 {
     $request = $this->getRequest();
     if ($request->getMethod() == 'POST') {
         $ids = $request->request->get('ids');
         $session = $this->getSession();
         $db = TagModel::getDb();
         try {
             $db->transaction();
             foreach ($ids as $id) {
                 TagModel::deleteTag($id);
             }
             $db->commit();
             $session->addFlash('success', '操作成功');
         } catch (\Exception $e) {
             $db->rollback();
             $session->addFlash('error', $e->getMessage());
         }
         return new RedirectResponse($this->generateUrl('admin_www_tag'));
     } else {
         $ids = $request->query->get('ids');
         $ids = json_decode($ids);
         if (!$ids) {
             return $this->render('@TachigoWWWAdmin/error-modal.html.twig', array('message' => '没有选中任何标签'));
         } else {
             $pager = TagModel::listTags(1, count($ids), function (QueryBuilder $qb) use($ids) {
                 $qb->where($qb->expr()->in('id', $ids));
             });
             return $this->render('tag/delete.html.twig', array('tags' => $pager));
         }
     }
 }
Exemple #2
0
 protected function handle()
 {
     $columns = array('ID', '名称', '描述', 'URL占位符', '内容数量', '创建时间', '更新时间');
     $fields = array('id', 'name', 'description', 'slug', 'article_count', 'create_timestamp', 'update_timestamp');
     $request = $this->getRequest();
     if ($request->isXmlHttpRequest()) {
         $posts = $request->request;
         $page_offset = $posts->get('start');
         $page_offset = intval($page_offset);
         $page_size = $posts->get('length');
         $page_size = intval($page_size);
         $is_all = false;
         if ($page_size < 0) {
             $is_all = true;
         }
         $s_echo = $posts->get('draw');
         $s_echo = intval($s_echo);
         $search = $posts->get('search');
         $search_value = $search['value'];
         $records = array();
         $records['data'] = array();
         $records['draw'] = $s_echo;
         $records['recordsTotal'] = 0;
         $records['recordsFiltered'] = 0;
         if ($is_all) {
             $page_size = TagModel::getCount(function (QueryBuilder $qb) use($search_value) {
                 if ($search_value) {
                     $qb->orWhere($qb->expr()->like("`name`", ":name"))->setParameter(":name", "%{$search_value}%");
                     $qb->orWhere($qb->expr()->like("`slug`", ":slug"))->setParameter(":slug", "%{$search_value}%");
                 }
             });
         }
         $page = $page_offset / $page_size + 1;
         $pager = TagModel::listTags($page, $page_size, function (QueryBuilder $qb) use($search_value) {
             if ($search_value) {
                 $qb->orWhere($qb->expr()->like("`name`", ":name"))->setParameter(":name", "%{$search_value}%");
                 $qb->orWhere($qb->expr()->like("`slug`", ":slug"))->setParameter(":slug", "%{$search_value}%");
             }
             $qb->addOrderBy('create_timestamp', 'desc');
         });
         $total = $pager->getCount();
         $records['recordsTotal'] = $total;
         $records['recordsFiltered'] = $total;
         $data = $pager->getData();
         foreach ($data as $k => $v) {
             $line = array();
             $line[] = '<input type="checkbox" name="id[]" value="' . $v['id'] . '">';
             foreach ($fields as $field) {
                 if (isset($v[$field]) || $v[$field] === null) {
                     if ($field == 'create_timestamp' || $field == 'update_timestamp') {
                         // 时间
                         $line[] = date('Y-m-d H:i:s', $v[$field]);
                     } elseif ($field == 'slug') {
                         if (!$v[$field]) {
                             $line[] = 'Null';
                         } else {
                             $line[] = $v[$field];
                         }
                     } elseif ($field == 'article_count') {
                         $line[] = intval($v[$field]);
                     } elseif (!$v[$field]) {
                         $line[] = '&nbsp;';
                     } else {
                         $line[] = $v[$field];
                     }
                 }
             }
             $edit_url = $this->generateUrl('admin_www_tag_edit', array('id' => $v['id']));
             $line[] = '<a data-toggle="modal" data-target="#modal" href="' . $edit_url . '">编辑</a>';
             $records['data'][] = $line;
         }
         return new JsonResponse($records);
     }
     return $this->render('tag/index.html.twig', array('columns' => $columns));
 }