コード例 #1
0
ファイル: fnEvaluation.php プロジェクト: Galinijay/PAS
/**
 * getEvalData - Retourne les informations relative à une campagne d'évaluation
 *
 * @category : evaluationFunction
 * @param int $id Identifiant de la campagne d'évaluation
 * @return array Array contenant les données relative à la campagne d'évaluation
 *
 * @Author Ali Bellamine
 *
 *	 Contenu de l'array retourné :<br>
 *		['id'] => (int) identifiant de la campagne d'évaluation<br>
 *		['nom'] => (string) nom de la campagne d'évaluation<br>
 *		['date'][debut'] => (string) Date de début de la campagne d'évaluation sous forme de Timestamp<br>
 *		['date'][fin'] => (string) Date de fin de la campagne d'évaluation sous forme de Timestamp<br>
 *		['type'][id'] => (int) Identifiant du module de la campagne d'évaluation<br>
 *		['type'][nom'] => (string) Nom du module de la campagne d'évaluation<br>
 *		['type'][dossier'] => (string) Dossier d'installation du module de la campagne d'évaluation<br>
 *		['type'][data'] => (array) Contient les données relatives au type de module d'évaluation, voir {@link getEvalTypeData()}<br>
 *		['type'][statut'] => (int) Si 0, le module d'évaluation est actuellement inactif, si 1 il est actuellement actif<br>
 *		['users'][id de l'utilisateur] => (array) Contient les informations relatives à l'utilisateur : nom, prenom, promotion, nbEtudiant, voir {@link: getUserData()}<br>
 *		['orderedUsers'][] => (array) Même informations que ci dessus, mais celles-ci sont classé par ordre de résultats de la requête SQL et non plus par id (évaluations non remplis en premier)<br>
 *		['orderedUsers']['nb'] => (int) Nombre total d'utilisateurs<br>
 *		['nb']['remplis'] => (int) nombre d'évaluations remplis<br>
 *		['nb']['total'] => (int) nombre total d'utilisateurs
 */
function getEvalData($id)
{
    /*
    	Initialisation des variables
    */
    global $db;
    // Permet l'accès à la BDD
    $erreur = array();
    $evaluation = array();
    /*
    	On vérifie l'existance de l'évaluation
    */
    $erreur = checkEvaluation($id, $erreur);
    if (count($erreur) == 0) {
        /*
        	Récupération des informations sur l'évaluation
        */
        $sql = 'SELECT e.id evaluationId, e.nom evaluationNom, e.dateDebut evaluationDateDebut, e.dateFin evaluationDateFin, t.id evaluationTypeId, t.nom evaluationTypeNom, t.nomDossier evaluationTypeDossier, t.actif evaluationTypeStatut
						FROM evaluation e
						INNER JOIN typeevaluation t ON t.id = e.type
						WHERE e.id = ?
						LIMIT 1';
        $res = $db->prepare($sql);
        $res->execute(array($id));
        while ($res_f = $res->fetch()) {
            $evaluation['id'] = $res_f['evaluationId'];
            $evaluation['nom'] = $res_f['evaluationNom'];
            $evaluation['date']['debut'] = DatetimeToTimestamp($res_f['evaluationDateDebut']);
            $evaluation['date']['fin'] = DatetimeToTimestamp($res_f['evaluationDateFin']);
            $evaluation['type']['id'] = $res_f['evaluationTypeId'];
            $evaluation['type']['nom'] = $res_f['evaluationTypeNom'];
            $evaluation['type']['dossier'] = $res_f['evaluationTypeDossier'];
            $evaluation['type']['data'] = getEvalTypeData($res_f['evaluationTypeId']);
            $evaluation['type']['statut'] = $res_f['evaluationTypeStatut'];
        }
        /*
        	Récupèration de la liste des personne assignés à l'évaluation
        */
        $sql = 'SELECT er.id idRegister, er.evaluationStatut statut, er.date date, er.userId userId, u.nom userNom, u.prenom userPrenom, u.mail userMail, p.id promotionId, p.nom promotionNom, u.nbEtudiant nbEtudiant
						FROM evaluationregister er
						INNER JOIN user u ON er.userId = u.id
						LEFT JOIN promotion p ON p.id = u.promotion
						WHERE er.evaluationId = ?
						ORDER BY er.evaluationStatut ASC, u.nom ASC, u.prenom ASC';
        $res = $db->prepare($sql);
        if ($res->execute(array($evaluation['id']))) {
            $nbEval = 0;
            $evaluation['orderedUsers'] = array();
            while ($res_f = $res->fetch()) {
                if ($res_f['statut'] == 1) {
                    $nbEval++;
                }
                $evaluation['users'][$res_f['userId']]['id'] = $res_f['userId'];
                $evaluation['users'][$res_f['userId']]['registerId'] = $res_f['idRegister'];
                $evaluation['users'][$res_f['userId']]['statut'] = $res_f['statut'];
                $evaluation['users'][$res_f['userId']]['mail'] = array();
                if (isSerialized($res_f['userMail']) && ($tempMail = unserialize($res_f['userMail']))) {
                    $firstLoop = TRUE;
                    foreach ($tempMail as $email) {
                        $evaluation['users'][$res_f['userId']]['mail'][] = $email;
                    }
                }
                $evaluation['users'][$res_f['userId']]['nom'] = $res_f['userNom'];
                $evaluation['users'][$res_f['userId']]['prenom'] = $res_f['userPrenom'];
                if (isset($res_f['promotionNom'])) {
                    $evaluation['users'][$res_f['userId']]['promotion']['id'] = $res_f['promotionId'];
                    $evaluation['users'][$res_f['userId']]['promotion']['nom'] = $res_f['promotionNom'];
                }
                $evaluation['users'][$res_f['userId']]['nbEtudiant'] = $res_f['nbEtudiant'];
                $evaluation['orderedUsers'][] = $evaluation['users'][$res_f['userId']];
                // Même liste mais ordonée
            }
            if (isset($evaluation['users'])) {
                $evaluation['nb']['total'] = count($evaluation['users']);
            } else {
                $evaluation['nb']['total'] = 0;
            }
            $evaluation['nb']['remplis'] = $nbEval;
            $evaluation['orderedUsers']['nb'] = $evaluation['nb'];
        }
        return $evaluation;
    } else {
        return false;
    }
}
コード例 #2
0
ファイル: viewResult.php プロジェクト: Galinijay/PAS
			<input type = "submit" class = "inlineSubmit" value = "<?php 
    echo LANG_INTERFACE_SELECTBUTTON;
    ?>
" />
			</label>
		</form>
		</div>
	<?php 
}
/**
		3. Vérification et chargement du module
	**/
if (isset($_GET['evaluationType'])) {
    if (isset($evaluationTypeList[$_GET['evaluationType']]) && $evaluationTypeList[$_GET['evaluationType']]['actif'] == 1 && isset($evaluationTypeList[$_GET['evaluationType']]['resultRight'][$_SESSION['rang']]) && $evaluationTypeList[$_GET['evaluationType']]['resultRight'][$_SESSION['rang']] == 1) {
        // On enregistre les informations sur le type d'évaluation sélectionné dans $evaluationTypeData
        $evaluationTypeData = getEvalTypeData($evaluationTypeList[$_GET['evaluationType']]['id']);
        // On déclare la constante PLUGIN_PATH contenant le chemin du plugin
        define('PLUGIN_PATH', $_SERVER['DOCUMENT_ROOT'] . LOCAL_PATH . '/evaluations/' . $evaluationTypeData['dossier'] . '/');
        // On charge le fichier de config si il est présent
        if (is_file(PLUGIN_PATH . 'settings.php')) {
            include PLUGIN_PATH . 'settings.php';
        }
        // On refuse de charger le plugin si on est connecté en tant qu'un autre utilisateur et que cela n'a pas été autorisé
        if (isset($_SESSION['loginAS']) && (!defined('ALLOW_LOGIN_AS') || constant('ALLOW_LOGIN_AS') == FALSE)) {
            header('Location: ' . getPageUrl('evalView', array('erreur' => serialize(array(33 => TRUE)))));
            // On arrête l'execution du script
            exit;
        }
        // On charge le module
        include PLUGIN_PATH . 'displayEvaluationResult.php';
    }
コード例 #3
0
ファイル: header.php プロジェクト: alibell/PAS
}
?>
	</title>
    
	<!-- CSS -->

	<!-- Chargement du CSS spécifique au plugin si un plugin est chargé -->
	<?php 
if (CURRENT_FILE == 'content/evaluation/viewResult.php' || CURRENT_FILE == 'content/evaluation/view.php') {
    if (CURRENT_FILE == 'content/evaluation/viewResult.php' && isset($_GET['evaluationType'])) {
        // On récupère l'info sur le module si il est chargé
        $evaluationType = getEvalTypeData($_GET['evaluationType']);
    } else {
        if (CURRENT_FILE == 'content/evaluation/view.php' && isset($_GET['id'])) {
            // On récupère l'info sur le module si il est chargé
            $evaluationType = getEvalTypeData($_GET['id']);
        }
    }
    if (isset($evaluationType['dossier']) && is_file($_SERVER['DOCUMENT_ROOT'] . '/' . LOCAL_PATH . 'evaluations/' . $evaluationType['dossier'] . '/css/main.css')) {
        ?>
				<link rel="stylesheet" href="<?php 
        echo ROOT . 'evaluations/' . $evaluationType['dossier'] . '/css/main.css';
        ?>
"> <!-- CSS spécifique du plugin -->
				<?php 
    }
}
?>
	<link rel="stylesheet" href="<?php 
echo ROOT . 'theme/font-awesome-4.3.0/css/font-awesome.min.css';
?>
コード例 #4
0
ファイル: view.php プロジェクト: alibell/PAS
				<?php 
        echo CHARTE;
        ?>
				</div>
				<form method = "POST">
					<input type = "hidden" name = "chartValidation" />
					<input type = "submit" value = "<?php 
        echo LANG_ADMIN_CHART_VALID;
        ?>
" style = "color: white; background-color: #117D11; border-radius: 5px;" />
				</form>
			</div>
			<?php 
    } else {
        // Récupération des informations concernant le script
        $evaluationTypeData = getEvalTypeData($evaluationData['type']['id']);
        // On déclare la constante PLUGIN_PATH contenant le chemin du plugin
        define('PLUGIN_PATH', $_SERVER['DOCUMENT_ROOT'] . LOCAL_PATH . '/evaluations/' . $evaluationTypeData['dossier'] . '/');
        // On charge la page
        ?>
			<div class = "formEvaluation">
			<?php 
        // On charge le fichier de config si il est présent
        if (is_file(PLUGIN_PATH . 'settings.php')) {
            include PLUGIN_PATH . 'settings.php';
        }
        // On refuse de charger le plugin si on est connecté en tant qu'un autre utilisateur et que cela n'a pas été autorisé
        if (isset($_SESSION['loginAS']) && (!defined('ALLOW_LOGIN_AS') || constant('ALLOW_LOGIN_AS') == FALSE)) {
            header('Location: ' . getPageUrl('eval', array('erreur' => serialize(array(33 => TRUE)))));
            // On arrête l'execution du script
            exit;