public function __construct(RM_Forms $be_form) { $this->fields = array(); $this->form_type = RM_BASE_FORM; $this->custom_pre_str = ''; $this->custom_post_str = ''; $this->form_id = $be_form->get_form_id(); $this->form_name = $be_form->get_form_name(); $this->form_options = $be_form->get_form_options(); $this->form_options->form_should_auto_expire = $be_form->get_form_should_auto_expire(); $this->form_options->form_should_send_email = $be_form->get_form_should_send_email(); if (isset($be_form->form_redirect) && $be_form->form_redirect != "none" && $be_form->form_redirect != "") { $this->form_options->redirection_type = $be_form->form_redirect; } else { $this->form_options->redirection_type = null; } $this->form_options->redirect_page = $be_form->get_form_redirect_to_page(); $this->form_options->redirect_url = $be_form->get_form_redirect_to_url(); $this->primary_field_indices = array(); $this->service = new RM_Front_Form_Service(); }
public function manage($model, $service, $request, $params) { $data = new stdClass(); if (isset($request->req['rm_action'])) { if ($request->req['rm_action'] === 'delete') { $this->remove_field($model, $service, $request, $params); } elseif ($request->req['rm_action'] === 'add_page') { $data->current_page = $this->add_page($model, $service, $request, $params); } elseif ($request->req['rm_action'] === 'delete_page') { $this->delete_page($model, $service, $request, $params); } elseif ($request->req['rm_action'] === 'rename_page') { $this->rename_page($model, $service, $request, $params); } } if (isset($request->req['rm_form_id'])) { $fields_data = $service->get_all_form_fields($request->req['rm_form_id']); } else { die(RM_UI_Strings::get('MSG_NO_FORM_SELECTED')); } $data->fields_data = $fields_data; $data->forms = RM_Utilities::get_forms_dropdown($service); $data->field_types = RM_Utilities::get_field_types(); $data->form_id = $request->req['rm_form_id']; $form = new RM_Forms(); $form->load_from_db($data->form_id); $fopts = $form->get_form_options(); $g = array_keys($data->field_types); if ($data->fields_data && is_array($data->fields_data)) { foreach ($data->fields_data as $in => $out) { if (!in_array($out->field_type, $g)) { unset($data->fields_data[$in]); } } } if (!$fopts->form_pages) { $data->total_page = 1; $data->form_pages = array('Page 1'); } else { $data->total_page = count($fopts->form_pages); $data->form_pages = $fopts->form_pages; } if (!isset($data->current_page)) { $data->current_page = isset($request->req['rm_form_page_no']) ? $request->req['rm_form_page_no'] : 1; } $view = $this->mv_handler->setView("field_manager"); $view->render($data); }
public function manage_form_page($action, $form_id, $page_no = null, $new_page_name = null) { $form = new RM_Forms(); $form->load_from_db($form_id); $fopts = $form->get_form_options(); $form_pages = $fopts->form_pages; switch ($action) { case 'add_page': if ($form_pages == null) { $form_pages = array('Page 1', 'Page 2'); } else { $total_page = count($form_pages); $new_page_no = $total_page + 1; $form_pages[] = 'Page ' . $new_page_no; } break; case 'delete_page': if ($form_pages == null || !$page_no) { return; } else { if ($page_no == 1) { return; } //can't delete first page. if (isset($form_pages[$page_no - 1])) { RM_DBManager::remove_fields_for_page($page_no, $form_id); unset($form_pages[$page_no - 1]); } } break; case 'rename_page': if ($form_pages == null || !$page_no || !$new_page_name) { return; } else { if (isset($form_pages[$page_no - 1])) { $form_pages[$page_no - 1] = $new_page_name; } } break; } $x = (object) array('form_pages' => $form_pages); $form->set_form_options($x); $form->update_into_db(); return count($form_pages); }