/** * @Route("/detail/id/{id}",defaults={"id":1},requirements={"id"="\d+"}) * @ParamConverter("article",class="TarsierHomeBundle:article") * @Method("GET") * @Template() */ public function detailAction(article $article) { $data['article'] = $article; if ($this->getRequest()->cookies->get('userName') == null && $article->getStatus() != 1) { return $this->redirect($this->generateUrl('indexPage')); } $tagsArr = []; foreach ($article->getTag() as $tag) { $tagsArr[] = $tag->getName(); } if (empty($tagsArr)) { $tagsArr[] = 'detail'; } $c = new Common(); $current_month = $c->getCurrentMonth(); $em = $this->getDoctrine()->getManager(); $tags = $this->getTags($em); $hot_article = $em->getRepository("TarsierHomeBundle:article")->getHotArticle(); $nav_tags = array_intersect($tagsArr, $this->nav_arr); $data['current_month'] = $current_month; $data['tagsArr'] = $tagsArr; //面包屑导航 $data['tags'] = $tags; //标签云 $data['sid'] = md5($article->getTitle() . 'http://huajie1988.net/detail/id/' . $article->getId()); $data['nav_tags'] = current($nav_tags); //导航栏 $data['hot_article'] = $hot_article; //导航栏 $data['friendlink'] = $this->getFriendLink(); $data['is_mobile'] = $this->isMobile(); $em = $this->getDoctrine()->getManager(); $article->setClick($article->getClick() + 1); $em->persist($article); $em->flush(); return $data; }
/** * @Route("/article/edit/id/{id}",name="articleedit") * @ParamConverter("article",class="TarsierHomeBundle:article") * @Template("TarsierAdminBundle:article:edit.html.twig") */ public function articleEditAction(article $article) { if (!$this->isLogin()) { return $this->redirect($this->generateUrl('adminlogin')); } $userName = $this->getRequest()->cookies->get('userName'); $tags = $article->getTag(); $tags_list_orgin = $tags; $tagStr = []; foreach ($tags as $t) { $tagStr[] = $t->getName(); } $tagStr = join(',', $tagStr); $form = $this->createFormBuilder($article, ['attr' => ['id' => 'form-save', 'class' => 'form-save']])->add('title', 'text', ['data' => $article->getTitle(), 'label_attr' => ['class' => ''], 'attr' => ['class' => 'form-control input-signin', 'placeholder' => "Article Title"]])->add('status', 'choice', ['data' => $article->getStatus(), 'choices' => ['0' => 'Draft', '1' => 'Release', '2' => 'Delete'], 'label_attr' => ['class' => ''], 'attr' => ['class' => 'form-control input-signin']])->add('tag', 'text', ['data' => $tagStr, 'label_attr' => ['class' => ''], 'attr' => ['class' => 'form-control input-signin']])->add('top', 'choice', ['data' => $article->getTop(), 'choices' => ['0' => 'Not top article', '1' => 'Is top article'], 'label_attr' => ['class' => ''], 'attr' => ['class' => 'form-control input-signin']])->add('sort', 'integer', ['data' => $article->getSort(), 'label_attr' => ['class' => ''], 'attr' => ['class' => 'form-control input-signin', 'placeholder' => "Article Sort"]])->add('front_cover', 'file', ['data' => '', 'label_attr' => ['class' => ''], 'attr' => ['class' => 'form-control input-signin'], 'required' => 0])->add('thumb', 'file', ['data' => '', 'label_attr' => ['class' => ''], 'attr' => ['class' => 'form-control input-signin'], 'required' => 0])->add('content', 'textarea', ['data' => $article->getContent(), 'label_attr' => ['class' => ''], 'attr' => ['id' => 'editor', 'class' => 'form-control input-signin', 'placeholder' => "Article Content"], 'required' => 0])->add('Save', 'submit', ['attr' => ['class' => 'btn btn-lg btn-primary btn-block form-save-btn']])->getForm(); $form->handleRequest($this->getRequest()); if ($form->isValid()) { $article->setTag([]); $photo = $this->dealPhotoProcess($form->get('front_cover')->getData(), $form->get('thumb')->getData()); $front_cover = $photo['front_cover']; $thumb = $photo['thumb']; $em = $this->getEm(); $sem = $this->getEm('sqlite'); $ret_form = $this->getRequest()->get('form'); $tags = explode(',', str_replace(',', ',', $ret_form['tag'])); $tags_em = $this->getTagsRepository(); $tags_list = []; foreach ($tags as $t) { $tag = $tags_em->findOneBy(['name' => $t]); if (empty($tag)) { $tag = new tags(); $tag->setName($t); $tag->setClick(1); } else { $tag->setClick(count($tag->getArticle()) + 1); } $em->persist($tag); $em->flush(); $tags_list[] = $tag; } $article->setTag($tags_list); $em->persist($article); $em->flush(); $articleimg_em = $this->getArticleImgRepository(); $articleimg = $articleimg_em->findOneBy(['article_id' => $article->getId()]); if ($articleimg == null) { $articleimg = new articleimg(); } $frontcover_replace = $this->getRequest()->get('frontcover_replace'); $thumb_replace = $this->getRequest()->get('thumb_replace'); if ($frontcover_replace == 1) { $articleimg->setFrontCover($front_cover); } if ($thumb_replace == 1) { $articleimg->setThumb($thumb); } $articleimg->setArticleId($article->getId()); $sem->persist($articleimg); $sem->flush(); return $this->redirect($this->generateUrl('articlelist')); } $data = ['save_form' => $form->createView(), 'userName' => $userName, 'nav' => 'article', 'id' => $article->getId()]; return $data; }