function isAllowedDownload(&$aFile, $isPerformAction = false) { if (getSettingValue('mp3', "save") != TRUE_VAL) { return false; } return $this->isAllowedView($aFile, $isPerformAction); }
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'); }
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'] . "'"); } } }
/** * 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'); } }
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); }
/** * 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 . ")"); }
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; }
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 ">"; } } }
/** 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; }
/** * 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)); }
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; }
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); }
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); }
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; }
/** * * 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; }
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; }
// 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;
} 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);
$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.