public function get_fields($form_id) { $where = array("form_id" => $form_id); $data_specifier = array("%s", "%d"); $email_fields = RM_DBManager::get(RM_Fields::get_identifier(), $where, $data_specifier, $result_type = 'results', $offset = 0, $limit = 1000, $column = '*', $sort_by = null, $descending = false); $fields = array(); foreach ($email_fields as $field) { if ($field->field_type != 'Price' && $field->field_type != 'HTMLH' && $field->field_type != 'File' && $field->field_type != 'HTMLP' && $field->field_type != 'Terms') { $fields[] = $field; } } return $fields; }
public function update_form_options($form_id, array $data, array $data_specifiers) { if (!(int) $form_id) { return false; } $i = 0; $row_data = array(); $row_data_spec = array(); $form_options = new stdClass(); foreach ($data as $name => $value) { if (in_array($name, $this->valid_options)) { $form_options->{$name} = $value; } else { if (property_exists($this, $name)) { $row_data[$name] = $value; $row_data_spec[] = $data_specifiers[$i]; } } $i++; } $form_options_ex = RM_DBManager::get('FORMS', array('form_id' => $form_id), array('%d'), 'var', 0, 1, 'form_options'); $form_options_ex = maybe_unserialize($form_options_ex); $form_options_ex = RM_Utilities::merge_object($form_options_ex, $this->form_options); $form_options = RM_Utilities::merge_object($form_options, $form_options_ex); $row_data['form_options'] = maybe_serialize($form_options); $row_data_spec[] = '%s'; var_dump($row_data); //$result = RM_DBManager::update_row('FORMS', $form_id, $row_data, $row_data_spec); if (!$result) { return false; } return true; }
public function get($model_identifier, $where, $data_specifier, $result_type = 'results', $offset = 0, $limit = 15, $column = '*', $sort_by = null, $descending = false) { return RM_DBManager::get($model_identifier, $where, $data_specifier, $result_type, $offset, $limit, $column, $sort_by, $descending); }
public function add($model, $service, $request, $params) { $valid = $is_checked = false; if ($this->mv_handler->validateForm("rm_form_add")) { $model->set($request->req); $valid = $model->validate_model(); $is_checked = true; } if ($valid) { if (isset($request->req['form_id'])) { $valid = $service->update($request->req['form_id']); } else { $service->add_user_form(); } RM_Utilities::redirect(admin_url('/admin.php?page=' . $params['xml_loader']->request_tree->success)); } else { $data = new stdClass(); /* * Loading all fields related this form */ $data->all_fields = array("_0" => RM_UI_Strings::get('SELECT_DEFAULT_OPTION')); $data->email_fields = array("_0" => RM_UI_Strings::get('SELECT_DEFAULT_OPTION')); // Edit for request if (isset($request->req['rm_form_id'])) { if (!$is_checked) { $model->load_from_db($request->req['rm_form_id']); } $all_field_objects = $service->get_all_form_fields($request->req['rm_form_id']); if (is_array($all_field_objects) || is_object($all_field_objects)) { foreach ($all_field_objects as $obj) { $data->all_fields[$obj->field_type . '_' . $obj->field_id] = $obj->field_label; } } $data_specifier = array("%s", "%d"); $where = array("field_type" => "Email", "form_id" => $request->req['rm_form_id']); $email_fields = RM_DBManager::get(RM_Fields::get_identifier(), $where, $data_specifier, $result_type = 'results', $offset = 0, $limit = 1000, $column = '*', $sort_by = null, $descending = false); if (is_array($email_fields) || is_object($email_fields)) { foreach ($email_fields as $field) { $data->email_fields[$field->field_type . '_' . $field->field_id] = $field->field_label; } } } $data->model = $model; //By default make it registration type if (!isset($request->req['rm_form_id'])) { $data->model->set_form_type(1); } $user_roles_dd = RM_Utilities::user_role_dropdown(true); $data->roles = array('subscriber' => $user_roles_dd['subscriber']); $data->wp_pages = RM_Utilities::wp_pages_dropdown(); if ($service->get_setting('enable_mailchimp') == 'yes') { $data->mailchimp_list = $service->get_mailchimp_list(); } else { $data->mailchimp_list = array(); } //echo "<pre>",var_dump($data->model);//die; $view = $this->mv_handler->setView("form_add"); $view->render($data); } }
public function get_field_stats($form_id) { $fields = RM_DBManager::get_fields_filtered_by_types($form_id, array('Select', 'Checkbox', 'Radio', 'Country')); $stat_arr = array(); if (is_array($fields) || is_object($fields)) { foreach ($fields as $field) { $res = array(); $tmp_obj = new stdClass(); $vals = maybe_unserialize($field->field_value); $tmp_obj->label = $field->field_label; $tmp_obj->total_sub = 0; switch ($field->field_type) { case 'Checkbox': $temp = RM_DBManager::get('SUBMISSION_FIELDS', array('field_id' => $field->field_id), array('%d'), 'col', 0, 999999, "value"); if (!$temp) { break; } foreach ($vals as $val) { $res[$val] = 0; } $other_option_submission = 0; foreach ($temp as $single_sub) { if ($single_sub == NULL) { continue; } $single_sub = maybe_unserialize($single_sub); foreach ($single_sub as $f_v) { if (isset($res[$f_v])) { $res[$f_v] += 1; } else { $other_option_submission++; } } } $res['Other'] = $other_option_submission; //IMPORTANT: Checkbox is a multiple value type submission, //hence we can't just add up the submissions of individual option to get the total submissions. $tmp_obj->total_sub = RM_DBManager::count('SUBMISSION_FIELDS', array('field_id' => $field->field_id)); break; case 'Country': $temp = RM_DBManager::count_multiple('SUBMISSION_FIELDS', "value", array('field_id' => $field->field_id)); if (!$temp) { break; } foreach ($temp as $single_sub) { $res[$single_sub->value] = (int) $single_sub->count; $tmp_obj->total_sub += (int) $single_sub->count; } //Compensate for the cases when Country field was not submitted (blank values). if (isset($res[''])) { $tmp_obj->total_sub -= $res['']; //We dont need this in stat, unset it. unset($res['']); } break; case 'Radio': case 'Select': if ($field->field_type == 'Select') { $vals = explode(',', $field->field_value); } $temp = RM_DBManager::count_multiple('SUBMISSION_FIELDS', "value", array('field_id' => $field->field_id)); if (!$temp) { break; } foreach ($temp as $single_sub) { if (in_array($single_sub->value, $vals)) { $res[$single_sub->value] = (int) $single_sub->count; $tmp_obj->total_sub += (int) $single_sub->count; } } break; } $tmp_obj->sub_stat = $res; $stat_arr[] = $tmp_obj; } } return $stat_arr; }
public function get_form_stats($form_id, $offset = 0, $limit = 99999) { return RM_DBManager::get('STATS', array('form_id' => $form_id), array('%d'), 'results', $offset, $limit, '*', 'visited_on', true); }