page_renderer = $page_renderer; $this->features_controller = $features_controller; $this->custom_fields_repository = $custom_fields_repository; $this->custom_fields_response_builder = $custom_fields_response_builder; } public function render() { $id = (isset($_GET['id']) ? (int)$_GET['id'] : 0); $form = Form::findOne($id); if ($form instanceof Form) { $form = $form->asArray(); } $data = [ 'form' => $form, 'form_exports' => [ 'php' => Export::get('php', $form), 'iframe' => Export::get('iframe', $form), 'shortcode' => Export::get('shortcode', $form), ], 'pages' => Pages::getAll(), 'segments' => Segment::getSegmentsWithSubscriberCount(), 'styles' => FormRenderer::getStyles($form), 'date_types' => Block\Date::getDateTypes(), 'date_formats' => Block\Date::getDateFormats(), 'month_names' => Block\Date::getMonthNames(), 'sub_menu' => 'mailpoet-forms', ]; if ($this->features_controller->isSupported(FeaturesController::NEW_FORM_EDITOR)) { $data['form']['styles'] = FormRenderer::getStyles($form); $custom_fields = $this->custom_fields_repository->findAll(); $data['custom_fields'] = $this->custom_fields_response_builder->buildBatch($custom_fields); $data['date_types'] = array_map(function ($label, $value) { return [ 'label' => $label, 'value' => $value, ]; }, $data['date_types'], array_keys($data['date_types'])); $this->page_renderer->displayPage('form/editor.html', $data); } else { $this->page_renderer->displayPage('form/editor_legacy.html', $data); } } }