protected function buildFieldOptions(FcField $fc_field) { $options = parent::buildFieldOptions($fc_field); $params = $fc_field->getParams(); $options['linked_field'] = FcFieldQuery::create()->findOneByName($params['linked_field']); return $options; }
protected function getCustomColumns() { $out_columns = array(); $setting = FcRequestSettingQuery::create()->findOneByFormId($this->getFcForm()->getId()); if (!$setting instanceof FcRequestSetting) { return; } $settings = $setting->getSettings(); if (!is_array($settings) || !isset($settings['columns']) || !is_array($settings['columns'])) { return; } foreach ($settings['columns'] as $fc_field_id) { $fc_field = FcFieldQuery::create()->findPk($fc_field_id); if (!$fc_field instanceof FcField) { continue; } $out_columns['Data_' . $fc_field->getName()] = $fc_field; } return $out_columns; }
/** * 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())))); }
public function postSave(PropelPDO $con = null) { if (!is_null($this->old_alias) && $this->old_alias != $this->getAlias()) { /** @var FcField[] $fields */ $fields = FcFieldQuery::create()->filterByType($this->old_alias)->find(); foreach ($fields as $field) { $field->setType($this->getAlias()); $field->save(); } $this->old_alias = null; } }