/** * processCCPCformData - Vérifie et traite les données retournées par le formulaire * * @category : eval_ccpc_functions * @param array $formData Array contenant les données à traiter * @param array $evaluationData Array contenant les informations relatives à l'évaluation * @return array Array contenant les informations de formData après qu'elles aient été traités et les erreurs rencontrés lors de l'execution de la fonction * * @Author Ali Bellamine * * Contenu de l'array retourné :<br> * ['erreur'][] => (array) Array contenant les erreurs<br> * [nom du champs dans la base de donnée] => valeur fournie par l'utilisateur */ function processCCPCformData($formData, $evaluationData) { global $db; $formResult = array(); $erreur = array(); // On parcours le fichier XML if (is_file(PLUGIN_PATH . 'formulaire.xml')) { if ($form = simplexml_load_file(PLUGIN_PATH . 'formulaire.xml')) { foreach ($form->categorie as $categorie) { foreach ($categorie->input as $input) { if ($input['type'] == 'select') { $allowedValue[] = array(); foreach ($input->option as $option) { $allowedValue[] = $option['value']; } if (isset($formData[(string) $input['name']]) && in_array($formData[(string) $input['name']], $allowedValue)) { $formResult[(string) $input['nomBDD']] = $formData[(string) $input['name']]; } else { if (isset($input['required']) && $input['required'] == 1) { $erreur['LANG_ERROR_CCPC_INCOMPLETEFORM'] = true; } else { $formResult[(string) $input['nomBDD']] = ''; } } } else { if ($input['type'] == 'checkbox') { foreach ($input->checkbox as $checkbox) { if (isset($formData[(string) $input['name']]) && in_array((string) $checkbox["value"], $formData[(string) $input['name']])) { $formResult[(string) $checkbox['nomBDD']] = 1; } else { $formResult[(string) $checkbox['nomBDD']] = 0; } } } else { if ($input['type'] == 'radio') { $allowedValue[] = array(); foreach ($input->radio as $radio) { $allowedValue[] = $radio['value']; } if (isset($formData[(string) $input['name']]) && in_array($formData[(string) $input['name']], $allowedValue)) { $formResult[(string) $input['nomBDD']] = $formData[(string) $input['name']]; } else { if (isset($input['required']) && $input['required'] == 1) { $erreur['LANG_ERROR_CCPC_INCOMPLETEFORM'] = true; } else { $formResult[(string) $input['nomBDD']] = ''; } } } else { if ($input['type'] == 'text') { foreach ($input->text as $text) { if (isset($text['required']) && $text['required'] == 1 && (!isset($formData[(string) $text['name']]) || $formData[(string) $text['name']] == '')) { $erreur['LANG_ERROR_CCPC_INCOMPLETEFORM'] = true; } else { if (isset($formData[(string) $text['name']])) { $formResult[(string) $text['nomBDD']] = htmLawed($formData[(string) $text['name']]); } else { $formResult[(string) $text['nomBDD']] = ''; } } } } else { if ($input['type'] == 'textarea') { if (isset($input['required']) && $input['required'] == 1 && (!isset($formData[(string) $input['name']]) || $formData[(string) $input['name']] == '')) { $erreur['LANG_ERROR_CCPC_INCOMPLETEFORM'] = true; } else { if (isset($formData[(string) $input['name']])) { $formResult[(string) $input['nomBDD']] = htmLawed($formData[(string) $input['name']]); } else { $formResult[(string) $input['nomBDD']] = ''; } } } } } } } } } } } /** Récupération des données non incluses dans le formulaire (promotion, nb d'externe, service, etc...) **/ if (count($erreur) == 0) { $nonEvaluationData = eval_ccpc_getNoFormData($evaluationData, $erreur); /* On récupère la liste des services déjà évalués */ if (getEvaluationRegisterData() != '') { $evaluateService = unserialize(getEvaluationRegisterData()); } else { $evaluateService = array(); } /* On retire les services déjà évalués de la liste des services à évaluer */ foreach ($evaluateService as $service) { if (isset($nonEvaluationData['data'][$service])) { unset($nonEvaluationData['data'][$service]); } } // On récupère les données qui ne sont pas d'évaluation if (isset($nonEvaluationData['data']) && count($nonEvaluationData['data']) > 0) { if (isset($formData['service']) && isset($nonEvaluationData['data'][$formData['service']])) { $formResult = array_merge($formResult, $nonEvaluationData['data'][$formData['service']]); // On récupère les données d'évaluation } else { $erreur['LANG_ERROR_CCPC_INCOMPLETEFORM'] = true; } } // On récupère les erreurs if (isset($nonEvaluationData['erreur']) && count($nonEvaluationData['erreur']) > 0) { if (isset($formData['service']) && isset($nonEvaluationData['erreur'][$formData['service']])) { $erreur = array_merge($erreur, $nonEvaluationData['erreur'][$formData['service']]); // On récupère les données d'évaluation } } } $formResult['erreur'] = $erreur; return $formResult; }
} /* Fichiers de fonctions */ require PLUGIN_PATH . 'core/fnDisplayEvaluationResult.php'; // Fonctions propres à l'affichage des résultats d'épreuves require PLUGIN_PATH . 'core/fnDisplayEvaluation.php'; // Fonctions propres à l'affichage des formulaires d'évaluation require PLUGIN_PATH . 'core/fnGraphGen.php'; // Affichage des graphiques include PLUGIN_PATH . 'core/fnAdmin.php'; // Administration du module /* On récupère la liste des services à évaluer */ $nonEvaluationData = eval_ccpc_getNoFormData($evaluationData, array()); /* On récupère la liste des services déjà évalués */ if (getEvaluationRegisterData() != '') { $evaluateService = unserialize(getEvaluationRegisterData()); } else { $evaluateService = array(); } /* On retire les services déjà évalués de la liste des services à évaluer */ foreach ($evaluateService as $service) { if (isset($nonEvaluationData['data'][$service])) { unset($nonEvaluationData['data'][$service]); }