Example #1
0
 protected function handle()
 {
     /** @var ForumModel $root_node */
     $root_node = ForumModel::getRootNode();
     if (!$root_node) {
         // 没有根分类,需要自动创建
         $node = new ForumModel();
         $node->name = '论坛首页';
         $node->description = '论坛首页';
         $node->forumStatus = 1;
         $node->forumType = 'group';
         $now = time();
         $node->createTimestamp = $now;
         $node->updateTimestamp = $now;
         $node->preOrderTreeLeft = 0;
         $node->preOrderTreeRight = 1;
         $root_node = ForumModel::createForumGroup($node);
     }
     $request = $this->getRequest();
     if ($request->getMethod() == 'POST') {
         $forums_data = $request->request->get('forums');
         if (!$forums_data) {
             $forums_data = array();
         }
         $db = ForumModel::getDb();
         try {
             $db->transaction();
             foreach ($forums_data as $forum_id => $info) {
                 $sort_number = $info['sort'];
                 $forum_name = $info['name'];
                 $forum = ForumModel::getForum($forum_id);
                 if ($forum) {
                     $forum->name = $forum_name;
                     $forum->displayOrder = $sort_number;
                     ForumModel::saveForum($forum);
                 }
             }
             $db->commit();
         } catch (\Exception $e) {
             $db->rollback();
             throw $e;
         }
     }
     /** @var ForumModel[] $sub_tree */
     $sub_tree = $root_node->getSubTree();
     $list = array();
     foreach ($sub_tree as $i => $node) {
         if ($i == 0) {
             continue;
         }
         $list[$node->forumId] = $node;
     }
     ForumBusiness::preOrderTree2RecursiveTree($list, $root_node);
     return $this->render('forum/group-manage.html.twig', array('root_node' => $root_node));
 }
Example #2
0
 protected function handle()
 {
     $request = $this->getRequest();
     $forum_id = $request->query->get('forum_id');
     $forum = ForumModel::getForum($forum_id);
     // 检查论坛是否存在
     try {
         if (!$forum) {
             throw new \Exception('论坛不存在');
         }
     } catch (\Exception $e) {
         $session = $this->getSession();
         $session->addFlash('error', $e->getMessage());
         return new RedirectResponse($this->generateUrl('admin_forum_gruop_manage'));
     }
     if ($request->getMethod() == 'POST') {
         // 修改数据
         $session = $this->getSession();
         try {
             $forum_name = $request->request->get('name');
             $forum_description = $request->request->get('description');
             $forum_icon = $request->request->get('icon');
             if (!$forum_name) {
                 throw new \Exception('版块名称不能为空');
             }
             $forum->name = $forum_name;
             $forum->description = $forum_description;
             $forum->icon = $forum_icon;
             ForumModel::saveForum($forum);
             $session->addFlash('success', '操作成功');
         } catch (\Exception $e) {
             $session->addFlash('error', $e->getMessage());
         }
         return new RedirectResponse($this->generateUrl('admin_forum_forum_edit', array('forum_id' => $forum_id)));
     }
     return $this->render('forum/forum-edit.html.twig', array('forum' => $forum));
 }