コード例 #1
0
ファイル: Terms.php プロジェクト: coopers-peele/CPTermsBundle
 public function getDefaultDiffTarget()
 {
     if ($this->isFinal() && $this->isLatest()) {
         $latest_terms = TermsQuery::create()->latest()->find();
         $terms = $latest_terms->getNext();
     } else {
         $terms = Terms::getLatest();
     }
     return $terms;
 }
コード例 #2
0
 public function validate($value, Constraint $constraint)
 {
     $terms = Terms::getLatest();
     if ($terms->getId() !== $value) {
         if ($this->context instanceof ExecutionContextInterface) {
             $this->context->buildViolation($constraint->message)->addViolation();
         } else {
             // 2.4 API
             $this->context->addViolation($constraint->message);
         }
     }
 }
コード例 #3
0
 /**
  * @Route("/diff", name="cp_terms_diff")
  * @Template()
  */
 public function diffAction(Request $request)
 {
     if ($this->container->has('cp_terms.entity_finder')) {
         $entity_finder = $this->container->get('cp_terms.entity_finder');
         $entity = $entity_finder->findEntity();
     } else {
         throw $this->createNotFoundException('Page not found.');
     }
     $terms_last_agreed = $entity->getLastAgreedTerms();
     $terms_latest = Terms::getLatest();
     if (!$terms_last_agreed || $terms_last_agreed == $terms_latest) {
         // users don't get here unless direct url to this page is entered
         return $this->redirect($this->generateUrl('cp_terms'));
     }
     $theme = $this->container->getParameter('cp_terms.diff.theme');
     return array('terms' => $terms_last_agreed, 'terms_latest' => $terms_latest, 'theme' => $theme);
 }