function isAllowedDownload(&$aFile, $isPerformAction = false)
 {
     if (getSettingValue('mp3', "save") != TRUE_VAL) {
         return false;
     }
     return $this->isAllowedView($aFile, $isPerformAction);
 }
Example #2
0
 function Footer()
 {
     global $avec_reliure;
     global $avec_emplacement_trous;
     //Dessin de la position des trous.
     if ($avec_reliure == 1 and $avec_emplacement_trous == 1) {
         $this->SetFillColor(0, 0, 0);
         for ($i = 0; $i < 4; $i++) {
             $this->Circle(9, 28.5 + 80 * $i, 2, 'F');
         }
     }
     $this->SetDash();
     $this->SetLineWidth(0.2);
     // on trace un trait horizontal
     $this->SetRightMargin(5);
     $this->SetXY(5, 287);
     $this->cell(0, 2, "", "T", 0);
     $this->SetFont('DejaVu', '', 7.5);
     $this->SetXY(5, 287);
     $this->Cell(0, 5, 'GEPI - Solution libre de Gestion des élèves par Internet', 0, 1, '');
     $etab_text = "" . getSettingValue("gepiSchoolName") . "  ";
     $lg_text = $this->GetStringWidth($etab_text);
     $position_x = 210 - 5 - $lg_text;
     $this->SetXY($position_x, 287);
     $this->Cell(0, 5, $etab_text, 0, 1, '');
     $this->SetY(287);
     $this->Cell(0, 5, 'Page ' . $this->PageNo(), "0", 1, 'C');
 }
Example #3
0
function redimensionne_image($photo)
{
	// prendre les informations sur l'image
	$info_image = getimagesize($photo);
	// largeur et hauteur de l'image d'origine
	$largeur = $info_image[0];
	$hauteur = $info_image[1];
	// largeur et/ou hauteur maximum à afficher
	if(basename($_SERVER['PHP_SELF'],".php") === "trombi_impr") {
		// si pour impression
		$taille_max_largeur = getSettingValue("l_max_imp_trombinoscopes");
		$taille_max_hauteur = getSettingValue("h_max_imp_trombinoscopes");
	} else {
	// si pour l'affichage écran
		$taille_max_largeur = getSettingValue("l_max_aff_trombinoscopes");
		$taille_max_hauteur = getSettingValue("h_max_aff_trombinoscopes");
	}

	// calcule le ratio de redimensionnement
	$ratio_l = $largeur / $taille_max_largeur;
	$ratio_h = $hauteur / $taille_max_hauteur;
	$ratio = ($ratio_l > $ratio_h)?$ratio_l:$ratio_h;

	// définit largeur et hauteur pour la nouvelle image
	$nouvelle_largeur = $largeur / $ratio;
	$nouvelle_hauteur = $hauteur / $ratio;

	return array($nouvelle_largeur, $nouvelle_hauteur);
}
	function suivi_absence_prof($date_choisie_deb, $eleve_id, $date_choisie){
		// On récupère les horaires de début du créneau en question et on les transforme en timestamp UNIX
			$choix_date = explode("/", $date_choisie);
			$date_choisie_ts = mktime(0,0,0, $choix_date[1], $choix_date[0], $choix_date[2]);
		if (date("w", $date_choisie_ts) == getSettingValue("creneau_different")) {
			$req_sql = mysqli_query($GLOBALS["mysqli"], "SELECT heuredebut_definie_periode, heurefin_definie_periode FROM edt_creneaux_bis WHERE id_definie_periode = '".$creneau_id."'");
		}
		else {
			$req_sql = mysqli_query($GLOBALS["mysqli"], "SELECT heuredebut_definie_periode, heurefin_definie_periode FROM edt_creneaux WHERE id_definie_periode = '".$creneau_id."'");
		}
		$rep_sql = mysqli_fetch_array($req_sql);
		$heuredeb = explode(":", $rep_sql["heuredebut_definie_periode"]);
		$heurefin = explode(":", $rep_sql["heurefin_definie_periode"]);
		$d_date = explode("/", $d_date_absence_eleve);
		$ts_heuredeb = mktime($heuredeb[0], $heuredeb[1], 0, $choix_date[1], $choix_date[0], $choix_date[2]);
		$ts_heurefin = mktime($heurefin[0], $heurefin[1], 0, $choix_date[1], $choix_date[0], $choix_date[2]);
		// On teste si l'élève était absent ou en retard le cours du créneau (on ne teste que le début du créneau)
		$req = mysqli_query($GLOBALS["mysqli"], "SELECT id, retard_absence FROM absences_rb WHERE eleve_id = '".$eleve_id."' AND debut_ts = '".$ts_heuredeb."'");
		$rep = mysqli_fetch_array($req);
			// S'il est marqué absent A -> fond rouge
		if ($rep["retard_absence"] == "A") {
			$retour = "<td style=\"border: 1px solid black; background-color: #ffd4d4; color: red;\"><b>A</b></td>";
		}
			// S'il est marqué en retard R -> fond vert
		else if ($rep["retard_absence"] == "R") {
			$retour = "<td style=\"border: 1px solid black; background-color: #d7ffd4; color: green;\"><b>R</b></td>";
		} else {
			$retour = "<td style=\"border: 1px solid black;\"></td>";
		}
		return $retour;
	}
/**
 * This function automatically logins user to your site and makes necessary redirects
 */
function redirect($sLocation, $iId, $sNick, $sPassword, $iMessageId, $iRecipientId, $sRecipientNick)
{
    global $sScriptHomeUrl;
    /**
     * Automatic login to your Web site.
     * You need to change this section according to your login algorithm.
     */
    $sPassword = md5($sPassword);
    setcookie("memberID", $iId, 0, '/');
    setcookie("memberPassword", $sPassword, 0, '/');
    //--- this section makes redirects depending on the specified action ---//
    switch ($sLocation) {
        case "goToInbox":
            header("Location: " . $sScriptHomeUrl . getSettingValue("desktop", "scriptMailboxPage"));
            break;
        case "goToReadMsg":
            header("Location: " . $sScriptHomeUrl . getSettingValue("desktop", "scriptMessagePage") . "?message=" . $iMessageId);
            break;
        case "goToNewMsg":
            header("Location: " . $sScriptHomeUrl . getSettingValue("desktop", "scriptComposePage") . "?ID=" . $sRecipientNick);
            break;
        default:
            header("Location: " . $sScriptHomeUrl);
    }
    exit;
}
	/**
	 * Filtre la requete sur les traitements qui montrent un manquement à l'obligation de presence de la part de l'eleve
	 *
	 * @param     boolean $value
	 *
	 * @return    AbsenceEleveTraitementQuery The current query, for fluid interface
	 */
    public function filterByManquementObligationPresence($value = true) {
	    if ($value) {
    		if (getSettingValue("abs2_saisie_par_defaut_sans_manquement")=='y') {
    		    $this->joinAbsenceEleveType()
    		         ->where('AbsenceEleveType.ManquementObligationPresence = ?',AbsenceEleveType::MANQU_OBLIG_PRESE_VRAI);
    		} else {//les saisies par défaut sont considérées comme des manquements
    		    $this->leftJoinAbsenceEleveType()
    			     ->where('AbsenceEleveType.Id IS NULL')
    			     ->_or()
    			     ->where('AbsenceEleveType.ManquementObligationPresence = ?',AbsenceEleveType::MANQU_OBLIG_PRESE_VRAI);
    		}
	    } else {//on cherche les traitements qui ne sont pas des manquement à l'obligation de présence
    		if (getSettingValue("abs2_saisie_par_defaut_sans_manquement")=='y') {
    		    $this->leftJoinAbsenceEleveType()
    			     ->where('AbsenceEleveType.Id IS NULL')
    			     ->_or()
    		         ->where('AbsenceEleveType.ManquementObligationPresence <> ?',AbsenceEleveType::MANQU_OBLIG_PRESE_VRAI);
    		} else {//les saisies par défaut sont considérées comme des manquements
    		    $this->joinAbsenceEleveType()
		             ->where('AbsenceEleveType.Id IS NOT NULL')
    			     ->where('AbsenceEleveType.ManquementObligationPresence <> ?',AbsenceEleveType::MANQU_OBLIG_PRESE_VRAI);
    		}
	    }
	    return $this;
	}
function convert($sUserId)
{
    global $sModule;
    global $sFfmpegPath;
    global $sFilesPath;
    @set_time_limit(1000);
    $sTempFile = $sUserId . TEMP_FILE_NAME;
    $sInput = " -y -i ";
    $sSize = " -s " . VIDEO_SIZE . " ";
    $sRate = "-r 25 -ar 44100 ";
    $sQuality = getSettingValue($sModule, "sameQuality") == TRUE_VAL ? "-sameq " : "";
    $sBackMode = " >" . $sFilesPath . "log.txt 2>&1 &";
    @chdir($sFilesPath);
    $sFile = $sTempFile . PLAY_EXTENSION;
    $sCommand = $sFfmpegPath . $sInput . $sTempFile . $sSize . $sRate . $sQuality . $sTempFile . PLAY_EXTENSION;
    @exec($sCommand);
    if (!file_exists($sFilesPath . $sFile) || filesize($sFilesPath . $sFile) == 0) {
        return false;
    }
    $sFile = $sTempFile . SAVE_EXTENSION;
    $sCommand = $sFfmpegPath . $sInput . $sTempFile . $sSize . $sRate . $sQuality . $sTempFile . SAVE_EXTENSION;
    @exec($sCommand);
    if (!file_exists($sFilesPath . $sFile) || filesize($sFilesPath . $sFile) == 0) {
        return false;
    }
    return grabImages($sTempFile, $sTempFile);
}
 function processing()
 {
     global $sModule;
     global $sFfmpegPath;
     global $sModulesPath;
     global $sFilesPath;
     $iFilesCount = getSettingValue($sModule, "processCount");
     if (!is_numeric($iFilesCount)) {
         $iFilesCount = 2;
     }
     $iFailedTimeout = getSettingValue($sModule, "failedTimeout");
     if (!is_numeric($iFailedTimeout)) {
         $iFailedTimeout = 1;
     }
     $iFailedTimeout *= 86400;
     $sDbPrefix = DB_PREFIX . ucfirst($sModule);
     $iCurrentTime = time();
     //remove all tokens older than 10 minutes
     getResult("DELETE FROM `" . $sDbPrefix . "Tokens` WHERE `Date`<'" . ($iCurrentTime - 600) . "'");
     getResult("UPDATE `" . $sDbPrefix . "Files` SET `Date`='" . $iCurrentTime . "', `Status`='" . VC_STATUS_FAILED . "' WHERE `Status`='" . VC_STATUS_PROCESSING . "' AND `Date`<'" . ($iCurrentTime - $iFailedTimeout) . "'");
     $rResult = getResult("SELECT * FROM `" . $sDbPrefix . "Files` WHERE `Status`='" . VC_STATUS_PENDING . "' ORDER BY `ID` LIMIT " . $iFilesCount);
     for ($i = 0; $i < mysql_num_rows($rResult); $i++) {
         $aFile = mysql_fetch_assoc($rResult);
         if (!_convert($aFile['ID'])) {
             getResult("UPDATE `" . $sDbPrefix . "Files` SET `Status`='" . VC_STATUS_FAILED . "' WHERE `ID`='" . $aFile['ID'] . "'");
         }
     }
 }
Example #9
0
 /**
  * Constructor
  * 
  * @var bool $default If TRUE set htaccess default data
  */
 function htaccess($default = FALSE)
 {
     $dirname = getSettingValue("backup_directory");
     $this->ht_dir = realpath("../backup/" . $dirname);
     if ($default == TRUE) {
         $this->option = array('AuthUserFile' => $this->ht_dir . '/' . $this->htpasswd_file, 'AuthName' => '"Admin"', 'AuthType' => 'Basic', 'require' => 'valid-user');
     }
 }
Example #10
0
 function processing()
 {
     global $sModule;
     global $sFfmpegPath;
     global $sModulesPath;
     global $sFilesPath;
     $iFilesCount = getSettingValue($sModule, "processCount");
     if (!is_numeric($iFilesCount)) {
         $iFilesCount = 2;
     }
     $iFailedTimeout = getSettingValue($sModule, "failedTimeout");
     if (!is_numeric($iFailedTimeout)) {
         $iFailedTimeout = 1;
     }
     $iFailedTimeout *= 86400;
     $sDbPrefix = DB_PREFIX . ucfirst($sModule);
     $iCurrentTime = time();
     do {
         //remove all tokens older than 10 minutes
         if (!getResult("DELETE FROM `" . $sDbPrefix . "Tokens` WHERE `Date`<'" . ($iCurrentTime - 600) . "'")) {
             break;
         }
         if (!getResult("UPDATE `" . $sDbPrefix . "Files` SET `Date`='" . $iCurrentTime . "', `Status`='" . STATUS_FAILED . "' WHERE `Status`='" . STATUS_PROCESSING . "' AND `Date`<'" . ($iCurrentTime - $iFailedTimeout) . "'")) {
             break;
         }
         $rResult = getResult("SELECT * FROM `" . $sDbPrefix . "Files` WHERE `Status`='" . STATUS_PENDING . "' ORDER BY `ID` LIMIT " . $iFilesCount);
         if (!$rResult) {
             break;
         }
         for ($i = 0; $i < mysql_num_rows($rResult); $i++) {
             $aFile = mysql_fetch_assoc($rResult);
             if (convertVideo($aFile['ID'])) {
                 $sType = 'bx_videos';
                 //album counter & cover update
                 if (getSettingValue($sModule, "autoApprove") == TRUE_VAL) {
                     $oAlbum = new BxDolAlbums($sType);
                     $oAlbum->updateObjCounterById($aFile['ID']);
                     if (getParam($oAlbum->sAlbumCoverParam) == 'on') {
                         $oAlbum->updateLastObjById($aFile['ID']);
                     }
                 }
                 //tags & categories parsing
                 $oTag = new BxDolTags();
                 $oTag->reparseObjTags($sType, $aFile['ID']);
                 $oCateg = new BxDolCategories($aFile['Owner']);
                 $oCateg->reparseObjTags($sType, $aFile['ID']);
             } else {
                 if (!getResult("UPDATE `" . $sDbPrefix . "Files` SET `Status`='" . STATUS_FAILED . "' WHERE `ID`='" . $aFile['ID'] . "'")) {
                     break;
                 }
             }
         }
     } while (false);
 }
Example #11
0
/**
 * Ajuste la taille de la police
 * 
 * En cas de pb avec cell_ajustee1(), effectuer:
 * - INSERT INTO setting SET name='cell_ajustee_old_way', value='y';
 * - UPDATE setting SET value='y' WHERE name='cell_ajustee_old_way';
 *
 * @global class
 * @param type $texte
 * @param type $x
 * @param type $y
 * @param type $largeur_dispo
 * @param type $h_cell
 * @param type $hauteur_max_font
 * @param type $hauteur_min_font
 * @param type $bordure LRBT
 * @param type $v_align C(enter) ou T(op)
 * @param type $align
 * @param type $increment nombre dont on réduit la police à chaque essai
 * @param type $r_interligne proportion de la taille de police pour les interlignes
 * @see PDF
 * @see getSettingValue()
 * @see cell_ajustee0()
 * @see cell_ajustee1()
 */
function cell_ajustee($texte,$x,$y,$largeur_dispo,$h_cell,$hauteur_max_font,$hauteur_min_font,$bordure,$v_align='C',$align='L',$increment=0.3,$r_interligne=0.3) {
	global $pdf;

	if(getSettingValue('cell_ajustee_old_way')=='y') {
		// On vire les balises en utilisant l'ancienne fonction qui ne gérait pas les balises
		$texte=preg_replace('/<(.*)>/U','',$texte);
		cell_ajustee0($texte,$x,$y,$largeur_dispo,$h_cell,$hauteur_max_font,$hauteur_min_font,$bordure,$v_align,$align,$increment,$r_interligne);
	}
	else {
		cell_ajustee1($texte,$x,$y,$largeur_dispo,$h_cell,$hauteur_max_font,$hauteur_min_font,$bordure,$v_align,$align,$increment,$r_interligne);
	}
}
/**
 * Refresh user's status.
 */
function refreshIMUsers($iSndId, $iRspId)
{
    global $sModule;
    $iIdleTime = (int) getSettingValue($sModule, "idleTime");
    $iDeleteTime = (int) getSettingValue($sModule, "deleteTime");
    //--- update user's online state ---//
    getResult("UPDATE `" . MODULE_DB_PREFIX . "Contacts` SET `When`=UNIX_TIMESTAMP() WHERE `SenderID`='" . $iSndId . "' AND `RecipientID` = '" . $iRspId . "'");
    //--- delete idle users ---//
    getResult("DELETE FROM `" . MODULE_DB_PREFIX . "Contacts` WHERE `When`<=(UNIX_TIMESTAMP()-" . $iIdleTime . ")");
    //--- delete old messages ---//
    getResult("DELETE FROM `" . MODULE_DB_PREFIX . "Messages` WHERE `When`<=(UNIX_TIMESTAMP()-" . $iDeleteTime . ")");
}
Example #13
0
 function my_phpmailer() {
     if (getSettingValue("grr_mail_method")  == "smtp") {
         $this->Host = getSettingValue("grr_mail_smtp");
         $this->Mailer = "smtp";
         if (getSettingValue("grr_mail_Username")!="") {
             $this->SMTPAuth  = true;
             $this->Username = getSettingValue("grr_mail_Username");
             $this->Password = getSettingValue("grr_mail_Password");
         } else {
             $this->SMTPAuth  = false;
         }
     }
 }
 /**
  * Modifie les droits dans la table droits
  *
  * @var $statutPasse : statut à mettre à jour
  * @var $titreItem : nom du droit à vérifier
  * @var $namePasse : nom de la page à mettre à jour (\xxxxx\xxxxx.xxx)
  * @var $force : permet de forcer le droit à V avec 'yes' et à F avec toute autre valeur.
  * Laisser vide pour que le droit soit recherché dans setting
  *
  */
 public function ouvreDroits($statutPasse, $titreItem, $namePasse, $force = NULL)
 {
     if ($force == NULL) {
         $droit = getSettingValue($titreItem);
     } else {
         $droit = $force;
     }
     if ($droit == 'yes') {
         $sql = "UPDATE `droits` SET `" . $statutPasse . "` =  'V' \n\t\tWHERE `id` = '" . $namePasse . "'";
     } else {
         $sql = "UPDATE `droits` SET `" . $statutPasse . "` =  'F'\n\t\tWHERE `id` = '" . $namePasse . "'";
     }
     $res = sql_query($sql);
     return TRUE;
 }
Example #15
0
function suivi_absence($creneau_id, $eleve_id){
	// On récupère les horaires de début du créneau en question et on les transforme en timestamp UNIX
	if (getSettingValue("creneau_different") != 'n') {
		if (date("w") == getSettingValue("creneau_different")) {
			$req_sql = mysqli_query($GLOBALS["mysqli"], "SELECT heuredebut_definie_periode, heurefin_definie_periode FROM edt_creneaux_bis WHERE id_definie_periode = '".$creneau_id."'");
		} else {
			$req_sql = mysqli_query($GLOBALS["mysqli"], "SELECT heuredebut_definie_periode, heurefin_definie_periode FROM edt_creneaux WHERE id_definie_periode = '".$creneau_id."'");
		}
	}else {
		$req_sql = mysqli_query($GLOBALS["mysqli"], "SELECT heuredebut_definie_periode, heurefin_definie_periode FROM edt_creneaux WHERE id_definie_periode = '".$creneau_id."'");
	}
		$rep_sql = mysqli_fetch_array($req_sql);
		$heuredeb = explode(":", $rep_sql["heuredebut_definie_periode"]);
		$heurefin = explode(":", $rep_sql["heurefin_definie_periode"]);

		$ts_heuredeb = mktime($heuredeb[0], $heuredeb[1], 0, date("m"), date("d"), date("Y"));
		$ts_heurefin = mktime($heurefin[0], $heurefin[1], 0, date("m"), date("d"), date("Y"));

		// On teste si l'élève était absent ou en retard le cours du créneau (on ne teste que le début du créneau)
		//$req = mysql_query("SELECT id, retard_absence FROM absences_rb WHERE
		//		eleve_id = '".$eleve_id."' AND
		//		debut_ts = '".$ts_heuredeb."'");
		$req = mysqli_query($GLOBALS["mysqli"], "SELECT id, retard_absence FROM absences_rb WHERE
								eleve_id = '".$eleve_id."'
								AND retard_absence = 'A'
								AND (debut_ts <= '".$ts_heuredeb."'
								AND fin_ts >= '".$ts_heurefin."')");
		$rep = mysqli_fetch_array($req);
			// S'il est marqué absent A -> fond rouge
		if ($rep["retard_absence"] == "A") {
			return " class=\"td_Absence\">A";
		//}
			// S'il est marqué en retard R -> fond vert
			//else if ($rep["retard_absence"] == "R") {
		}
		else{
			$req = mysqli_query($GLOBALS["mysqli"], "SELECT id, retard_absence FROM absences_rb WHERE
				eleve_id = '".$eleve_id."'
				AND retard_absence = 'R'
				AND debut_ts = '".$ts_heuredeb."'");
			$rep = mysqli_fetch_array($req);
			if ($rep["retard_absence"] == "R") {
				return " class=\"td_Retard\">R";
			}else{
				return ">";
			}
		}
	}
Example #16
0
/** Récupère les données d'un conteneur
 *  
 * Récupère les données d'un conteneur dans cn_conteneurs + 
 * l'appelation choisie pour les boites
 * 
 * @param int L'id du conteneur
 * @return object $retour Les données enregistrées dans les tables, FALSE sinon
 * @see getSettingValue()
 */
function charge_module($conteneur)
{
    $sql = "SELECT * FROM `cn_conteneurs`\n            WHERE `id` = '" . $conteneur . "'\n\t    ";
    $result = mysql_query($sql);
    if (mysql_num_rows($result) == 0) {
        return FALSE;
    }
    if (mysql_num_rows($result) > 1) {
        echo 'on ne devrait jamais avoir 2 conteneurs avec le même ID';
        die;
    }
    while ($row = mysql_fetch_object($result)) {
        $retour = $row;
        $retour->type = getSettingValue('gepi_denom_boite');
    }
    return $retour;
}
Example #17
0
/**
 * Refresh user's status.
 */
function refreshIMUsers($iSndId, $iRspId)
{
    global $sModule;
    $iUpdateTime = (int) getSettingValue($sModule, "updateInterval");
    if (empty($iUpdateTime)) {
        $iUpdateTime = 5;
    }
    $iIdleTime = $iUpdateTime * 3;
    $iDeleteTime = $iUpdateTime * 6;
    $iCurrentTime = time();
    //--- update user's online state ---//
    getResult("UPDATE `" . MODULE_DB_PREFIX . "Contacts` SET `When`='" . $iCurrentTime . "' WHERE `SenderID`='" . $iSndId . "' AND `RecipientID` = '" . $iRspId . "'");
    //--- delete idle users ---//
    getResult("DELETE FROM `" . MODULE_DB_PREFIX . "Contacts` WHERE `When`<=" . ($iCurrentTime - $iDeleteTime));
    //--- delete old messages ---//
    getResult("DELETE FROM `" . MODULE_DB_PREFIX . "Messages` WHERE `When`<=" . ($iCurrentTime - $iDeleteTime));
}
Example #18
0
 function getEmbedCode($iFileId, $aExtra = array())
 {
     $iFileId = (int) $iFileId;
     switch ($aExtra["source"]) {
         case "":
             $sEmbedCode = getEmbedCode('video', 'player', array('id' => $iFileId));
             break;
         case "youtube":
             $sEmbedCode = str_replace("#video#", $sVideo, YOUTUBE_VIDEO_EMBED);
             $sEmbedCode = str_replace("#wmode#", getWMode(), $sEmbedCode);
             $sEmbedCode = str_replace("#autoplay#", getSettingValue("video", "autoPlay") == TRUE_VAL ? "1" : "0", $sEmbedCode);
             break;
         default:
             $sEmbedCode = video_getCustomEmbedCode($aExtra["source"], $aExtra["video"]);
             break;
     }
     return $sEmbedCode;
 }
    /**
     * Filtre la requete sur les dates de début et de fin. En cas de date nulle, 
     * le premier jour ou le dernier de l'année scolaire est utilisé
     * Pour la date de fin, la comparaison est stricte. Si la date de fin est 2010-10-04 00:00:00, on aura les décompte du 03 mais pas du 04 
     * Pour la demi journée, on se base sur 12h et sur les préférences de l'application gepi
     * 
     * @param  DateTime $date_debut, $date_fin Dates de début et de fin de l'extraction des demi journées
     * @return    AbsenceAgregationDecompteQuery The current query, for fluid interface
     */
    public function filterByDateIntervalle(DateTime $date_debut=Null, DateTime $date_fin=Null) {
        
        if (is_null($date_debut) || is_null($date_fin)) {
            require_once("helpers/EdtHelper.php");
            if (is_null($date_debut)) {
                $date_debut = EdtHelper::getPremierJourAnneeScolaire();
            }
            if (is_null($date_fin)) {
                $date_fin = EdtHelper::getDernierJourAnneeScolaire();
            }
        }

        $heure_demi_journee = 11;
        $minute_demi_journee = 50;
        if (getSettingValue("abs2_heure_demi_journee") != null) {
            try {
                $dt_demi_journee = new DateTime(getSettingValue("abs2_heure_demi_journee"));
                $heure_demi_journee = $dt_demi_journee->format('H');
                $minute_demi_journee = $dt_demi_journee->format('i');
            } catch (Exception $x) {
                
            }
        }
        if (!isset($dt_demi_journee) || $dt_demi_journee == null) {
            $dt_demi_journee = new DateTime($heure_demi_journee.':'.$minute_demi_journee);
        }
        $date_debut_clone=clone $date_debut;
        if ($date_debut_clone->format('Hi') < $heure_demi_journee . $minute_demi_journee) {
            $date_debut_clone->setTime(0, 0, 0);
        } else {
            $date_debut_clone->setTime(12, 0, 0);
        }
        $dt_demi_journee->modify("+1 hour");
        $dt_demi_journee->modify("+35 minutes");
        $heure_demi_journee = $dt_demi_journee->format('H');
        $minute_demi_journee = $dt_demi_journee->format('i'); 
        $date_fin_clone=clone $date_fin;
        if ($date_fin_clone->format('Hi') < $heure_demi_journee . $minute_demi_journee && $date_fin_clone->format('H:i')!="00:00" && $date_debut_clone->format('H:i')=="00:00" ) {
            $date_fin_clone->setTime(11, 59, 0);
        }         
        $this->filterByDateDemiJounee($date_debut_clone, Criteria::GREATER_EQUAL)
                ->filterByDateDemiJounee($date_fin_clone, Criteria::LESS_THAN);
        return $this;
    }
function video_getList($sId)
{
    global $sModule;
    global $aXmlTemplates;
    global $sFilesPath;
    $sMode = getSettingValue($sModule, "listSource");
    $iCount = (int) getSettingValue($sModule, "listCount");
    if (!is_numeric($iCount) || $iCount <= 0) {
        $iCount = 10;
    }
    $oSource = new BxVideosSearch();
    $oSource->aCurrent['sorting'] = 'top';
    $oSource->aCurrent['paginate']['perPage'] = $iCount;
    $oSource->aCurrent['restriction']['id'] = array('value' => $sId, 'field' => 'ID', 'operator' => '<>');
    switch ($sMode) {
        case "Member":
            $sOwner = getValue("SELECT `Owner` FROM `" . MODULE_DB_PREFIX . "Files` WHERE `ID` = '" . $sId . "'");
            $oSource->aCurrent['restriction']['owner'] = array('value' => $sOwner, 'field' => 'Owner', 'operator' => '=');
            break;
        case "Related":
            $aFile = getArray("SELECT * FROM `" . MODULE_DB_PREFIX . "Files` WHERE `ID` = '" . $sId . "'");
            $oSource->aCurrent['restriction']['keyword'] = array('value' => $aFile['Title'] . " " . $aFile['Tags'] . " " . $aFile['Description'], 'field' => '', 'operator' => 'against');
            break;
        case "Top":
        default:
            $oSource->aCurrent['restriction']['id'] = array('value' => $sId, 'field' => 'ID', 'operator' => '<>');
            break;
    }
    $aData = $oSource->getSearchData();
    $iCurrentTime = time();
    $sResult = "";
    for ($i = 0; $i < count($aData); $i++) {
        $aData[$i]['uri'] = $oSource->getCurrentUrl('file', $aData[$i]['id'], $aData[$i]['uri']);
        $aData[$i]['date'] = _format_when($iCurrentTime - $aData[$i]['date']);
        $sImageFile = $aData[$i]['id'] . IMAGE_EXTENSION;
        $sThumbFile = $aData[$i]['id'] . THUMB_FILE_NAME . IMAGE_EXTENSION;
        if (!file_exists($sFilesPath . $sThumbFile)) {
            $sThumbFile = $sImageFile;
        }
        $sResult .= parseXml($aXmlTemplates['file'], $sThumbFile, $aData[$i]['size'], $aData[$i]['ownerName'], $aData[$i]['view'], $aData[$i]['voting_rate'], $aData[$i]['date'], $aData[$i]['title'], BX_DOL_URL_ROOT . $aData[$i]['uri']);
    }
    return $sResult;
}
Example #21
0
function retourneDevoirs($ele_login)
{
    $date_ct1 = mktime(0, 0, 0, date("m"), date("d"), date("Y"));
    $date_limite = $date_ct1 + 3600 * 24 * getSettingValue('delai_devoirs');
    // On récupère tous les devoirs depuis aujourd'hui 00:00:00
    $sql = "SELECT DISTINCT ctde.* FROM ct_devoirs_entry ctde, j_eleves_groupes jeg\r\n\t\t\t\t\t\t\t\tWHERE ctde.id_groupe = jeg.id_groupe\r\n\t\t\t\t\t\t\t\tAND jeg.login = '******'\r\n\t\t\t\t\t\t\t\tAND ctde.date_ct >= '" . $date_ct1 . "'\r\n\t\t\t\t\t\t\t\tAND ctde.date_ct <= '" . $date_limite . "'\r\n\t\t\t\t\t\t\t\tAND ctde.date_visibilite_eleve<='" . date("Y") . "-" . date("m") . "-" . date("d") . " " . date("H") . ":" . date("i") . ":00'\r\n\t\t\t\t\t\t\tORDER BY ctde.date_ct, ctde.id_groupe;";
    //echo "$sql<br />";
    /*
    $fich=fopen("/tmp/cdt.txt", "a+");
    fwrite($fich, strftime("%Y%m%d %H%M%S")." : ".preg_replace("/\t/","",$sql)."\n");
    fclose($fich);
    */
    $res_ct = mysqli_query($GLOBALS["mysqli"], $sql);
    $cpt2 = 0;
    // on initialise un compteur pour le while
    if (mysqli_num_rows($res_ct) > 0) {
        while ($lig_ct = mysqli_fetch_object($res_ct)) {
            $tab_ele['cdt_dev'][$cpt2] = array();
            $tab_ele['cdt_dev'][$cpt2]['id_ct'] = $lig_ct->id_ct;
            $tab_ele['cdt_dev'][$cpt2]['id_groupe'] = $lig_ct->id_groupe;
            $tab_ele['cdt_dev'][$cpt2]['date_ct'] = $lig_ct->date_ct;
            $tab_ele['cdt_dev'][$cpt2]['id_login'] = $lig_ct->id_login;
            $tab_ele['cdt_dev'][$cpt2]['contenu'] = $lig_ct->contenu;
            $sql = "SELECT * FROM ct_devoirs_documents WHERE id_ct_devoir='" . $lig_ct->id_ct . "' AND visible_eleve_parent='1';";
            $res_doc_joint = mysqli_query($GLOBALS["mysqli"], $sql);
            if (mysqli_num_rows($res_doc_joint) > 0) {
                $tab_ele['cdt_dev'][$cpt2]['doc_joint'] = array();
                $cpt_doc = 0;
                while ($lig_doc_joint = mysqli_fetch_object($res_doc_joint)) {
                    $tab_ele['cdt_dev'][$cpt2]['doc_joint'][$cpt_doc]['titre'] = $lig_doc_joint->titre;
                    $tab_ele['cdt_dev'][$cpt2]['doc_joint'][$cpt_doc]['emplacement'] = $lig_doc_joint->emplacement;
                    $cpt_doc++;
                }
            }
            $cpt2++;
        }
        $tab_ele['cdt_dev']['count'] = $cpt2;
    } else {
        $tab_ele['cdt_dev']['count'] = 0;
    }
    return $tab_ele;
}
function getActiveUsers($sUserId)
{
    global $sModule;
    require_once BX_DIRECTORY_PATH_INC . "db.inc.php";
    $iUpdateInterval = getSettingValue($sModule, "updateInterval");
    $iMin = getParam("member_online_time");
    $sOnlineFactor = "`UserStatus`!='" . USER_STATUS_OFFLINE . "' AND `DateLastNav`>SUBDATE(NOW(), INTERVAL " . $iMin . " MINUTE)";
    $sRetrieveFactor = "`DateLastNav`>SUBDATE(NOW(), INTERVAL " . ($iMin * 60 + $iUpdateInterval * 3) . " SECOND)";
    $rResult = getResult("SELECT `ID`, IF(" . $sOnlineFactor . ", 1, 0) AS `Online` FROM `Profiles` WHERE `ID`<>'" . $sUserId . "' AND " . $sRetrieveFactor . " ORDER BY `ID`");
    $aOnline = array();
    $aOffline = array();
    while (($aUser = mysql_fetch_assoc($rResult)) != null) {
        if ($aUser['Online']) {
            $aOnline[] = $aUser['ID'];
        } else {
            $aOffline[] = $aUser['ID'];
        }
    }
    return array('online' => $aOnline, 'offline' => $aOffline);
}
Example #23
0
 function _blockVideo($aReadyMedia, $iAuthorId, $sPrefix = false)
 {
     if (!$aReadyMedia) {
         return '';
     }
     $aVars = array('title' => false, 'prefix' => $sPrefix ? $sPrefix : 'id' . time() . '_' . rand(1, 999999), 'default_height' => getSettingValue('video', 'player_height'), 'bx_repeat:videos' => array(), 'bx_repeat:icons' => array());
     foreach ($aReadyMedia as $iMediaId) {
         $a = BxDolService::call('videos', 'get_video_array', array($iMediaId), 'Search');
         $a['ID'] = $iMediaId;
         $aVars['bx_repeat:videos'][] = array('style' => false === $aVars['title'] ? '' : 'display:none;', 'id' => $iMediaId, 'video' => BxDolService::call('videos', 'get_video_concept', array($a), 'Search'));
         $aVars['bx_repeat:icons'][] = array('id' => $iMediaId, 'icon_url' => $a['file'], 'title' => $a['title']);
         if (false === $aVars['title']) {
             $aVars['title'] = $a['title'];
         }
     }
     if (!$aVars['bx_repeat:icons']) {
         return '';
     }
     return $this->_oTemplate->parseHtmlByName('entry_view_block_videos', $aVars);
 }
Example #24
0
 function Header()
 {
     $bord = 0;
     //Police DejaVu gras 15
     //$this->Image("../images/logo.gif", 0, 0, 50, 50);
     $nom = $_SESSION['prenom'] . " " . $_SESSION['nom'];
     if ($_SESSION['statut'] != "professeur") {
         $user_statut = $_SESSION['statut'];
     } else {
         $nom_complet_matiere = sql_query1("select nom_complet from matieres where matiere = '" . $_SESSION['matiere'] . "'");
         if ($nom_complet_matiere != '-1') {
             $user_statut = "professeur de " . $nom_complet_matiere;
         } else {
             $user_statut = "Invité";
         }
     }
     $etab_text = getSettingValue("gepiSchoolName") . " - année scolaire " . getSettingValue("gepiYear");
     $gepi_text = "GEPI - Solution libre de Gestion des élèves par Internet";
     $this->SetFont('DejaVu', '', 8);
     //Calcul de la largeur des cellules
     $l = (LargeurPage - LeftMargin - LeftMargin) / 2;
     // on sauvegarde la position courante
     $x = $this->GetX();
     $y = $this->GetY();
     // on imprime du texte à gauche
     //$this->MultiCell($l, 5, $gepi_text,$bord, "L",0);
     $this->MultiCell($l, 5, $gepi_text, $bord, "L", 0);
     // déplace le curseur
     $this->SetXY($x + $l, $y);
     // on imprime du texte à droite
     //$this->MultiCell($l, 5, $etab_text,$bord, "R",0);
     $this->MultiCell($l, 5, $etab_text, $bord, "R", 0);
     $this->MultiCell($l, 5, $nom . " - " . $user_statut, $bord, "L", 0);
     // on trace un trait horizontal
     $this->cell(0, 2, "", "T", 0);
     // Saut de ligne et retour à la marge
     $this->ln();
     //Saut de ligne
 }
function convert($sUserId, $bJustRename = false)
{
    global $sModule;
    global $sFfmpegPath;
    global $sFilesPath;
    $aBitrates = array(64, 96, 128, 192, 256);
    $iBitrate = (int) getSettingValue($sModule, "convertBitrate");
    if (!in_array($iBitrate, $aBitrates)) {
        $iBitrate = 192;
    }
    @set_time_limit(500);
    chdir($sFilesPath);
    $sTempFile = $sUserId . TEMP_FILE_NAME;
    $sFile = $sTempFile . MP3_EXTENSION;
    if ($bJustRename) {
        return rename($sFilesPath . $sTempFile, $sFilesPath . $sFile);
    }
    $sCommand = $sFfmpegPath . " -y -i " . $sTempFile . " -vn -ar 44100 -ab " . $iBitrate . "k " . $sFile;
    exec($sCommand);
    if (!file_exists($sFilesPath . $sFile) || filesize($sFilesPath . $sFile) == 0) {
        return false;
    }
    return true;
}
Example #26
0
	/**
	 *
	 * Retourne tous les emplacements de cours pour la periode précisée du calendrier.
	 * On recupere aussi les emplacements dont la periode n'est pas definie ou vaut 0.
	 *
	 * @return PropelObjectCollection EdtEmplacementCours une collection d'emplacement de cours ordonnée chronologiquement
	 */
	public function getEdtEmplacementCourssPeriodeCalendrierActuelle($v = 'now'){
		if ( getSettingValue("autorise_edt_tous") != 'y') {
                return new PropelObjectCollection();
        }
        
		$query = EdtEmplacementCoursQuery::create()->filterByGroupe($this->getGroupes())
		    ->filterByIdCalendrier(0)
		    ->addOr(EdtEmplacementCoursPeer::ID_CALENDRIER, NULL);

	    if ($v instanceof EdtCalendrierPeriode) {
		$query->addOr(EdtEmplacementCoursPeer::ID_CALENDRIER, $v->getIdCalendrier());
	    } else {
		$periodeCalendrier = EdtCalendrierPeriodePeer::retrieveEdtCalendrierPeriodeActuelle($v);
		if ($periodeCalendrier != null) {
		       $query->addOr(EdtEmplacementCoursPeer::ID_CALENDRIER, $periodeCalendrier->getIdCalendrier());
		}
	    }

	    $edtCoursCol = $query->find();
	    require_once("helpers/EdtEmplacementCoursHelper.php");
	    EdtEmplacementCoursHelper::orderChronologically($edtCoursCol);

	    return $edtCoursCol;
	}
Example #27
0
 function getEmbedCode($iFileId, $aExtra = array())
 {
     $sOverride = false;
     $oAlert = new BxDolAlerts($this->_oConfig->getMainPrefix(), 'embed_code', $iFileId, getLoggedId(), array('override' => &$sOverride));
     $oAlert->alert();
     if ($sOverride) {
         return $sOverride;
     }
     $iFileId = (int) $iFileId;
     switch ($aExtra["source"]) {
         case "":
             $sEmbedCode = getEmbedCode('video', 'player', array('id' => $iFileId));
             break;
         case "youtube":
             $sEmbedCode = str_replace("#video#", $aExtra["video"], YOUTUBE_VIDEO_EMBED);
             $sEmbedCode = str_replace("#wmode#", getWMode(), $sEmbedCode);
             $sEmbedCode = str_replace("#autoplay#", getSettingValue("video", "autoPlay") == TRUE_VAL ? "&autoplay=1" : "", $sEmbedCode);
             break;
         default:
             $sEmbedCode = video_getCustomEmbedCode($aExtra["source"], $aExtra["video"]);
             break;
     }
     return $sEmbedCode;
 }
Example #28
0
// Resume session
$resultat_session = $session_gepi->security_check();
if ($resultat_session == 'c') {
	header("Location: ../utilisateurs/mon_compte.php?change_mdp=yes");
	die();
} else if ($resultat_session == '0') {
	header("Location: ../logout.php?auto=1");
	die();
}

if (!checkAccess()) {
    header("Location: ../logout.php?auto=1");
	die();
}

if(mb_strtolower(mb_substr(getSettingValue('active_mod_discipline'),0,1))!='y') {
	$mess=rawurlencode("Vous tentez d accéder au module Discipline qui est désactivé !");
	tentative_intrusion(1, "Tentative d'accès au module Discipline qui est désactivé.");
	header("Location: ../accueil.php?msg=$mess");
	die();
}

require('sanctions_func_lib.php');

$msg="";

$id_sanction=isset($_POST['id_sanction']) ? $_POST['id_sanction'] : (isset($_GET['id_sanction']) ? $_GET['id_sanction'] : NULL);

$lieu=isset($_GET['lieu']) ? $_GET['lieu'] : NULL;
$date=isset($_GET['date']) ? $_GET['date'] : NULL;
$heure=isset($_GET['heure']) ? $_GET['heure'] : NULL;
Example #29
0
	}
	else{
		$fb_session=$tmp_date['year'];
	}
}
// Mode de calcul des moyennes
$fb_mode_moyenne=getSettingValue("fb_mode_moyenne");
if($fb_mode_moyenne!=2){$fb_mode_moyenne=1;}


/***** Fin des données communes *****/



/***** Faut-il afficher le lieu de naissance *****/
$ele_lieu_naissance=getSettingValue("ele_lieu_naissance") ? getSettingValue("ele_lieu_naissance") : "n";

// création d'un tableau pour stocker les notes d'élèves
$tab_eleves_OOo=array();
$nb_eleve=0;

// BOUCLE SUR LA LISTE DES CLASSES

for($i=0;$i<count($id_classe);$i++){

	// Calcul des moyennes de classes... pb avec le statut...
	$moy_classe=array();
	for($j=$indice_premiere_matiere;$j<=$indice_max_matieres;$j++){
		if($tabmatieres[$j][0]!=''){
			$sql="SELECT ROUND(AVG(note),1) moyenne FROM notanet WHERE note!='DI' AND note!='AB' AND note!='NN' AND id_classe='$id_classe[$i]' AND notanet_mat='".$tabmatieres[$j][0]."'";
			$res_moy=mysqli_query($GLOBALS["mysqli"], $sql);
Example #30
0
	$gepiYear=getSettingValue("gepiYear") ? getSettingValue("gepiYear") : ((strftime("%m")>7) ? ((strftime("%Y")-1)."-".strftime("%Y")) : (strftime("%Y")."-".strftime("%Y")+1));

	$logo_etab=getSettingValue("logo_etab") ? getSettingValue("logo_etab") : "";

	/*
	$addressblock_length=70;
	$addressblock_padding_top=50;
	$addressblock_padding_text=5;
	$addressblock_padding_right=20;
	$addressblock_font_size=12;
	*/
	$addressblock_length=getSettingValue('addressblock_length');
	$addressblock_padding_top=getSettingValue('addressblock_padding_top');
	$addressblock_padding_text=getSettingValue('addressblock_padding_text');
	$addressblock_padding_right=getSettingValue('addressblock_padding_right');
	$addressblock_font_size=getSettingValue('addressblock_font_size');

	$margin_left=10;
	$margin_right=10;
	$margin_top=10;
	$margin_bottom=10;

	$debug='n';

	$ele_login=isset($_POST['ele_login']) ? $_POST['ele_login'] : (isset($_GET['ele_login']) ? $_GET['ele_login'] : array());

	if (isset($NON_PROTECT["courrier"])){
		//$courrier=traitement_magic_quotes(corriger_caracteres($NON_PROTECT["courrier"]));
		$courrier=$NON_PROTECT["courrier"];

		// Contrôle des saisies pour supprimer les sauts de lignes surnuméraires.