public function buildConstraint(&$options, FcFieldConstraint $fc_constraint) { $params = $fc_constraint->getParams(); $this->match = (bool) $params['match']; $this->pattern = $this->buildPattern($params['sets']); parent::buildConstraint($options, $fc_constraint); }
public function buildConstraint(&$options, FcFieldConstraint $fc_constraint) { $params = $fc_constraint->getParams(); try { $value = new \DateTime($params['value']); $limit = clone $value; } catch (\Exception $e) { return; } $options['constraints'][] = new DateComparison(array('groups' => $this->getGroups($fc_constraint), 'value' => $value, 'message' => $fc_constraint->getMessage(), 'type' => $this->constraints[$params['type']], 'format' => $options['format'])); switch ($params['type']) { case 'greater': $limit->modify('+1 day'); case 'greater_or_equal': $attr = 'data-min-date'; break; case 'less': $limit->modify('-1 day'); case 'less_or_equal': $attr = 'data-max-date'; break; default: return; } if (!isset($options['attr'])) { $options['attr'] = array(); } $options['attr'][$attr] = $limit->format($options['format']); }
public function buildConstraint(&$options, FcFieldConstraint $fc_constraint) { $callback = function ($object, ExecutionContextInterface $context) use($fc_constraint) { $is_valid = false; $params = $fc_constraint->getParams(); $data = $context->getRoot()->getData(); foreach ($params['fields'] as $field) { if (isset($data[$field]) && !empty($data[$field])) { $is_valid = true; break; } } if (!$is_valid) { $context->buildViolation($fc_constraint->getMessage())->addViolation(); } }; $options['constraints'][] = new Callback(array('groups' => $this->getGroups($fc_constraint), 'callback' => $callback)); }
public function buildConstraint(&$options, FcFieldConstraint $fc_constraint) { $params = $fc_constraint->getParams(); $options['constraints'][] = new Email(array('groups' => $this->getGroups($fc_constraint), 'message' => $fc_constraint->getMessage(), 'strict' => (bool) $params['strict'], 'checkMX' => (bool) $params['strict'], 'checkHost' => (bool) $params['strict'])); }
public function getGroups(FcFieldConstraint $fc_constraint) { return array($fc_constraint->getConstraint() . '_' . $fc_constraint->getFieldId()); }
public function buildConstraint(&$options, FcFieldConstraint $fc_constraint) { $params = $fc_constraint->getParams(); $options['constraints'][] = new $this->constraints[$params['type']](array('groups' => $this->getGroups($fc_constraint), 'value' => $params['value'], 'message' => $fc_constraint->getMessage())); }
protected function buildFieldConstraint(&$options, FcFieldConstraint $fc_constraint, ConstraintChain $constraint_chain) { $constraint = $constraint_chain->getConstraint($fc_constraint->getConstraint()); $constraint->buildConstraint($options, $fc_constraint); }
/** * Creates and saves a constraint * * @param Request $request * @param $field_id * @param $constraint * @return JsonResponse * @throws \Symfony\Component\HttpKernel\Exception\NotFoundHttpException * @throws \Symfony\Component\Security\Core\Exception\AccessDeniedException */ public function doCreateConstraintAction(Request $request, $field_id, $constraint) { try { if (!$request->isXmlHttpRequest()) { throw $this->createAccessDeniedException(); } $fc_field = FcFieldQuery::create()->findPk($field_id); if (!$fc_field instanceof FcField) { throw $this->createNotFoundException(); } $form_action = $this->admin->generateUrl('do_create_constraint', array('id' => $fc_field->getFormId(), 'field_id' => $fc_field->getId(), 'constraint' => $constraint)); $field_constraint = new FcFieldConstraint(); $field_constraint->setConstraint($constraint); $field_constraint->setFcField($fc_field); $form = $this->createForm(new ConstraintCommonType($form_action, $this->container->get('fc.constraint.chain')->getParamsBuilder($constraint, $this->admin->getSubject())), $field_constraint); $form->handleRequest($request); if ($form->isValid()) { $field_constraint->save(); return new JsonResponse(array('success' => true)); } } catch (\Exception $e) { return new JsonResponse(array('success' => false, 'view' => 'Error ' . $e->getCode() . ': ' . $e->getMessage())); } return new JsonResponse(array('success' => false, 'view' => $this->renderView('FenrizbesFormConstructorBundle:SonataAdmin/FcForm:form.html.twig', array('form' => $form->createView())))); }