![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/mautic.corals.io/app/bundles/CoreBundle/Controller/ |
<?php namespace Mautic\CoreBundle\Controller; use Mautic\CoreBundle\Helper\InputHelper; use Mautic\EmailBundle\Model\EmailModel; use Mautic\PageBundle\Model\PageModel; use Symfony\Component\Form\FormFactoryInterface; use Symfony\Component\HttpFoundation\Request; trait VariantAjaxControllerTrait { /** * @param string $modelName * @param string $abSettingsFormName * @param string $abSettingsFormBlockPrefix * @param string $parentFormName * @param string $abFormTemplate * @param array $formThemes * * @return mixed */ private function getAbTestForm(Request $request, FormFactoryInterface $formFactory, $modelName, $abSettingsFormName, $abSettingsFormBlockPrefix, $parentFormName, $abFormTemplate, $formThemes = []) { $dataArray = [ 'success' => 0, 'html' => '', ]; $type = InputHelper::clean($request->request->get('abKey')); $id = (int) $request->request->get('id'); if (!empty($type)) { // get the HTML for the form $model = $this->getModel($modelName); if (!$model instanceof EmailModel && !$model instanceof PageModel) { throw new \InvalidArgumentException('Model should be either email or page model.'); } $entity = $model->getEntity($id); $abTestComponents = $model->getBuilderComponents($entity, 'abTestWinnerCriteria'); $abTestSettings = $abTestComponents['criteria']; if (isset($abTestSettings[$type])) { $html = ''; $formType = (!empty($abTestSettings[$type]['formType'])) ? $abTestSettings[$type]['formType'] : ''; if (!empty($formType)) { $formOptions = (!empty($abTestSettings[$type]['formTypeOptions'])) ? $abTestSettings[$type]['formTypeOptions'] : []; $form = $formFactory->create( $abSettingsFormName, [], ['formType' => $formType, 'formTypeOptions' => $formOptions] ); $html = $this->renderView( $abFormTemplate, [ 'form' => $this->setFormTheme($form, $formThemes), ] ); } $html = str_replace( [ "{$abSettingsFormBlockPrefix}[", "{$abSettingsFormBlockPrefix}_", $abSettingsFormBlockPrefix, ], [ "{$parentFormName}[variantSettings][", "{$parentFormName}_variantSettings_", $parentFormName, ], $html ); $dataArray['html'] = $html; $dataArray['success'] = 1; } } return $this->sendJsonResponse($dataArray); } }