Exemplo n.º 1
0
/**
 * 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;
}
Exemplo n.º 2
0
}
/*
	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]);
    }