/** * @param Question $question * @param bool $saveTagsInEntity */ public function addForQuestion(Question $question, $saveTagsInEntity = true) { $em = $this->getEntityManager(); if ($question instanceof PollPetition) { $tags = HashTagParser::parseHashTags($question->getPetitionBody()); } else { $tags = HashTagParser::parseHashTags($question->getSubject()); } foreach ($tags['parsed'] as $tag) { $entity = $this->findOneByName($tag); if (!$entity) { $entity = new HashTag($tag); $em->persist($entity); } $entity->addQuestion($question); $em->flush($entity); } if ($saveTagsInEntity) { $question->setCachedHashTags($tags['original']); $em->flush($question); } }
private function getPreviewByPoll(Question $question) { if ($question instanceof \Civix\CoreBundle\Entity\Poll\Question\Petition) { return $this->preparePreview($question->getPetitionTitle()); } if ($question instanceof \Civix\CoreBundle\Entity\Poll\Question\PaymentRequest) { return $this->preparePreview($question->getTitle()); } if ($question instanceof \Civix\CoreBundle\Entity\Poll\Question\LeaderEvent) { return $this->preparePreview($question->getTitle()); } return $this->preparePreview($question->getSubject()); }