data->get_parameter("defaults", array()); $ajax_submit_path = $this->data->get_parameter("ajax_submit_path", ""); $embeddable_id = $this->data->get_parameter("sm_embeddable_id", ""); $multiple_display_form_type = $this->data->get_parameter("multiple_display_form_type", "radio"); $lang = $this->data->get_api()->get_country(); $questions = $this->data->get_data("questions"); //the worktype can be displayed in different ways. Setup for a seperate form object renderer //and prefilter the data for the selectable items foreach ($questions as $qid => $qdata){ if ($qdata['name'] == 'sp_id_worktype'){ $available_worktypes = $this->data->get_parameter("worktypes", array()); if (count($available_worktypes) == 1){ $questions[$qid]["type"] = "hidden"; $questions[$qid]["default"] = $available_worktypes[0]; } else { if (count($available_worktypes)){ foreach ($questions[$qid]['options'] as $k => $option){ if (! in_array($option["value"], $available_worktypes)){ unset($questions[$qid]['options'][$k]); } } } $questions[$qid]['options'] = array_values($questions[$qid]['options']); $questions[$qid]["type"] = ($multiple_display_form_type == 'select' ? "select" : "worktypelist"); } } } $s = ""; if ($params = $this->data->get_parameter("sm_display_defaults", false)){ $s .= ""; } $s .= "
\n"; $s .= ""; $s .= "
\n"; $s .= "
\n"; if ($above = $this->data->get_parameter("text_above_questions", "")){ $s .= "
$above
"; } if (!empty($embeddable_id)){ $s .= "\n"; } if ($this->data->get_validator()->has_errors()){ //print $this->data->get_validator()->get_formatted_errors(); } foreach($questions as $qid => $qdata){ if ($qdata['type'] == 'hidden'){ $hidden_obj = new sm_sr_activity_interview_hidden($this->data); $s .= $hidden_obj->render($qdata, $_POST); } else { //required fields settings affect here if ($this->data->get_parameter("only_required_fields", 0) AND (!isset($qdata['required']) OR !$qdata['required'])){ continue; } //default fields settings remove fields from presentation here if (isset($defaults[$qdata['name']])){ continue; } $s .= "
\n"; $s .= "\n"; if ($qdata['type'] == ""){ print "missing type"; print_r($qdata); } $form_obj_name = "sm_sp_interview_" . $qdata['type']; $form_obj = new $form_obj_name($this->data); $s .= $form_obj->render($qdata, $_POST); if ($this->data->get_validator()->item_has_error($qdata['name'])){ $s .= "\n"; } $s .= "
\n"; } } if (!$submit_string = $this->data->get_parameter("submit_string", false)){ $submit_strings = array("fr"=>"Valider", "uk"=>"Get Leads"); $submit_string = $submit_strings[$lang]; } $submit_string = htmlspecialchars($submit_string); $s .= "
"; $s .= "\n"; //$s .= "
"; $s .= "
"; $s .= "
"; if ($this->data->get_api()->get_country() == "fr"){ $s .= "* champs obligatoires"; } else { $s .= "* required fields"; } $s .= "
"; $s .= "
\n"; $s .= "
\n"; $s .= "
\n"; $json_messages = $this->setup_jquery_validate_messages($this->data->get_data("questions")); $error_strings = array("fr"=>"S'il vous plaît corriger ces erreurs", "uk"=>"Please fix these errors : "); $error_string = $error_strings[$lang]; $s .= "\n"; return $s; } }