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);
 }