コード例 #1
0
ファイル: users.php プロジェクト: dgrp/merge-system
 public function check_for_duplicates(&$user)
 {
     global $db, $output, $import_session;
     if (!$this->total_users) {
         // Count the total number of users so we can generate a unique id if we have a duplicate user
         $query = $db->simple_select("users", "COUNT(*) as totalusers");
         $this->total_users = $db->fetch_field($query, "totalusers");
         $db->free_result($query);
     }
     $username = $user[$this->settings['username_column']];
     $encoded_username = encode_to_utf8($user[$this->settings['username_column']], $this->settings['encode_table'], "users");
     // Check for duplicate users
     $where = "username='******' OR username='******'";
     $query = $db->simple_select("users", "username,email,uid,postnum", $where, array('limit' => 1));
     $duplicate_user = $db->fetch_array($query);
     $db->free_result($query);
     // Using strtolower and my_strtolower to check, instead of in the query, is exponentially faster
     // If we used LOWER() function in the query the index wouldn't be used by MySQL
     if (strtolower($duplicate_user['username']) == strtolower($username) || my_strtolower($duplicate_user['username']) == strtolower($encoded_username)) {
         if ($user[$this->settings['email_column']] == $duplicate_user['email']) {
             $output->print_progress("start");
             $output->print_progress("merge_user", array('import_uid' => $user[$this->settings['progress_column']], 'duplicate_uid' => $duplicate_user['uid']));
             $db->update_query("users", array('import_uid' => $user[$this->settings['progress_column']], 'postnum' => $duplicate_user['postnum'] + $user[$this->settings['postnum_column']]), "uid = '{$duplicate_user['uid']}'");
             return false;
         } else {
             $user[$this->settings['username_column']] = $duplicate_user['username'] . "_" . $import_session['board'] . "_import" . $this->total_users;
         }
     }
     return true;
 }
コード例 #2
0
/**
 * Checks a password with a supplied username.
 *
 * @param string The username of the user.
 * @param string The plain-text password.
 * @return boolean|array False when no match, array with user info when match.
 */
function validate_password_from_username($username, $password)
{
    global $db, $mybb;
    $username = $db->escape_string(my_strtolower($username));
    switch ($mybb->settings['username_method']) {
        case 0:
            $query = $db->simple_select("users", "uid,username,password,salt,loginkey,coppauser,usergroup", "LOWER(username)='" . $username . "'", array('limit' => 1));
            break;
        case 1:
            $query = $db->simple_select("users", "uid,username,password,salt,loginkey,coppauser,usergroup", "LOWER(email)='" . $username . "'", array('limit' => 1));
            break;
        case 2:
            $query = $db->simple_select("users", "uid,username,password,salt,loginkey,coppauser,usergroup", "LOWER(username)='" . $username . "' OR LOWER(email)='" . $username . "'", array('limit' => 1));
            break;
        default:
            $query = $db->simple_select("users", "uid,username,password,salt,loginkey,coppauser,usergroup", "LOWER(username)='" . $username . "'", array('limit' => 1));
            break;
    }
    $user = $db->fetch_array($query);
    if (!$user['uid']) {
        return false;
    } else {
        return validate_password_from_uid($user['uid'], $password, $user);
    }
}
コード例 #3
0
function get_board_stat_func()
{
    global $mybb, $cache, $db;
    // Get the online users.
    $timesearch = TIME_NOW - $mybb->settings['wolcutoff'];
    $query = $db->query("\n        SELECT s.sid, s.uid, s.time\n        FROM " . TABLE_PREFIX . "sessions s\n        WHERE s.time>'{$timesearch}'\n        ORDER BY s.time DESC\n    ");
    $membercount = 0;
    $guestcount = 0;
    $doneusers = array();
    // Fetch spiders
    $spiders = $cache->read("spiders");
    // Loop through all users.
    while ($user = $db->fetch_array($query)) {
        // Create a key to test if this user is a search bot.
        $botkey = my_strtolower(str_replace("bot=", '', $user['sid']));
        // Decide what type of user we are dealing with.
        if ($user['uid'] > 0) {
            // The user is registered.
            if ($doneusers[$user['uid']] < $user['time'] || !$doneusers[$user['uid']]) {
                ++$membercount;
                $doneusers[$user['uid']] = $user['time'];
            }
        } elseif (my_strpos($user['sid'], "bot=") !== false && $spiders[$botkey]) {
        } else {
            ++$guestcount;
        }
    }
    $onlinecount = $membercount + $guestcount;
    $stats = $cache->read("stats");
    $board_stat = array('total_threads' => new xmlrpcval($stats['numthreads'], 'int'), 'total_posts' => new xmlrpcval($stats['numposts'], 'int'), 'total_members' => new xmlrpcval($stats['numusers'], 'int'), 'guest_online' => new xmlrpcval($guestcount, 'int'), 'total_online' => new xmlrpcval($onlinecount, 'int'));
    $response = new xmlrpcval($board_stat, 'struct');
    return new xmlrpcresp($response);
}
コード例 #4
0
 /**
 This is where you perform the action when the API is called, the parameter given is an instance of stdClass, this method should return an instance of stdClass.
 */
 public function action()
 {
     global $mybb, $db, $cache;
     require_once MYBB_ROOT . "inc/functions_online.php";
     $timesearch = TIME_NOW - $mybb->settings['wolcutoffmins'] * 60;
     switch ($db->type) {
         case "sqlite":
             $sessions = array();
             $query = $db->simple_select("sessions", "sid", "time > {$timesearch}");
             while ($sid = $db->fetch_field($query, "sid")) {
                 $sessions[$sid] = 1;
             }
             $online_count = count($sessions);
             unset($sessions);
             break;
         case "pgsql":
         default:
             $query = $db->simple_select("sessions", "COUNT(sid) as online", "time > {$timesearch}");
             $online_count = $db->fetch_field($query, "online");
             break;
     }
     $query = $db->query("\n\t\t\tSELECT DISTINCT s.sid, s.ip, s.uid, s.time, s.location, u.username, s.nopermission, u.invisible, u.usergroup, u.displaygroup\n\t\t\tFROM " . TABLE_PREFIX . "sessions s\n\t\t\tLEFT JOIN " . TABLE_PREFIX . "users u ON (s.uid=u.uid)\n\t\t\tWHERE s.time>'{$timesearch}'\n\t\t\t");
     //ORDER BY $sql
     //	LIMIT {$start}, {$perpage}
     $users = array();
     $guests = array();
     $spiders = $cache->read("spiders");
     while ($user = $db->fetch_array($query)) {
         // Fetch the WOL activity
         $user['activity'] = fetch_wol_activity($user['location'], $user['nopermission']);
         $botkey = my_strtolower(str_replace("bot=", '', $user['sid']));
         // Have a registered user
         if ($user['uid'] > 0) {
             if ($users[$user['uid']]['time'] < $user['time'] || !$users[$user['uid']]) {
                 $users[$user['uid']] = $user;
             }
         } else {
             if (my_strpos($user['sid'], "bot=") !== false && $spiders[$botkey]) {
                 $user['bot'] = $spiders[$botkey]['name'];
                 $user['usergroup'] = $spiders[$botkey]['usergroup'];
                 $guests[] = $user;
             } else {
                 $guests[] = $user;
             }
         }
     }
     foreach ($users as &$user) {
         $user["display"] = format_name($user["username"], $user["usergroup"], $user["displaygroup"]);
     }
     $stdClass = new stdClass();
     // remove keys from this otherwise we will get an object of objects, sigh!
     $stdClass->users = array_values($users);
     $stdClass->guests = $guests;
     $stdClass->count = $online_count;
     $stdClass->wolcutoffmins = $mybb->settings["wolcutoffmins"];
     $stdClass->mostonline = $cache->read("mostonline");
     return $stdClass;
 }
コード例 #5
0
ファイル: traite_doc.php プロジェクト: rhertzog/lcs
function ajout_fichier($doc_file, $dest, $cpt_doc, $id_groupe)
{
    global $max_size, $total_max_size;
    /* Vérification du type de fichier */
    $ext = '';
    //if (my_ereg("\.([^.]+)$", $doc_file['name'][$cpt_doc], $match)) {
    if (function_exists("mb_ereg") && mb_ereg("\\.([^.]+)\$", $doc_file['name'][$cpt_doc], $match) || function_exists("ereg") && ereg("\\.([^.]+)\$", $doc_file['name'][$cpt_doc], $match)) {
        $ext = corriger_caracteres(my_strtolower($match[1]));
        $ext = corriger_extension($ext);
    }
    $query = "SELECT id_type FROM ct_types_documents WHERE extension='{$ext}' AND upload='oui'";
    $result = sql_query($query);
    if ($row = @sql_row($result, 0)) {
        $id_type = $row[0];
    } else {
        echo "Erreur : Ce type de fichier n'est pas autorisé en téléchargement.\nSi vous trouvez cela regrettable, contactez l'administrateur.\nIl pourra modifier ce paramétrage dans\n   *Gestion des modules/Cahiers de textes/Types de fichiers autorisés en téléchargement*.";
        die;
    }
    /* Vérification de la taille du fichier */
    $max_size_ko = $max_size / 1024;
    $taille = $doc_file['size'][$cpt_doc];
    if ($taille > $max_size) {
        echo "Erreur : Téléchargement impossible : taille maximale autorisée : " . $max_size_ko . " Ko";
        die;
    }
    if ($taille == 0) {
        echo "Le fichier sélectionné semble vide : transfert impossible.";
        die;
    }
    $query = "SELECT DISTINCT sum(taille) somme FROM ct_documents d, ct_entry e WHERE (e.id_groupe='" . $id_groupe . "' and e.id_ct = d.id_ct)";
    $total = sql_query1($query);
    if ($total + $taille > $total_max_size) {
        echo "Erreur : Téléchargement impossible : espace disque disponible (" . ($total_max_size - $total) / 1024 . " Ko) insuffisant.";
        die;
    }
    /* Crétion du répertoire de destination */
    if (!creer_repertoire($dest)) {
        echo "Erreur : Problème d'écriture sur le répertoire. Veuillez signaler ce problème à l'administrateur du site";
        echo $dest;
        die;
    }
    /* Recopier le fichier */
    $nom_sans_ext = mb_substr(basename($doc_file['name'][$cpt_doc]), 0, mb_strlen(basename($doc_file['name'][$cpt_doc])) - (mb_strlen($ext) + 1));
    $nom_sans_ext = my_ereg_replace("[^.a-zA-Z0-9_=-]+", "_", $nom_sans_ext);
    if (strstr($nom_sans_ext, "..")) {
        echo "Erreur : Problème de transfert : le fichier n'a pas pu être transféré sur le répertoire. Veuillez signaler ce problème à l'administrateur du site";
        die;
    }
    $n = 0;
    while (file_exists($newFile = $dest . "/" . $nom_sans_ext . ($n++ ? '-' . $n : '') . '.' . $ext)) {
    }
    $dest_file_path = $newFile;
    if (!deplacer_fichier_upload($doc_file['tmp_name'][$cpt_doc], $dest_file_path)) {
        echo "Erreur : Problème de transfert : le fichier n'a pas pu être transféré sur le répertoire. Veuillez signaler ce problème à l'administrateur du site";
        die;
    }
    return $dest_file_path;
}
コード例 #6
0
ファイル: login.php プロジェクト: dthiago/tapatalk-mybb
function login_func($xmlrpc_params)
{
    global $db, $lang, $theme, $plugins, $mybb, $session, $settings, $cache, $time, $mybbgroups, $mobiquo_config, $user, $register;
    $lang->load("member");
    $input = Tapatalk_Input::filterXmlInput(array('username' => Tapatalk_Input::STRING, 'password' => Tapatalk_Input::STRING, 'anonymous' => Tapatalk_Input::INT, 'push' => Tapatalk_Input::STRING), $xmlrpc_params);
    $logins = login_attempt_check(1);
    $login_text = '';
    if (!username_exists($input['username'])) {
        my_setcookie('loginattempts', $logins + 1);
        $status = 2;
        $response = new xmlrpcval(array('result' => new xmlrpcval(0, 'boolean'), 'result_text' => new xmlrpcval(strip_tags($lang->error_invalidpworusername), 'base64'), 'status' => new xmlrpcval($status, 'string')), 'struct');
        return new xmlrpcresp($response);
    }
    $query = $db->simple_select("users", "loginattempts", "LOWER(username)='" . my_strtolower($input['username_esc']) . "'", array('limit' => 1));
    $loginattempts = $db->fetch_field($query, "loginattempts");
    $errors = array();
    $user = validate_password_from_username($input['username'], $input['password']);
    $correct = false;
    if (!$user['uid']) {
        if (validate_email_format($input['username'])) {
            $mybb->settings['username_method'] = 1;
            $user = validate_password_from_username($input['username'], $input['password']);
        }
        if (!$user['uid']) {
            my_setcookie('loginattempts', $logins + 1);
            $db->update_query("users", array('loginattempts' => 'loginattempts+1'), "LOWER(username) = '" . my_strtolower($input['username_esc']) . "'", 1, true);
            if ($mybb->settings['failedlogincount'] != 0 && $mybb->settings['failedlogintext'] == 1) {
                $login_text = $lang->sprintf($lang->failed_login_again, $mybb->settings['failedlogincount'] - $logins);
            }
            $errors[] = $lang->error_invalidpworusername . $login_text;
        } else {
            $correct = true;
        }
    } else {
        $correct = true;
    }
    if (!empty($errors)) {
        return xmlrespfalse(implode(" :: ", $errors));
    } else {
        if ($correct) {
            $register = 0;
            return tt_login_success();
        }
    }
    return xmlrespfalse("Invalid login details");
}
コード例 #7
0
ファイル: url.php プロジェクト: ATofighi/MyBB-Tags
function tags_string2tag($s)
{
    global $mybb;
    $s = my_strtolower($s);
    $s = ltrim(rtrim(trim($s)));
    $s = str_replace(array("`", "~", "!", "@", "#", "\$", "%", "^", "&", "*", "(", ")", "_", "+", "-", "=", "\\", "|", "]", "[", "{", "}", '"', "'", ";", ":", "/", ".", " ", ">", "<"), ",", $s);
    $s = ltrim(rtrim(trim($s, ','), ','), ',');
    $s = preg_replace("#([,]+)#si", ',', $s);
    // https://github.com/ATofighi/MyBB-Tags/issues/33
    $mybb->settings['tags_charreplace'] = ltrim(rtrim(trim(str_replace(array("\r\n", "\r"), "\n", $mybb->settings['tags_charreplace']))));
    $translations = explode("\n", $mybb->settings['tags_charreplace']);
    foreach ($translations as $translation) {
        $translation = explode('=>', $translation, 2);
        $s = str_replace($translation[0], $translation[1], $s);
    }
    return $s;
}
コード例 #8
0
 /**
  * Initialize a session
  */
 function init()
 {
     global $db, $mybb, $cache;
     // Get our visitor's IP.
     $this->ipaddress = get_ip();
     $this->packedip = my_inet_pton($this->ipaddress);
     // Find out the user agent.
     $this->useragent = $_SERVER['HTTP_USER_AGENT'];
     // Attempt to find a session id in the cookies.
     if (isset($mybb->cookies['sid']) && !defined('IN_UPGRADE')) {
         $sid = $db->escape_string($mybb->cookies['sid']);
         // Load the session
         $query = $db->simple_select("sessions", "*", "sid='{$sid}' AND ip=" . $db->escape_binary($this->packedip));
         $session = $db->fetch_array($query);
         if ($session['sid']) {
             $this->sid = $session['sid'];
         }
     }
     // If we have a valid session id and user id, load that users session.
     if (!empty($mybb->cookies['mybbuser'])) {
         $logon = explode("_", $mybb->cookies['mybbuser'], 2);
         $this->load_user($logon[0], $logon[1]);
     }
     // If no user still, then we have a guest.
     if (!isset($mybb->user['uid'])) {
         // Detect if this guest is a search engine spider. (bots don't get a cookied session ID so we first see if that's set)
         if (!$this->sid) {
             $spiders = $cache->read("spiders");
             if (is_array($spiders)) {
                 foreach ($spiders as $spider) {
                     if (my_strpos(my_strtolower($this->useragent), my_strtolower($spider['useragent'])) !== false) {
                         $this->load_spider($spider['sid']);
                     }
                 }
             }
         }
         // Still nothing? JUST A GUEST!
         if (!$this->is_spider) {
             $this->load_guest();
         }
     }
     // As a token of our appreciation for getting this far (and they aren't a spider), give the user a cookie
     if ($this->sid && (!isset($mybb->cookies['sid']) || $mybb->cookies['sid'] != $this->sid) && $this->is_spider != true) {
         my_setcookie("sid", $this->sid, -1, true);
     }
 }
コード例 #9
0
ファイル: class_error.php プロジェクト: dgrp/merge-system
 /**
  * Parses a error for processing.
  *
  * @param string The error type (i.e. E_ERROR, E_FATAL)
  * @param string The error message
  * @param string The error file
  * @param integer The error line
  * @return boolean True if parsing was a success, otherwise assume a error
  */
 function error($type, $message, $file = null, $line = 0)
 {
     global $mybb;
     // Error reporting turned off (either globally or by @ before erroring statement)
     if (error_reporting() == 0) {
         return true;
     }
     if (in_array($type, $this->ignore_types)) {
         return true;
     }
     $file = str_replace(MYBB_ROOT, "", $file);
     // Do we have a PHP error?
     if (my_strpos(my_strtolower($this->error_types[$type]), 'warning') === false) {
         $this->debug->log->error("\$type: {$type} \$message: {$message} \$file: {$file} \$line: {$line}");
     } else {
         $this->debug->log->warning("\$type: {$type} \$message: {$message} \$file: {$file} \$line: {$line}");
     }
     return parent::error($type, $message, $file, $line);
 }
コード例 #10
0
ファイル: visu_ele_func.lib.php プロジェクト: rhertzog/lcs
function jour_en_fr($en)
{
    if (mb_substr(my_strtolower($en), 0, 3) == 'mon') {
        return 'lundi';
    } elseif (mb_substr(my_strtolower($en), 0, 3) == 'tue') {
        return 'mardi';
    } elseif (mb_substr(my_strtolower($en), 0, 3) == 'wed') {
        return 'mercredi';
    } elseif (mb_substr(my_strtolower($en), 0, 3) == 'thu') {
        return 'jeudi';
    } elseif (mb_substr(my_strtolower($en), 0, 3) == 'fri') {
        return 'vendredi';
    } elseif (mb_substr(my_strtolower($en), 0, 3) == 'sat') {
        return 'samedi';
    } elseif (mb_substr(my_strtolower($en), 0, 3) == 'sun') {
        return 'dimanche';
    } else {
        return "";
    }
}
コード例 #11
0
ファイル: cdt_fonctions.php プロジェクト: rhertzog/lcs
function AfficheIconePlusNew_CDT($id_groupe, $login_edt, $type_edt, $heuredeb_dec, $jour, $id_ct)
{
    // On envoie le lien si et seulement si c'est un administrateur ou un scolarite ou si l'admin a donné le droit aux professeurs
    if (($_SESSION["statut"] == "administrateur" or $_SESSION["statut"] == "scolarite" or $_SESSION["statut"] == "professeur" and my_strtolower($login_edt) == my_strtolower($_SESSION["login"])) and $type_edt == "prof") {
        $deb = "milieu";
        if ($heuredeb_dec == 0) {
            $deb = "debut";
        }
        if ($id_ct == 0) {
            echo "<span class=\"image\">";
            $MaDate = RecupereTimestampJour_CDT2($jour);
            echo "<a href=\"#\" style=\"font-size: 11pt;\"  onclick=\"javascript:\r\n\t\t\t\t\tid_groupe = '" . $id_groupe . "';\r\n\t\t\t\t\tgetWinDernieresNotices().hide();\r\n\t\t\t\t\tgetWinListeNotices();\r\n\t\t\t\t\tnew Ajax.Updater('affichage_liste_notice', './ajax_affichages_liste_notices.php?id_groupe=" . $id_groupe . "', {encoding: 'utf-8'});\r\n\t\t\t\t\tgetWinEditionNotice().setAjaxContent('./ajax_edition_compte_rendu.php?id_groupe=" . $id_groupe . "&today=" . $MaDate . "', { \r\n\t\t\t\t\t\t\t\tencoding: 'utf-8',\r\n\t\t\t\t\t\t\t\tonComplete : \r\n\t\t\t\t\t\t\t\tfunction() {\r\n\t\t\t\t\t\t\t\t\tinitWysiwyg();\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t);\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t\">\r\n\t\t\t\t<img src=\"../templates/" . NameTemplateEDT() . "/images/cdt_vide.png\" title=\"Ajouter Compte-rendu\" alt=\"Ajouter Compte-rendu\" /></a>";
            echo "</span>\n";
        } else {
            echo "<span class=\"image\">";
            $MaDate = RecupereTimestampJour_CDT2($jour);
            echo "<a href=\"#\" style=\"font-size: 11pt;\"  onclick=\"javascript:\r\n\t\t\t\t\tid_groupe = '" . $id_groupe . "';\r\n\t\t\t\t\tgetWinDernieresNotices().hide();\r\n\t\t\t\t\tgetWinListeNotices();\r\n\t\t\t\t\tnew Ajax.Updater('affichage_liste_notice', './ajax_affichages_liste_notices.php?id_groupe=" . $id_groupe . "', {encoding: 'utf-8'});\r\n\t\t\t\t\tgetWinEditionNotice().setAjaxContent('./ajax_edition_compte_rendu.php?id_ct=" . $id_ct . "&id_groupe=" . $id_groupe . "&today=" . $MaDate . "', { \r\n\t\t\t\t\t\t\t\tencoding: 'utf-8',\r\n\t\t\t\t\t\t\t\tonComplete : \r\n\t\t\t\t\t\t\t\tfunction() {\r\n\t\t\t\t\t\t\t\t\tinitWysiwyg();\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t);\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t\">\r\n\t\t\t\t<img src=\"../templates/" . NameTemplateEDT() . "/images/cdt_rempli.png\" title=\"Editer Compte-rendu\" alt=\"Ajouter Compte-rendu\" /></a>";
            echo "</span>\n";
        }
    }
}
コード例 #12
0
ファイル: modcp.php プロジェクト: olada/mybbintegrator
 $perpage = $mybb->get_input('perpage', MyBB::INPUT_INT);
 if (!$perpage || $perpage <= 0) {
     $perpage = $mybb->settings['threadsperpage'];
 }
 $where = '';
 if (isset($mybb->input['username'])) {
     switch ($db->type) {
         case 'mysql':
         case 'mysqli':
             $field = 'username';
             break;
         default:
             $field = 'LOWER(username)';
             break;
     }
     $where = " AND {$field} LIKE '%" . my_strtolower($db->escape_string_like($mybb->get_input('username'))) . "%'";
 }
 // Sort order & direction
 switch ($mybb->get_input('sortby')) {
     case "lastvisit":
         $sortby = "lastvisit";
         break;
     case "postnum":
         $sortby = "postnum";
         break;
     case "username":
         $sortby = "username";
         break;
     default:
         $sortby = "regdate";
 }
コード例 #13
0
ファイル: event.php プロジェクト: mainhan1804/xomvanphong
 /**
  * @param string $time
  *
  * @return array|bool
  */
 function verify_time($time)
 {
     preg_match('#^(0?[1-9]|1[012])\\s?([:\\.]?)\\s?([0-5][0-9])?(\\s?[ap]m)|([01][0-9]|2[0-3])\\s?([:\\.])\\s?([0-5][0-9])$#i', $time, $matches);
     if (count($matches) == 0) {
         return false;
     }
     // 24h time
     if (count($matches) == 8) {
         $hour = $matches[5];
         $min = $matches[7];
     } else {
         $hour = $matches[1];
         $min = (int) $matches[3];
         $matches[4] = trim($matches[4]);
         if (my_strtolower($matches[4]) == "pm" && $hour != 12) {
             $hour += 12;
         } else {
             if (my_strtolower($matches[4]) == "am" && $hour == 12) {
                 $hour = 0;
             }
         }
     }
     return array("hour" => $hour, "min" => $min);
 }
コード例 #14
0
ファイル: functions_post.php プロジェクト: slothly/mybb
/**
 * Build a post bit
 *
 * @param array The post data
 * @param int The type of post bit we're building (1 = preview, 2 = pm, 3 = announcement, else = post)
 * @return string The built post bit
 */
function build_postbit($post, $post_type = 0)
{
    global $db, $altbg, $theme, $mybb, $postcounter;
    global $titlescache, $page, $templates, $forumpermissions, $attachcache;
    global $lang, $ismod, $inlinecookie, $inlinecount, $groupscache, $fid;
    global $plugins, $parser, $cache, $ignored_users, $hascustomtitle;
    $hascustomtitle = 0;
    // Set default values for any fields not provided here
    foreach (array('subject_extra', 'attachments', 'button_rep', 'button_warn', 'button_reply_pm', 'button_replyall_pm', 'button_forward_pm', 'button_delete_pm') as $post_field) {
        if (empty($post[$post_field])) {
            $post[$post_field] = '';
        }
    }
    // Set up the message parser if it doesn't already exist.
    if (!$parser) {
        require_once MYBB_ROOT . "inc/class_parser.php";
        $parser = new postParser();
    }
    $unapproved_shade = '';
    if ($post['visible'] == 0 && $post_type == 0) {
        $altbg = $unapproved_shade = 'trow_shaded';
    } elseif ($altbg == 'trow1') {
        $altbg = 'trow2';
    } else {
        $altbg = 'trow1';
    }
    $post['fid'] = $fid;
    switch ($post_type) {
        case 1:
            // Message preview
            global $forum;
            $parser_options['allow_html'] = $forum['allowhtml'];
            $parser_options['allow_mycode'] = $forum['allowmycode'];
            $parser_options['allow_smilies'] = $forum['allowsmilies'];
            $parser_options['allow_imgcode'] = $forum['allowimgcode'];
            $parser_options['allow_videocode'] = $forum['allowvideocode'];
            $parser_options['me_username'] = $post['username'];
            $parser_options['filter_badwords'] = 1;
            $id = 0;
            break;
        case 2:
            // Private message
            global $message, $pmid;
            $parser_options['allow_html'] = $mybb->settings['pmsallowhtml'];
            $parser_options['allow_mycode'] = $mybb->settings['pmsallowmycode'];
            $parser_options['allow_smilies'] = $mybb->settings['pmsallowsmilies'];
            $parser_options['allow_imgcode'] = $mybb->settings['pmsallowimgcode'];
            $parser_options['allow_videocode'] = $mybb->settings['pmsallowvideocode'];
            $parser_options['me_username'] = $post['username'];
            $parser_options['filter_badwords'] = 1;
            $id = $pmid;
            break;
        case 3:
            // Announcement
            global $announcementarray, $message;
            $parser_options['allow_html'] = $announcementarray['allowhtml'];
            $parser_options['allow_mycode'] = $announcementarray['allowmycode'];
            $parser_options['allow_smilies'] = $announcementarray['allowsmilies'];
            $parser_options['allow_imgcode'] = 1;
            $parser_options['allow_videocode'] = 1;
            $parser_options['me_username'] = $post['username'];
            $parser_options['filter_badwords'] = 1;
            break;
        default:
            // Regular post
            global $forum, $thread, $tid;
            $oldforum = $forum;
            $id = intval($post['pid']);
            $parser_options['allow_html'] = $forum['allowhtml'];
            $parser_options['allow_mycode'] = $forum['allowmycode'];
            $parser_options['allow_smilies'] = $forum['allowsmilies'];
            $parser_options['allow_imgcode'] = $forum['allowimgcode'];
            $parser_options['allow_videocode'] = $forum['allowvideocode'];
            $parser_options['filter_badwords'] = 1;
            if (!$post['username']) {
                $post['username'] = $lang->guest;
            }
            if ($post['userusername']) {
                $parser_options['me_username'] = $post['userusername'];
            } else {
                $parser_options['me_username'] = $post['username'];
            }
            break;
    }
    // Sanatize our custom profile fields for use in templates, if people choose to use them
    foreach ($post as $post_field => $field_value) {
        if (substr($post_field, 0, 3) != 'fid') {
            continue;
        }
        $post[$post_field] = htmlspecialchars_uni($field_value);
    }
    if (!$postcounter) {
        // Used to show the # of the post
        if ($page > 1) {
            if (!$mybb->settings['postsperpage'] || (int) $mybb->settings['postsperpage'] < 1) {
                $mybb->settings['postsperpage'] = 20;
            }
            $postcounter = $mybb->settings['postsperpage'] * ($page - 1);
        } else {
            $postcounter = 0;
        }
        $post_extra_style = "border-top-width: 0;";
    } elseif ($mybb->input['mode'] == "threaded") {
        $post_extra_style = "border-top-width: 0;";
    } else {
        $post_extra_style = "margin-top: 5px;";
    }
    if (!$altbg) {
        // Define the alternate background colour if this is the first post
        $altbg = "trow1";
    }
    $postcounter++;
    // Format the post date and time using my_date
    $post['postdate'] = my_date($mybb->settings['dateformat'], $post['dateline']);
    $post['posttime'] = my_date($mybb->settings['timeformat'], $post['dateline']);
    // Dont want any little 'nasties' in the subject
    $post['subject'] = $parser->parse_badwords($post['subject']);
    // Pm's have been htmlspecialchars_uni()'ed already.
    if ($post_type != 2) {
        $post['subject'] = htmlspecialchars_uni($post['subject']);
    }
    if (empty($post['subject'])) {
        $post['subject'] = '&nbsp;';
    }
    $post['author'] = $post['uid'];
    // Get the usergroup
    if ($post['userusername']) {
        if (!$post['displaygroup']) {
            $post['displaygroup'] = $post['usergroup'];
        }
        $usergroup = $groupscache[$post['displaygroup']];
    } else {
        $usergroup = $groupscache[1];
    }
    if (!is_array($titlescache)) {
        $cached_titles = $cache->read("usertitles");
        if (!empty($cached_titles)) {
            foreach ($cached_titles as $usertitle) {
                $titlescache[$usertitle['posts']] = $usertitle;
            }
        }
        if (is_array($titlescache)) {
            krsort($titlescache);
        }
        unset($usertitle, $cached_titles);
    }
    // Work out the usergroup/title stuff
    $post['groupimage'] = '';
    if (!empty($usergroup['image'])) {
        $language = $mybb->settings['bblanguage'];
        if (!empty($mybb->user['language'])) {
            $language = $mybb->user['language'];
        }
        $usergroup['image'] = str_replace("{lang}", $language, $usergroup['image']);
        $usergroup['image'] = str_replace("{theme}", $theme['imgdir'], $usergroup['image']);
        eval("\$post['groupimage'] = \"" . $templates->get("postbit_groupimage") . "\";");
        if ($mybb->settings['postlayout'] == "classic") {
            $post['groupimage'] .= "<br />";
        }
    }
    if ($post['userusername']) {
        // This post was made by a registered user
        $post['username'] = $post['userusername'];
        $post['profilelink_plain'] = get_profile_link($post['uid']);
        $post['username_formatted'] = format_name($post['username'], $post['usergroup'], $post['displaygroup']);
        $post['profilelink'] = build_profile_link($post['username_formatted'], $post['uid']);
        if (trim($post['usertitle']) != "") {
            $hascustomtitle = 1;
        }
        if ($usergroup['usertitle'] != "" && !$hascustomtitle) {
            $post['usertitle'] = $usergroup['usertitle'];
        } elseif (is_array($titlescache) && !$usergroup['usertitle']) {
            reset($titlescache);
            foreach ($titlescache as $key => $titleinfo) {
                if ($post['postnum'] >= $key) {
                    if (!$hascustomtitle) {
                        $post['usertitle'] = $titleinfo['title'];
                    }
                    $post['stars'] = $titleinfo['stars'];
                    $post['starimage'] = $titleinfo['starimage'];
                    break;
                }
            }
        }
        if ($usergroup['stars']) {
            $post['stars'] = $usergroup['stars'];
        }
        if (empty($post['starimage'])) {
            $post['starimage'] = $usergroup['starimage'];
        }
        if ($post['starimage'] && $post['stars']) {
            // Only display stars if we have an image to use...
            $post['starimage'] = str_replace("{theme}", $theme['imgdir'], $post['starimage']);
            $post['userstars'] = '';
            for ($i = 0; $i < $post['stars']; ++$i) {
                $post['userstars'] .= "<img src=\"" . $post['starimage'] . "\" border=\"0\" alt=\"*\" />";
            }
            $post['userstars'] .= "<br />";
        }
        $postnum = $post['postnum'];
        $post['postnum'] = my_number_format($post['postnum']);
        // Determine the status to show for the user (Online/Offline/Away)
        $timecut = TIME_NOW - $mybb->settings['wolcutoff'];
        if ($post['lastactive'] > $timecut && ($post['invisible'] != 1 || $mybb->usergroup['canviewwolinvis'] == 1) && $post['lastvisit'] != $post['lastactive']) {
            eval("\$post['onlinestatus'] = \"" . $templates->get("postbit_online") . "\";");
        } else {
            if ($post['away'] == 1 && $mybb->settings['allowaway'] != 0) {
                eval("\$post['onlinestatus'] = \"" . $templates->get("postbit_away") . "\";");
            } else {
                eval("\$post['onlinestatus'] = \"" . $templates->get("postbit_offline") . "\";");
            }
        }
        if ($post['avatar'] != "" && ($mybb->user['showavatars'] != 0 || !$mybb->user['uid'])) {
            $post['avatar'] = htmlspecialchars_uni($post['avatar']);
            $avatar_dimensions = explode("|", $post['avatardimensions']);
            if ($avatar_dimensions[0] && $avatar_dimensions[1]) {
                list($max_width, $max_height) = explode("x", my_strtolower($mybb->settings['postmaxavatarsize']));
                if ($avatar_dimensions[0] > $max_width || $avatar_dimensions[1] > $max_height) {
                    require_once MYBB_ROOT . "inc/functions_image.php";
                    $scaled_dimensions = scale_image($avatar_dimensions[0], $avatar_dimensions[1], $max_width, $max_height);
                    $avatar_width_height = "width=\"{$scaled_dimensions['width']}\" height=\"{$scaled_dimensions['height']}\"";
                } else {
                    $avatar_width_height = "width=\"{$avatar_dimensions[0]}\" height=\"{$avatar_dimensions[1]}\"";
                }
            }
            eval("\$post['useravatar'] = \"" . $templates->get("postbit_avatar") . "\";");
            $post['avatar_padding'] = "padding-right: 10px;";
        } else {
            $post['useravatar'] = '';
            $post['avatar_padding'] = '';
        }
        eval("\$post['button_find'] = \"" . $templates->get("postbit_find") . "\";");
        if ($mybb->settings['enablepms'] == 1 && $post['receivepms'] != 0 && $mybb->usergroup['cansendpms'] == 1 && my_strpos("," . $post['ignorelist'] . ",", "," . $mybb->user['uid'] . ",") === false) {
            eval("\$post['button_pm'] = \"" . $templates->get("postbit_pm") . "\";");
        }
        if ($post_type != 3 && $mybb->settings['enablereputation'] == 1 && $mybb->settings['postrep'] == 1 && $mybb->usergroup['cangivereputations'] == 1 && $usergroup['usereputationsystem'] == 1 && ($mybb->settings['posrep'] || $mybb->settings['neurep'] || $mybb->settings['negrep']) && $post['uid'] != $mybb->user['uid']) {
            if (!$post['pid']) {
                $post['pid'] = 0;
            }
            eval("\$post['button_rep'] = \"" . $templates->get("postbit_rep_button") . "\";");
        }
        if ($post['website'] != "") {
            $post['website'] = htmlspecialchars_uni($post['website']);
            eval("\$post['button_www'] = \"" . $templates->get("postbit_www") . "\";");
        } else {
            $post['button_www'] = "";
        }
        if ($post['hideemail'] != 1 && $mybb->usergroup['cansendemail'] == 1) {
            eval("\$post['button_email'] = \"" . $templates->get("postbit_email") . "\";");
        } else {
            $post['button_email'] = "";
        }
        $post['userregdate'] = my_date($mybb->settings['regdateformat'], $post['regdate']);
        // Work out the reputation this user has (only show if not announcement)
        if ($post_type != 3 && $usergroup['usereputationsystem'] != 0 && $mybb->settings['enablereputation'] == 1) {
            $post['userreputation'] = get_reputation($post['reputation'], $post['uid']);
            eval("\$post['replink'] = \"" . $templates->get("postbit_reputation") . "\";");
        }
        // Showing the warning level? (only show if not announcement)
        if ($post_type != 3 && $mybb->settings['enablewarningsystem'] != 0 && $usergroup['canreceivewarnings'] != 0 && ($mybb->usergroup['canwarnusers'] != 0 || $mybb->user['uid'] == $post['uid'] && $mybb->settings['canviewownwarning'] != 0)) {
            $warning_level = round($post['warningpoints'] / $mybb->settings['maxwarningpoints'] * 100);
            if ($warning_level > 100) {
                $warning_level = 100;
            }
            $warning_level = get_colored_warning_level($warning_level);
            // If we can warn them, it's not the same person, and we're in a PM or a post.
            if ($mybb->usergroup['canwarnusers'] != 0 && $post['uid'] != $mybb->user['uid'] && ($post_type == 0 || $post_type == 2)) {
                eval("\$post['button_warn'] = \"" . $templates->get("postbit_warn") . "\";");
                $warning_link = "warnings.php?uid={$post['uid']}";
            } else {
                $warning_link = "usercp.php";
            }
            eval("\$post['warninglevel'] = \"" . $templates->get("postbit_warninglevel") . "\";");
        }
        eval("\$post['user_details'] = \"" . $templates->get("postbit_author_user") . "\";");
    } else {
        // Message was posted by a guest or an unknown user
        $post['profilelink'] = format_name($post['username'], 1);
        if ($usergroup['usertitle']) {
            $post['usertitle'] = $usergroup['usertitle'];
        } else {
            $post['usertitle'] = $lang->guest;
        }
        $usergroup['title'] = $lang->na;
        $post['userregdate'] = $lang->na;
        $post['postnum'] = $lang->na;
        $post['button_profile'] = '';
        $post['button_email'] = '';
        $post['button_www'] = '';
        $post['signature'] = '';
        $post['button_pm'] = '';
        $post['button_find'] = '';
        $post['onlinestatus'] = '';
        $post['replink'] = '';
        eval("\$post['user_details'] = \"" . $templates->get("postbit_author_guest") . "\";");
    }
    $post['button_edit'] = '';
    $post['button_quickdelete'] = '';
    $post['button_quote'] = '';
    $post['button_quickquote'] = '';
    $post['button_report'] = '';
    // For private messages, fetch the reply/forward/delete icons
    if ($post_type == 2 && $post['pmid']) {
        global $replyall;
        eval("\$post['button_reply_pm'] = \"" . $templates->get("postbit_reply_pm") . "\";");
        eval("\$post['button_forward_pm'] = \"" . $templates->get("postbit_forward_pm") . "\";");
        eval("\$post['button_delete_pm'] = \"" . $templates->get("postbit_delete_pm") . "\";");
        if ($replyall == true) {
            eval("\$post['button_replyall_pm'] = \"" . $templates->get("postbit_replyall_pm") . "\";");
        }
    }
    if (!$post_type) {
        // Figure out if we need to show an "edited by" message
        $post['editedmsg'] = '';
        if ($post['edituid'] != 0 && $post['edittime'] != 0 && $post['editusername'] != "" && ($mybb->settings['showeditedby'] != 0 && $usergroup['cancp'] == 0 || $mybb->settings['showeditedbyadmin'] != 0 && $usergroup['cancp'] == 1)) {
            $post['editdate'] = my_date($mybb->settings['dateformat'], $post['edittime']);
            $post['edittime'] = my_date($mybb->settings['timeformat'], $post['edittime']);
            $post['editnote'] = $lang->sprintf($lang->postbit_edited, $post['editdate'], $post['edittime']);
            $post['editedprofilelink'] = build_profile_link($post['editusername'], $post['edituid']);
            eval("\$post['editedmsg'] = \"" . $templates->get("postbit_editedby") . "\";");
        }
        if ((is_moderator($fid, "caneditposts") || $forumpermissions['caneditposts'] == 1 && $mybb->user['uid'] == $post['uid']) && $mybb->user['uid'] != 0) {
            eval("\$post['button_edit'] = \"" . $templates->get("postbit_edit") . "\";");
        }
        // Quick Delete button
        $can_delete = 0;
        if ($mybb->user['uid'] == $post['uid']) {
            if ($forumpermissions['candeletethreads'] == 1 && $postcounter == 1) {
                $can_delete = 1;
            } else {
                if ($forumpermissions['candeleteposts'] == 1 && $postcounter != 1) {
                    $can_delete = 1;
                }
            }
        }
        if ((is_moderator($fid, "candeleteposts") || $can_delete == 1) && $mybb->user['uid'] != 0) {
            eval("\$post['button_quickdelete'] = \"" . $templates->get("postbit_quickdelete") . "\";");
        }
        // Inline moderation stuff
        if ($ismod) {
            if (isset($mybb->cookies[$inlinecookie]) && my_strpos($mybb->cookies[$inlinecookie], "|" . $post['pid'] . "|")) {
                $inlinecheck = "checked=\"checked\"";
                $inlinecount++;
            } else {
                $inlinecheck = "";
            }
            eval("\$post['inlinecheck'] = \"" . $templates->get("postbit_inlinecheck") . "\";");
            if ($post['visible'] == 0) {
                $invisiblepost = 1;
            }
        } else {
            $post['inlinecheck'] = "";
        }
        $post['postlink'] = get_post_link($post['pid'], $post['tid']);
        eval("\$post['posturl'] = \"" . $templates->get("postbit_posturl") . "\";");
        global $forum, $thread;
        if ($forum['open'] != 0 && ($thread['closed'] != 1 || is_moderator($forum['fid']))) {
            eval("\$post['button_quote'] = \"" . $templates->get("postbit_quote") . "\";");
        }
        if ($forumpermissions['canpostreplys'] != 0 && ($thread['closed'] != 1 || is_moderator($fid)) && $mybb->settings['multiquote'] != 0 && $forum['open'] != 0 && !$post_type) {
            eval("\$post['button_multiquote'] = \"" . $templates->get("postbit_multiquote") . "\";");
        }
        if ($mybb->user['uid'] != "0") {
            eval("\$post['button_report'] = \"" . $templates->get("postbit_report") . "\";");
        }
        if ($mybb->settings['logip'] != "no") {
            if ($mybb->settings['logip'] == "show") {
                eval("\$post['iplogged'] = \"" . $templates->get("postbit_iplogged_show") . "\";");
            } else {
                if ($mybb->settings['logip'] == "hide" && is_moderator($fid, "canviewips")) {
                    eval("\$post['iplogged'] = \"" . $templates->get("postbit_iplogged_hiden") . "\";");
                } else {
                    $post['iplogged'] = "";
                }
            }
        } else {
            $post['iplogged'] = "";
        }
    } elseif ($post_type == 3) {
        if ($mybb->usergroup['issupermod'] == 1 || is_moderator($fid)) {
            eval("\$post['button_edit'] = \"" . $templates->get("announcement_edit") . "\";");
            eval("\$post['button_quickdelete'] = \"" . $templates->get("announcement_quickdelete") . "\";");
        }
    }
    if ($post['smilieoff'] == 1) {
        $parser_options['allow_smilies'] = 0;
    }
    // If we have incoming search terms to highlight - get it done.
    if (!empty($mybb->input['highlight'])) {
        $parser_options['highlight'] = $mybb->input['highlight'];
        $post['subject'] = $parser->highlight_message($post['subject'], $parser_options['highlight']);
    }
    $post['message'] = $parser->parse_message($post['message'], $parser_options);
    get_post_attachments($id, $post);
    if ($post['includesig'] != 0 && $post['username'] && $post['signature'] != "" && ($mybb->user['uid'] == 0 || $mybb->user['showsigs'] != 0) && ($post['suspendsignature'] == 0 || $post['suspendsignature'] == 1 && $post['suspendsigtime'] != 0 && $post['suspendsigtime'] < TIME_NOW) && $usergroup['canusesig'] == 1 && ($usergroup['canusesigxposts'] == 0 || $usergroup['canusesigxposts'] > 0 && $postnum > $usergroup['canusesigxposts'])) {
        $sig_parser = array("allow_html" => $mybb->settings['sightml'], "allow_mycode" => $mybb->settings['sigmycode'], "allow_smilies" => $mybb->settings['sigsmilies'], "allow_imgcode" => $mybb->settings['sigimgcode'], "me_username" => $post['username'], "filter_badwords" => 1);
        if ($usergroup['signofollow']) {
            $sig_parser['nofollow_on'] = 1;
        }
        $post['signature'] = $parser->parse_message($post['signature'], $sig_parser);
        eval("\$post['signature'] = \"" . $templates->get("postbit_signature") . "\";");
    } else {
        $post['signature'] = "";
    }
    $icon_cache = $cache->read("posticons");
    if ($post['icon'] > 0 && $icon_cache[$post['icon']]) {
        $icon = $icon_cache[$post['icon']];
        $icon['path'] = htmlspecialchars_uni($icon['path']);
        $icon['name'] = htmlspecialchars_uni($icon['name']);
        $post['icon'] = "<img src=\"{$icon['path']}\" alt=\"{$icon['name']}\" style=\"vertical-align: middle;\" />&nbsp;";
    } else {
        $post['icon'] = "";
    }
    $post_visibility = '';
    switch ($post_type) {
        case 1:
            // Message preview
            $post = $plugins->run_hooks("postbit_prev", $post);
            break;
        case 2:
            // Private message
            $post = $plugins->run_hooks("postbit_pm", $post);
            break;
        case 3:
            // Announcement
            $post = $plugins->run_hooks("postbit_announcement", $post);
            break;
        default:
            // Regular post
            $post = $plugins->run_hooks("postbit", $post);
            // Is this author on the ignore list of the current user? Hide this post
            $ignore_bit = '';
            if (is_array($ignored_users) && $post['uid'] != 0 && isset($ignored_users[$post['uid']]) && $ignored_users[$post['uid']] == 1) {
                $ignored_message = $lang->sprintf($lang->postbit_currently_ignoring_user, $post['username']);
                eval("\$ignore_bit = \"" . $templates->get("postbit_ignored") . "\";");
                $post_visibility = "display: none;";
            }
            break;
    }
    if ($mybb->settings['postlayout'] == "classic") {
        eval("\$postbit = \"" . $templates->get("postbit_classic") . "\";");
    } else {
        eval("\$postbit = \"" . $templates->get("postbit") . "\";");
    }
    $GLOBALS['post'] = "";
    return $postbit;
}
コード例 #15
0
ファイル: users.php プロジェクト: GeorgeLVP/mybb
        $table->construct_cell($ip['ipaddress']);
        $table->construct_cell($controls, array('class' => "align_center"));
        $table->construct_row();
    }
    $table->output($lang->ip_address_for . " {$user['username']}");
    $page->output_footer();
}
if ($mybb->input['action'] == "merge") {
    $plugins->run_hooks("admin_user_users_merge");
    if ($mybb->request_method == "post") {
        $query = $db->simple_select("users", "*", "LOWER(username)='" . $db->escape_string(my_strtolower($mybb->input['source_username'])) . "'");
        $source_user = $db->fetch_array($query);
        if (!$source_user['uid']) {
            $errors[] = $lang->error_invalid_user_source;
        }
        $query = $db->simple_select("users", "*", "LOWER(username)='" . $db->escape_string(my_strtolower($mybb->input['destination_username'])) . "'");
        $destination_user = $db->fetch_array($query);
        if (!$destination_user['uid']) {
            $errors[] = $lang->error_invalid_user_destination;
        }
        // If we're not a super admin and we're merging a source super admin or a destination super admin then dissallow this action
        if (!is_super_admin($mybb->user['uid']) && (is_super_admin($source_user['uid']) || is_super_admin($destination_user['uid']))) {
            flash_message($lang->error_no_perms_super_admin, 'error');
            admin_redirect("index.php?module=user-users");
        }
        if ($source_user['uid'] == $destination_user['uid']) {
            $errors[] = $lang->error_cannot_merge_same_account;
        }
        if (empty($errors)) {
            // Begin to merge the accounts
            $uid_update = array("uid" => $destination_user['uid']);
コード例 #16
0
ファイル: online.php プロジェクト: benn0034/SHIELDsite2.old
     }
 } else {
     $start = 0;
     $page = 1;
 }
 // Assemble page URL
 $multipage = multipage($online_count, $perpage, $page, "online.php" . $refresh_string);
 // Query for active sessions
 $query = $db->query("\n\t\tSELECT DISTINCT s.sid, s.ip, s.uid, s.time, s.location, u.username, s.nopermission, u.invisible, u.usergroup, u.displaygroup\n\t\tFROM " . TABLE_PREFIX . "sessions s\n\t\tLEFT JOIN " . TABLE_PREFIX . "users u ON (s.uid=u.uid)\n\t\tWHERE s.time>'{$timesearch}'\n\t\tORDER BY {$sql}\n\t\tLIMIT {$start}, {$perpage}\n\t");
 // Fetch spiders
 $spiders = $cache->read("spiders");
 while ($user = $db->fetch_array($query)) {
     $plugins->run_hooks("online_user");
     // Fetch the WOL activity
     $user['activity'] = fetch_wol_activity($user['location'], $user['nopermission']);
     $botkey = my_strtolower(str_replace("bot=", '', $user['sid']));
     // Have a registered user
     if ($user['uid'] > 0) {
         if ($users[$user['uid']]['time'] < $user['time'] || !$users[$user['uid']]) {
             $users[$user['uid']] = $user;
         }
     } else {
         if (my_strpos($user['sid'], "bot=") !== false && $spiders[$botkey]) {
             $user['bot'] = $spiders[$botkey]['name'];
             $user['usergroup'] = $spiders[$botkey]['usergroup'];
             $guests[] = $user;
         } else {
             $guests[] = $user;
         }
     }
 }
コード例 #17
0
ファイル: banning.php プロジェクト: Nidrax/ppm-1.6
            $friendly_time = my_date("D, jS M Y @ g:ia", ban_date2timestamp($time));
            $period = "{$period} ({$friendly_time})";
        }
        $length_list[$time] = $period;
    }
    $form_container->output_row($lang->ban_time, "", $form->generate_select_box('bantime', $length_list, $mybb->input['bantime'], array('id' => 'bantime')), 'bantime');
    $form_container->end();
    $buttons[] = $form->generate_submit_button($lang->update_ban);
    $form->output_submit_wrapper($buttons);
    $form->end();
    $page->output_footer();
}
if (!$mybb->input['action']) {
    $plugins->run_hooks("admin_user_banning_start");
    if ($mybb->request_method == "post") {
        $query = $db->simple_select("users", "uid, usergroup, additionalgroups, displaygroup, username", "LOWER(username)='" . $db->escape_string(my_strtolower($mybb->input['username'])) . "'", array('limit' => 1));
        $user = $db->fetch_array($query);
        if (!$user['uid']) {
            $errors[] = $lang->error_invalid_username;
        } else {
            if (is_super_admin($user['uid']) && !is_super_admin($mybb->user['uid'])) {
                $errors[] = $lang->error_no_perm_to_ban;
            } else {
                $query = $db->simple_select("banned", "uid", "uid='{$user['uid']}'");
                if ($db->fetch_field($query, "uid")) {
                    $errors[] = $lang->error_already_banned;
                }
            }
        }
        if ($user['uid'] == $mybb->user['uid']) {
            $errors[] = $lang->error_ban_self;
コード例 #18
0
ファイル: class_datacache.php プロジェクト: GeorgeLVP/mybb
 /**
  * Update the attachment type cache.
  *
  */
 function update_attachtypes()
 {
     global $db;
     $types = array();
     $query = $db->simple_select("attachtypes", "*");
     while ($type = $db->fetch_array($query)) {
         $type['extension'] = my_strtolower($type['extension']);
         $types[$type['extension']] = $type;
     }
     $this->update("attachtypes", $types);
 }
コード例 #19
0
ファイル: add_modif_conteneur.php プロジェクト: rhertzog/lcs
        echo "<tr>\n";
        echo "<td valign='top'>\n";
        echo "<input type='checkbox' name='display_bulletin' id='display_bulletin'";
        if ($display_bulletin == 1) {
            echo " checked";
        }
        echo " />\n";
        echo "</td>\n";
        echo "<td>\n";
        echo "<label for='display_bulletin' style='cursor: pointer;'>";
        echo "Faire apparaître la moyenne sur le bulletin scolaire.";
        echo "<br /><i>Si la case ci-contre est cochée, la moyenne de ce";
        if (getSettingValue("gepi_denom_boite_genre") == 'f') {
            echo "tte";
        }
        echo " " . my_strtolower(getSettingValue("gepi_denom_boite")) . " apparaît sur le bulletin scolaire, en plus de la moyenne générale, à titre d'information.</i>";
        echo "</label>";
        echo "</td>\n";
        echo "</tr>\n";
        echo "</table>\n";
    } else {
        echo "<input type='hidden' name='display_bulletin' value='yes' />\n";
    }
}
if ($new_conteneur == 'yes') {
    echo "<input type=hidden name=new_conteneur value='yes' />\n";
}
if ($new_conteneur != 'no') {
    echo "<input type=hidden name=id_racine value='{$id_racine}' />\n";
}
echo "<input type=hidden name=id_conteneur value='{$id_conteneur}' />\n";
コード例 #20
0
 /**
  * Execute Normal and Inline Thread Moderation
  *
  * @param array Moderation information
  * @param mixed Thread IDs
  * @return boolean true
  */
 function execute_thread_moderation($thread_options, $tids)
 {
     global $db, $mybb;
     $tid = intval($tids[0]);
     // Take the first thread to get thread data from
     $query = $db->simple_select("threads", 'fid', "tid='{$tid}'");
     $thread = $db->fetch_array($query);
     // If deleting threads, only do that
     if ($thread_options['deletethread'] == 1) {
         foreach ($tids as $tid) {
             $this->delete_thread($tid);
         }
     } else {
         if ($thread_options['mergethreads'] == 1 && count($tids) > 1) {
             $tid_list = implode(',', $tids);
             $options = array('order_by' => 'dateline', 'order_dir' => 'DESC');
             $query = $db->simple_select("threads", 'tid, subject', "tid IN ({$tid_list})", $options);
             // Select threads from newest to oldest
             $last_tid = 0;
             while ($tid = $db->fetch_array($query)) {
                 if ($last_tid != 0) {
                     $this->merge_threads($last_tid, $tid['tid'], $tid['subject']);
                     // And keep merging them until we get down to one thread.
                 }
                 $last_tid = $tid['tid'];
             }
         }
         if ($thread_options['deletepoll'] == 1) {
             foreach ($tids as $tid) {
                 $this->delete_poll($tid);
             }
         }
         if ($thread_options['removeredirects'] == 1) {
             foreach ($tids as $tid) {
                 $this->remove_redirects($tid);
             }
         }
         if ($thread_options['approvethread'] == 'approve') {
             $this->approve_threads($tids, $thread['fid']);
         } elseif ($thread_options['approvethread'] == 'unapprove') {
             $this->unapprove_threads($tids, $thread['fid']);
         } elseif ($thread_options['approvethread'] == 'toggle') {
             $this->toggle_thread_visibility($tids, $thread['fid']);
         }
         if ($thread_options['openthread'] == 'open') {
             $this->open_threads($tids);
         } elseif ($thread_options['openthread'] == 'close') {
             $this->close_threads($tids);
         } elseif ($thread_options['openthread'] == 'toggle') {
             $this->toggle_thread_status($tids);
         }
         if ($thread_options['threadprefix'] != '-1') {
             $this->apply_thread_prefix($tids, $thread_options['threadprefix']);
             // Update thread prefix
         }
         if (my_strtolower(trim($thread_options['newsubject'])) != '{subject}') {
             $this->change_thread_subject($tids, $thread_options['newsubject']);
         }
         if (!empty($thread_options['addreply'])) {
             $tid_list = implode(',', $tids);
             $query = $db->simple_select("threads", 'fid, subject, tid, firstpost, closed', "tid IN ({$tid_list}) AND closed NOT LIKE 'moved|%'");
             require_once MYBB_ROOT . "inc/datahandlers/post.php";
             // Loop threads adding a reply to each one
             while ($thread = $db->fetch_array($query)) {
                 $posthandler = new PostDataHandler("insert");
                 if (empty($thread_options['replysubject'])) {
                     $new_subject = 'RE: ' . $thread['subject'];
                 } else {
                     $new_subject = str_ireplace('{username}', $mybb->user['username'], $thread_options['replysubject']);
                     $new_subject = str_ireplace('{subject}', $thread['subject'], $new_subject);
                 }
                 // Set the post data that came from the input to the $post array.
                 $post = array("tid" => $thread['tid'], "replyto" => $thread['firstpost'], "fid" => $thread['fid'], "subject" => $new_subject, "uid" => $mybb->user['uid'], "username" => $mybb->user['username'], "message" => $thread_options['addreply'], "ipaddress" => $db->escape_string(get_ip()));
                 // Set up the post options from the input.
                 $post['options'] = array("signature" => 1, "emailnotify" => 0, "disablesmilies" => 0);
                 if ($thread['closed'] == 1) {
                     // Keep this thread closed
                     $post['modoptions']['closethread'] = 1;
                 }
                 $posthandler->set_data($post);
                 if ($posthandler->validate_post($post)) {
                     $posthandler->insert_post($post);
                 }
             }
         }
         if ($thread_options['movethread'] > 0 && $thread_options['movethread'] != $thread['fid']) {
             if ($thread_options['movethreadredirect'] == 1) {
                 $time = TIME_NOW + $thread_options['movethreadredirectexpire'] * 86400;
                 foreach ($tids as $tid) {
                     $this->move_thread($tid, $thread_options['movethread'], 'redirect', $time);
                 }
             } else {
                 $this->move_threads($tids, $thread_options['movethread']);
             }
         }
         if ($thread_options['copythread'] > 0 || $thread_options['copythread'] == -2) {
             if ($thread_options['copythread'] == -2) {
                 $thread_options['copythread'] = $thread['fid'];
             }
             foreach ($tids as $tid) {
                 $new_tid = $this->move_thread($tid, $thread_options['copythread'], 'copy');
             }
         }
     }
     return true;
 }
コード例 #21
0
ファイル: user.php プロジェクト: olada/mybbintegrator
 /**
  * Verifies if a website is valid or not.
  *
  * @return boolean True when valid, false when invalid.
  */
 function verify_website()
 {
     $website =& $this->data['website'];
     if (empty($website) || my_strtolower($website) == 'http://' || my_strtolower($website) == 'https://') {
         $website = '';
         return true;
     }
     // Does the website start with http(s)://?
     if (my_strtolower(substr($website, 0, 4)) != "http") {
         // Website does not start with http://, let's see if the user forgot.
         $website = "http://" . $website;
     }
     if (!filter_var($website, FILTER_VALIDATE_URL)) {
         $this->set_error('invalid_website');
         return false;
     }
     return true;
 }
コード例 #22
0
ファイル: changement_d_annee.php プロジェクト: rhertzog/lcs
$msg_svg = "Il est recommandé de faire une copie de sauvegarde sur un périphérique externe (à stocker au coffre par exemple)";
$lien_svg = "<a href='#svg_ext' " . insert_confirm_abandon() . "><img src='../images/icons/ico_ampoule.png' width='15' height='25' title='{$msg_svg}' alt='{$msg_svg}' /></a>";
echo "<p>Les points sont les suivants&nbsp;:</p>\n";
echo "<p>La partie archivage de fin d'année&nbsp;:</p>\n";
echo "<ol>\n";
echo "<li><p><a href='accueil_sauve.php?chgt_annee=y'>Sauvegarder la base</a> {$lien_svg}</p></li>\n";
if (my_strtolower(mb_substr(getSettingValue('active_cahiers_texte'), 0, 1)) == 'y') {
    echo "<li><p>Eventuellement, faire un <a href='../cahier_texte_2/export_cdt.php?chgt_annee=y'>export des cahiers de textes</a><br />et une <a href='accueil_sauve.php?chgt_annee=y#zip'>sauvegarde des documents du Cahier de textes</a> {$lien_svg}</p></li>\n";
    echo "<li><p><a href='../cahier_texte_2/archivage_cdt.php?chgt_annee=y'>Archiver les cahiers de textes</a> pour permettre aux professeurs une consultation de leurs CDT passés.</p></li>\n";
}
if (getSettingValue('active_module_absence') == '2') {
    echo "<li><p><a href='../mod_abs2/extraction_saisies.php?date_absence_eleve_debut=" . (date('Y') - 1) . "-08-01&date_absence_eleve_fin=" . date('Y') . "-08-01&type_extrait=1&retour=../gestion/changement_d_annee.php'>Effectuer une extraction CSV des absences</a>,\n";
    echo " puis <a onclick=\"return(confirm('Voulez vous vider les tables d\\'absences ?'));\" href='../utilitaires/clean_tables.php?action=clean_absences&amp;date_limite=31/07/" . date('Y') . "&amp;chgt_annee=y" . add_token_in_url() . "'/>purger les tables absences pour les absences antérieures au 31/07/" . date('Y') . "</a></p></li>";
}
echo "<li><p>Sauvegarder l'arborescence Gepi (<em>par ftp, sftp,...</em>) {$lien_svg}</p></li>\n";
if (my_strtolower(mb_substr(getSettingValue('active_annees_anterieures'), 0, 1)) == 'y') {
    echo "<li><p>Conserver les données de l'année passée via le <a href='../mod_annees_anterieures/conservation_annee_anterieure.php?chgt_annee=y'>module Années antérieures</a>.</p></li>\n";
    echo "<li><p>Éventuellement, générer, pour chaque élève, un bulletin PDF des N périodes via le <a href='../mod_annees_anterieures/archivage_bull_pdf.php?chgt_annee=y'>module Années antérieures</a>.</p></li>\n";
} else {
    echo "<li><p>Conserver les données de l'année passée via le <strong>module Années antérieures</strong>.<br /><span style='color:red'>Le module est inactif</span>.<br />Vous devriez <a href='../mod_annees_anterieures/admin.php' target='_blank'>activer le module</a>, quitte à limiter la liste des statuts d'utilisateurs autorisés à accéder à ces informations via la page <a href='../gestion/droits_acces.php' target='_blank'>Droits d'accès</a>.</p></li>\n";
    echo "<li><p>Éventuellement, une fois le module activé (<em>et après rafraichissement de la page</em>) générer, pour chaque élève, un bulletin PDF des N périodes via le module Années antérieures.</p></li>\n";
}
if (file_exists("../mod_plugins/archivageAPB/index.php")) {
    echo "<li><a href='../mod_plugins/archivageAPB/index.php'>Archiver les données de l'année qui se termine pour le plugin APB</a>.</li>\n";
}
echo "</ol>\n";
echo "<p>La partie concernant la nouvelle année&nbsp;:</p>\n";
echo "<ol>\n";
echo "<li><p>Modifier l'année scolaire&nbsp; (<em>actuellement " . getSettingValue('gepiYear') . "</em>) : <input type='text' name='gepiYear' size='20' value='" . date('Y') . "/" . (date('Y') + 1) . "' onchange='changement()' /></li>\n";
echo "<li><p>Modifier les dates de début et de fin des cahiers de textes&nbsp;:<br />";
?>
コード例 #23
0
ファイル: eleve_eleve.php プロジェクト: rhertzog/lcs
		$v_naissance1=$tmp_tab_naissance[2]."/".$tmp_tab_naissance[1]."/".$tmp_tab_naissance[0];
		$v_sexe1=old_mysql_result($call_eleve1_info, "0", 'sexe');
		$v_eleve_nom_prenom1=$v_legend1;

		// On récupère des infos sur l'élève 2:
		$v_elenoet2=old_mysql_result($call_eleve2_info, "0", 'elenoet');
		$v_naissance2=old_mysql_result($call_eleve2_info, "0", 'naissance');
		unset($tmp_tab_naissance);
		$tmp_tab_naissance=explode("-",$v_naissance2);
		$v_naissance2=$tmp_tab_naissance[2]."/".$tmp_tab_naissance[1]."/".$tmp_tab_naissance[0];
		$v_sexe2=old_mysql_result($call_eleve2_info, "0", 'sexe');
		$v_eleve_nom_prenom2=$v_legend2;


		if ($periode != 'annee') {
			$temp = my_strtolower($nom_periode[$periode]);
		} else {
			$temp = 'Année complète';
		}
		$graph_title = $eleve1_nom." ".$eleve1_prenom." ".$classe." et ".$eleve2_nom." ".$eleve2_prenom." ".$classe2."  | ".$temp;
		echo "<p class='bold'>$eleve1_nom  $eleve1_prenom ($classe) et $eleve2_nom $eleve2_prenom ($classe2)   |  $temp</p>\n";
		echo "<table  border='1' cellspacing='2' cellpadding='5'>\n";
		echo "<tr><td width='100'><p>Matière</p></td><td width='100'><p>$eleve1_nom $eleve1_prenom</p></td><td width='100'><p>$eleve2_nom $eleve2_prenom</p></td><td width='100'><p>Différence</p></td></tr>\n";
		//$call_classe_infos = mysql_query("SELECT DISTINCT  m.* FROM matieres m,j_classes_matieres_professeurs j WHERE (m.matiere = j.id_matiere AND j.id_classe='$id_classe') ORDER BY j.priorite");
		$affiche_categories = sql_query1("SELECT display_mat_cat FROM classes WHERE id='".$id_classe."'");
		if ($affiche_categories == "y") {
			$affiche_categories = true;
		} else {
			$affiche_categories = false;
		}
コード例 #24
0
ファイル: disciplines.php プロジェクト: rhertzog/lcs
         }
     }
     echo "<p><a href='index.php#disciplines'>Revenir à la page précédente</a></p>\n";
 } else {
     if ($_POST['action'] == "upload_file") {
         check_token(false);
         //
         // Le fichier vient d'être envoyé et doit être traité
         // On va donc afficher le contenu du fichier tel qu'il va être enregistré dans Gepi
         // en proposant des champs de saisie pour modifier les données si on le souhaite
         //
         $csv_file = isset($_FILES["csv_file"]) ? $_FILES["csv_file"] : NULL;
         $ligne_entete = isset($_POST['ligne_entete']) ? $_POST['ligne_entete'] : 'no';
         // On vérifie le nom du fichier... Ce n'est pas fondamentalement indispensable, mais
         // autant forcer l'utilisateur à être rigoureux
         if (my_strtolower($csv_file['name']) == "g_disciplines.csv") {
             // Le nom est ok. On ouvre le fichier
             $fp = fopen($csv_file['tmp_name'], "r");
             if (!$fp) {
                 // Aie : on n'arrive pas à ouvrir le fichier... Pas bon.
                 echo "<p>Impossible d'ouvrir le fichier CSV !</p>\n";
                 echo "<p><a href='disciplines.php'>Cliquer ici </a> pour recommencer !</p>\n";
             } else {
                 // Fichier ouvert ! On attaque le traitement
                 // On va stocker toutes les infos dans un tableau
                 // Une ligne du CSV pour une entrée du tableau
                 $data_tab = array();
                 //=========================
                 if ($ligne_entete == "yes") {
                     // On lit une ligne pour passer la ligne d'entête:
                     $ligne = fgets($fp, 4096);
コード例 #25
0
ファイル: private.php プロジェクト: mainhan1804/xomvanphong
if (!$mybb->input['action']) {
    $plugins->run_hooks("private_inbox");
    if (!$mybb->input['fid'] || !array_key_exists($mybb->input['fid'], $foldernames)) {
        $mybb->input['fid'] = 1;
    }
    $folder = $mybb->input['fid'];
    $foldername = $foldernames[$folder];
    if ($folder == 2 || $folder == 3) {
        // Sent Items Folder
        $sender = $lang->sentto;
    } else {
        $sender = $lang->sender;
    }
    $mybb->input['order'] = htmlspecialchars_uni($mybb->get_input('order'));
    $ordersel = array('asc' => '', 'desc');
    switch (my_strtolower($mybb->input['order'])) {
        case "asc":
            $sortordernow = "asc";
            $ordersel['asc'] = "selected=\"selected\"";
            $oppsort = $lang->desc;
            $oppsortnext = "desc";
            break;
        default:
            $sortordernow = "desc";
            $ordersel['desc'] = "selected=\"selected\"";
            $oppsort = $lang->asc;
            $oppsortnext = "asc";
            break;
    }
    // Sort by which field?
    $sortby = htmlspecialchars_uni($mybb->get_input('sortby'));
コード例 #26
0
ファイル: bull_func.lib.php プロジェクト: alhousseyni/gepi
function releve_pdf_20090429($tab_rel, $i)
{
    global $annee_scolaire, $gepi_cpe_suivi, $RneEtablissement, $gepiSchoolName, $gepiSchoolAdress1, $gepiSchoolAdress2, $gepiSchoolZipCode, $gepiSchoolCity, $gepiSchoolPays, $gepiSchoolTel, $gepiSchoolFax, $gepiYear, $logo_etab, $un_seul_bull_par_famille, $X_cadre_eleve, $cadre_titre, $X_entete_etab, $caractere_utilse, $affiche_logo_etab, $entente_mel, $entente_tel, $entente_fax, $L_max_logo, $H_max_logo, $active_bloc_adresse_parent, $X_parent, $Y_parent, $annee_scolaire, $X_cadre_eleve, $titre_du_cadre, $largeur_cadre_matiere, $texte_observation, $cadre_titre, $largeur_cadre_note_global, $hauteur_dun_regroupement, $hauteur_du_titre, $largeur_cadre_note, $X_cadre_note, $hauteur_cachet, $tab_modele_pdf, $pdf;
    $id_classe = $tab_rel['id_classe'];
    $classe_id = $id_classe;
    // Préparation des lignes d'adresse
    // Initialisation:
    for ($loop = 0; $loop <= 1; $loop++) {
        $tab_adr_ligne1[$loop] = "";
        $tab_adr_ligne2[$loop] = "";
        $tab_adr_ligne3[$loop] = "";
        $tab_adr_ligne4[$loop] = "";
        $tab_adr_ligne5[$loop] = "";
        $tab_adr_ligne6[$loop] = "";
    }
    // ON N'UTILISE PAS LE CHAMP adr4 DE L'ADRESSE DANS resp_adr
    // IL FAUDRA VOIR COMMENT LE RECUPERER
    if (!isset($tab_rel['eleve'][$i]['resp'][0])) {
        //$tab_adr_ligne1[0]="<font color='red'><b>ADRESSE MANQUANTE</b></font>";
        $tab_adr_ligne1[0] = "ADRESSE MANQUANTE";
        $tab_adr_ligne2[0] = "";
        $tab_adr_ligne3[0] = "";
        $tab_adr_ligne4[0] = "";
        $tab_adr_ligne5[0] = "";
    } else {
        if (isset($tab_rel['eleve'][$i]['resp'][1])) {
            if (isset($tab_rel['eleve'][$i]['resp'][1]['adr1']) && isset($tab_rel['eleve'][$i]['resp'][1]['adr2']) && isset($tab_rel['eleve'][$i]['resp'][1]['adr3']) && isset($tab_rel['eleve'][$i]['resp'][1]['adr4']) && isset($tab_rel['eleve'][$i]['resp'][1]['cp']) && isset($tab_rel['eleve'][$i]['resp'][1]['commune'])) {
                // Le deuxième responsable existe et est renseigné
                if ($tab_rel['eleve'][$i]['resp'][0]['adr_id'] == $tab_rel['eleve'][$i]['resp'][1]['adr_id'] or $tab_rel['eleve'][$i]['resp'][0]['adr1'] == $tab_rel['eleve'][$i]['resp'][1]['adr1'] && $tab_rel['eleve'][$i]['resp'][0]['adr2'] == $tab_rel['eleve'][$i]['resp'][1]['adr2'] && $tab_rel['eleve'][$i]['resp'][0]['adr3'] == $tab_rel['eleve'][$i]['resp'][1]['adr3'] && $tab_rel['eleve'][$i]['resp'][0]['adr4'] == $tab_rel['eleve'][$i]['resp'][1]['adr4'] && $tab_rel['eleve'][$i]['resp'][0]['cp'] == $tab_rel['eleve'][$i]['resp'][1]['cp'] && $tab_rel['eleve'][$i]['resp'][0]['commune'] == $tab_rel['eleve'][$i]['resp'][1]['commune']) {
                    // Les adresses sont identiques
                    $nb_bulletins = 1;
                    if ($tab_rel['eleve'][$i]['resp'][0]['nom'] != $tab_rel['eleve'][$i]['resp'][1]['nom'] && $tab_rel['eleve'][$i]['resp'][1]['nom'] != "") {
                        // Les noms des responsables sont différents
                        $tab_adr_ligne1[0] = $tab_rel['eleve'][$i]['resp'][0]['civilite'] . " " . $tab_rel['eleve'][$i]['resp'][0]['nom'] . " " . $tab_rel['eleve'][$i]['resp'][0]['prenom'] . " et " . $tab_rel['eleve'][$i]['resp'][1]['civilite'] . " " . $tab_rel['eleve'][$i]['resp'][1]['nom'] . " " . $tab_rel['eleve'][$i]['resp'][1]['prenom'];
                        /*
                        $tab_adr_ligne1[0]=$tab_rel['eleve'][$i]['resp'][0]['civilite']." ".$tab_rel['eleve'][$i]['resp'][0]['nom']." ".$tab_rel['eleve'][$i]['resp'][0]['prenom'];
                        //$tab_adr_ligne1[0].=" et ";
                        $tab_adr_ligne1[0].="<br />\n";
                        $tab_adr_ligne1[0].="et ";
                        $tab_adr_ligne1[0].=$tab_rel['eleve'][$i]['resp'][1]['civilite']." ".$tab_rel['eleve'][$i]['resp'][1]['nom']." ".$tab_rel['eleve'][$i]['resp'][1]['prenom'];
                        */
                    } else {
                        if ($tab_rel['eleve'][$i]['resp'][0]['civilite'] != "" && $tab_rel['eleve'][$i]['resp'][1]['civilite'] != "") {
                            $tab_adr_ligne1[0] = $tab_rel['eleve'][$i]['resp'][0]['civilite'] . " et " . $tab_rel['eleve'][$i]['resp'][1]['civilite'] . " " . $tab_rel['eleve'][$i]['resp'][0]['nom'] . " " . $tab_rel['eleve'][$i]['resp'][0]['prenom'];
                        } else {
                            $tab_adr_ligne1[0] = "M. et Mme " . $tab_rel['eleve'][$i]['resp'][0]['nom'] . " " . $tab_rel['eleve'][$i]['resp'][0]['prenom'];
                        }
                    }
                    $tab_adr_ligne2[0] = $tab_rel['eleve'][$i]['resp'][0]['adr1'];
                    if ($tab_rel['eleve'][$i]['resp'][0]['adr2'] != "") {
                        $tab_adr_ligne3[0] = $tab_rel['eleve'][$i]['resp'][0]['adr2'];
                    }
                    if ($tab_rel['eleve'][$i]['resp'][0]['adr3'] != "") {
                        $tab_adr_ligne4[0] = $tab_rel['eleve'][$i]['resp'][0]['adr3'];
                    }
                    //if($tab_rel['eleve'][$i]['resp'][0]['adr4']!=""){
                    //	$tab_adr_ligne2[0]=$tab_rel['eleve'][$i]['resp'][0]['adr4'];
                    //}
                    $tab_adr_ligne5[0] = $tab_rel['eleve'][$i]['resp'][0]['cp'] . " " . $tab_rel['eleve'][$i]['resp'][0]['commune'];
                    if ($tab_rel['eleve'][$i]['resp'][0]['pays'] != "" && my_strtolower($tab_rel['eleve'][$i]['resp'][0]['pays']) != my_strtolower($gepiSchoolPays)) {
                        $tab_adr_ligne6[0] = $tab_rel['eleve'][$i]['resp'][0]['pays'];
                    }
                } else {
                    // Les adresses sont différentes
                    //if ($un_seul_bull_par_famille!="oui") {
                    // On teste en plus si la deuxième adresse est valide
                    if ($un_seul_bull_par_famille != "oui" && $tab_rel['eleve'][$i]['resp'][1]['adr1'] != "" && $tab_rel['eleve'][$i]['resp'][1]['commune'] != "") {
                        $nb_bulletins = 2;
                    } else {
                        $nb_bulletins = 1;
                    }
                    for ($cpt = 0; $cpt < $nb_bulletins; $cpt++) {
                        if ($tab_rel['eleve'][$i]['resp'][$cpt]['civilite'] != "") {
                            $tab_adr_ligne1[$cpt] = $tab_rel['eleve'][$i]['resp'][$cpt]['civilite'] . " " . $tab_rel['eleve'][$i]['resp'][$cpt]['nom'] . " " . $tab_rel['eleve'][$i]['resp'][$cpt]['prenom'];
                        } else {
                            $tab_adr_ligne1[$cpt] = $tab_rel['eleve'][$i]['resp'][$cpt]['nom'] . " " . $tab_rel['eleve'][$i]['resp'][$cpt]['prenom'];
                        }
                        $tab_adr_ligne2[$cpt] = $tab_rel['eleve'][$i]['resp'][$cpt]['adr1'];
                        if ($tab_rel['eleve'][$i]['resp'][$cpt]['adr2'] != "") {
                            $tab_adr_ligne3[$cpt] = $tab_rel['eleve'][$i]['resp'][$cpt]['adr2'];
                        }
                        if ($tab_rel['eleve'][$i]['resp'][$cpt]['adr3'] != "") {
                            $tab_adr_ligne4[$cpt] = $tab_rel['eleve'][$i]['resp'][$cpt]['adr3'];
                        }
                        /*
                        if($tab_rel['eleve'][$i]['resp'][$cpt]['adr4']!=""){
                        	$tab_adr_ligne2[$cpt].="<br />\n".$tab_rel['eleve'][$i]['resp'][$cpt]['adr4'];
                        }
                        */
                        $tab_adr_ligne5[$cpt] = $tab_rel['eleve'][$i]['resp'][$cpt]['cp'] . " " . $tab_rel['eleve'][$i]['resp'][$cpt]['commune'];
                        if ($tab_rel['eleve'][$i]['resp'][$cpt]['pays'] != "" && my_strtolower($tab_rel['eleve'][$i]['resp'][$cpt]['pays']) != my_strtolower($gepiSchoolPays)) {
                            $tab_adr_ligne6[$cpt] = $tab_rel['eleve'][$i]['resp'][$cpt]['pays'];
                        }
                    }
                }
            } else {
                // Il n'y a pas de deuxième adresse, mais il y aurait un deuxième responsable???
                // CA NE DEVRAIT PAS ARRIVER ETANT DONNé LA REQUETE EFFECTUEE QUI JOINT resp_pers ET resp_adr...
                if ($un_seul_bull_par_famille != "oui") {
                    $nb_bulletins = 2;
                } else {
                    $nb_bulletins = 1;
                }
                for ($cpt = 0; $cpt < $nb_bulletins; $cpt++) {
                    if ($tab_rel['eleve'][$i]['resp'][$cpt]['civilite'] != "") {
                        $tab_adr_ligne1[$cpt] = $tab_rel['eleve'][$i]['resp'][$cpt]['civilite'] . " " . $tab_rel['eleve'][$i]['resp'][$cpt]['nom'] . " " . $tab_rel['eleve'][$i]['resp'][$cpt]['prenom'];
                    } else {
                        $tab_adr_ligne1[$cpt] = $tab_rel['eleve'][$i]['resp'][$cpt]['nom'] . " " . $tab_rel['eleve'][$i]['resp'][$cpt]['prenom'];
                    }
                    $tab_adr_ligne2[$cpt] = $tab_rel['eleve'][$i]['resp'][$cpt]['adr1'];
                    if ($tab_rel['eleve'][$i]['resp'][$cpt]['adr2'] != "") {
                        $tab_adr_ligne3[$cpt] = $tab_rel['eleve'][$i]['resp'][$cpt]['adr2'];
                    }
                    if ($tab_rel['eleve'][$i]['resp'][$cpt]['adr3'] != "") {
                        $tab_adr_ligne4[$cpt] = $tab_rel['eleve'][$i]['resp'][$cpt]['adr3'];
                    }
                    /*
                    if($tab_rel['eleve'][$i]['resp'][$cpt]['adr4']!=""){
                    	$tab_adr_ligne2[$cpt].="<br />\n".$tab_rel['eleve'][$i]['resp'][$cpt]['adr4'];
                    }
                    */
                    $tab_adr_ligne5[$cpt] = $tab_rel['eleve'][$i]['resp'][$cpt]['cp'] . " " . $tab_rel['eleve'][$i]['resp'][$cpt]['commune'];
                    if ($tab_rel['eleve'][$i]['resp'][$cpt]['pays'] != "" && my_strtolower($tab_rel['eleve'][$i]['resp'][$cpt]['pays']) != my_strtolower($gepiSchoolPays)) {
                        $tab_adr_ligne6[$cpt] = $tab_rel['eleve'][$i]['resp'][$cpt]['pays'];
                    }
                }
            }
        } else {
            // Il n'y a pas de deuxième responsable
            $nb_bulletins = 1;
            if ($tab_rel['eleve'][$i]['resp'][0]['civilite'] != "") {
                $tab_adr_ligne1[0] = $tab_rel['eleve'][$i]['resp'][0]['civilite'] . " " . $tab_rel['eleve'][$i]['resp'][0]['nom'] . " " . $tab_rel['eleve'][$i]['resp'][0]['prenom'];
            } else {
                $tab_adr_ligne1[0] = $tab_rel['eleve'][$i]['resp'][0]['nom'] . " " . $tab_rel['eleve'][$i]['resp'][0]['prenom'];
            }
            $tab_adr_ligne2[0] = $tab_rel['eleve'][$i]['resp'][0]['adr1'];
            if ($tab_rel['eleve'][$i]['resp'][0]['adr2'] != "") {
                $tab_adr_ligne3[0] = $tab_rel['eleve'][$i]['resp'][0]['adr2'];
            }
            if ($tab_rel['eleve'][$i]['resp'][0]['adr3'] != "") {
                $tab_adr_ligne4[0] = $tab_rel['eleve'][$i]['resp'][0]['adr3'];
            }
            /*
            if($tab_rel['eleve'][$i]['resp'][0]['adr4']!=""){
            	$tab_adr_ligne2[0].="<br />\n".$tab_rel['eleve'][$i]['resp'][0]['adr4'];
            }
            */
            $tab_adr_ligne5[0] = $tab_rel['eleve'][$i]['resp'][0]['cp'] . " " . $tab_rel['eleve'][$i]['resp'][0]['commune'];
            if ($tab_rel['eleve'][$i]['resp'][0]['pays'] != "" && my_strtolower($tab_rel['eleve'][$i]['resp'][0]['pays']) != my_strtolower($gepiSchoolPays)) {
                $tab_adr_ligne6[0] = $tab_rel['eleve'][$i]['resp'][0]['pays'];
            }
        }
    }
    //=========================================
    $pdf->AddPage("P");
    $pdf->SetFontSize(10);
    /*
    if($nb_releve_par_page === '1' and $active_bloc_adresse_parent != '1') { $hauteur_cadre_note_global = 250; }
    if($nb_releve_par_page === '1' and $active_bloc_adresse_parent === '1') { $hauteur_cadre_note_global = 205; }
    if($nb_releve_par_page === '2') { $hauteur_cadre_note_global = 102; }
    */
    // Pour un relevé en recto/verso avec le bulletin,
    // il ne faut qu'un relevé par page, mais si on devait utiliser cette fonction
    // pour remplacer un jour le dispositif relevé PDF, il faudrait revoir cela:
    $nb_releve_par_page = 1;
    //$active_bloc_adresse_parent=0;
    $active_bloc_adresse_parent = $tab_rel['rn_adr_resp'] == 'y' ? 1 : 0;
    //$hauteur_cadre_note_global = 250;
    if ($active_bloc_adresse_parent != 1) {
        $hauteur_cadre_note_global = 250;
    }
    if ($active_bloc_adresse_parent == 1) {
        $hauteur_cadre_note_global = 205;
    }
    // A FAIRE:
    // Pour la hauteur, prendre en compte la saisie d'une formule $tab_rel['rn_formule'] (non vide)
    // et le caractère vide ou non de getSettingValue("bull_formule_bas")
    //$affiche_bloc_observation=1;
    $affiche_bloc_observation = $tab_rel['rn_bloc_obs'] == 'y' ? 1 : 0;
    //$affiche_cachet_pp=1;
    $affiche_cachet_pp = $tab_rel['rn_sign_pp'] == 'y' ? 1 : 0;
    //$affiche_signature_parent=1;
    $affiche_signature_parent = $tab_rel['rn_sign_resp'] == 'y' ? 1 : 0;
    if ($affiche_cachet_pp == 1 || $affiche_signature_parent == 1) {
        $affiche_bloc_observation = 1;
    }
    $texte_observation = "Observations:";
    //$aff_classe_nom=1;
    $aff_classe_nom = $tab_rel['rn_aff_classe_nom'];
    // BIZARRE:
    $hauteur_cadre_matiere = 20;
    $classe_aff = "NOM_CLASSE";
    $passage_i = 1;
    // login de l'élève
    //$eleve_select=$login[$nb_eleves_i];
    //$eleve_select=$tab_rel['eleve'][$i]['login'];
    //if(isset($tab_rel['eleve'][$i]['login'])) {
    $eleve_select = $tab_rel['eleve'][$i]['login'];
    /*
    // différente Y pour les présentation sur 1 ou 2 par page avec ident parents
    if($nb_releve_par_page=='1' and $passage_i == '1' and $active_bloc_adresse_parent!='1') { $Y_cadre_note = '32'; $Y_cadre_eleve = '5'; $Y_entete_etab='5'; }
    if($nb_releve_par_page=='1' and $passage_i == '1' and $active_bloc_adresse_parent==='1') { $Y_cadre_note = '75'; $Y_cadre_eleve = '5'; $Y_entete_etab='5'; }
    if($nb_releve_par_page=='2' and $passage_i == '1') { $Y_cadre_note = '32'; $Y_cadre_eleve = '5'; $Y_entete_etab='5'; }
    if($nb_releve_par_page=='2' and $passage_i == '2') { $Y_cadre_note = $Y_cadre_note+145; $Y_cadre_eleve = $Y_cadre_eleve+145; $Y_entete_etab=$Y_entete_etab+145; }
    */
    /*
    $Y_cadre_note = '32';
    $Y_cadre_eleve = '5';
    $Y_entete_etab='5';
    */
    if ($active_bloc_adresse_parent != '1') {
        $Y_cadre_note = '32';
        $Y_cadre_eleve = '5';
        $Y_entete_etab = '5';
    } else {
        $Y_cadre_note = '75';
        $Y_cadre_eleve = '5';
        $Y_entete_etab = '5';
    }
    //BLOC IDENTITE ELEVE
    $pdf->SetXY($X_cadre_eleve, $Y_cadre_eleve);
    $pdf->SetFont('DejaVu', 'B', 14);
    $pdf->Cell(90, 7, my_strtoupper($tab_rel['eleve'][$i]['nom']) . " " . casse_mot($tab_rel['eleve'][$i]['prenom'], 'majf2'), 0, 2, '');
    $pdf->SetFont('DejaVu', '', 10);
    //$pdf->Cell(90,5,'Né le '.affiche_date_naissance($naissance[$nb_eleves_i]).', demi-pensionnaire',0,2,'');
    if ($tab_rel['eleve'][$i]['sexe'] == "M") {
        $e_au_feminin = "";
    } else {
        $e_au_feminin = "e";
    }
    //$pdf->Cell(90,5,'Né'.$e_au_feminin.' le '.affiche_date_naissance($tab_rel['eleve'][$i]['naissance']).', '.regime($tab_rel['eleve'][$i]['regime']),0,2,'');
    $pdf->Cell(90, 5, 'Né' . $e_au_feminin . ' le ' . $tab_rel['eleve'][$i]['naissance'] . ', ' . regime($tab_rel['eleve'][$i]['regime']), 0, 2, '');
    $pdf->Cell(90, 5, '', 0, 2, '');
    if ($aff_classe_nom == 1) {
        $classe_aff = $pdf->WriteHTML('Classe de ' . unhtmlentities($tab_rel['classe_nom_complet']));
    } elseif ($aff_classe_nom == 2) {
        $classe_aff = $pdf->WriteHTML('Classe de ' . unhtmlentities($tab_rel['classe']));
    } else {
        $classe_aff = $pdf->WriteHTML(' ' . unhtmlentities($tab_rel['classe_nom_complet']) . ' (' . unhtmlentities($tab_rel['classe']) . ')');
    }
    $pdf->Cell(90, 5, $classe_aff, 0, 2, '');
    $pdf->SetX($X_cadre_eleve);
    $pdf->SetFont('DejaVu', '', 10);
    $pdf->Cell(90, 5, 'Année scolaire ' . $annee_scolaire, 0, 2, '');
    // BLOC IDENTITE DE L'ETABLISSEMENT
    $logo = '../images/' . getSettingValue('logo_etab');
    $format_du_logo = str_replace('.', '', strstr(getSettingValue('logo_etab'), '.'));
    //if($affiche_logo_etab==='1' and file_exists($logo) and getSettingValue('logo_etab') != '' and ($format_du_logo==='jpg' or $format_du_logo==='png')) {
    //if($tab_modele_pdf["affiche_logo_etab"][$classe_id]==='1' and file_exists($logo) and getSettingValue('logo_etab') != '' and ($format_du_logo==='jpg' or $format_du_logo==='png')) {
    if ($tab_modele_pdf["affiche_logo_etab"][$classe_id] == 1 and file_exists($logo) and getSettingValue('logo_etab') != '' and ($format_du_logo == 'jpg' or $format_du_logo == 'png')) {
        $valeur = redimensionne_image($logo, $L_max_logo, $H_max_logo);
        //$X_logo et $Y_logo; placement du bloc identite de l'établissement
        $X_logo = $X_entete_etab;
        $Y_logo = $Y_entete_etab;
        $L_logo = $valeur[0];
        $H_logo = $valeur[1];
        $X_etab = $X_logo + $L_logo;
        $Y_etab = $Y_logo;
        //logo
        $tmp_dim_photo = getimagesize($logo);
        if (isset($tmp_dim_photo[2]) && $tmp_dim_photo[2] == 2) {
            $pdf->Image($logo, $X_logo, $Y_logo, $L_logo, $H_logo);
        }
    } else {
        $X_etab = $X_entete_etab;
        $Y_etab = $Y_entete_etab;
    }
    // BLOC ADRESSE ETABLISSEMENT
    $pdf->SetXY($X_etab, $Y_etab);
    $pdf->SetFont('DejaVu', '', 14);
    //$gepiSchoolName = getSettingValue('gepiSchoolName');
    $pdf->Cell(90, 7, $gepiSchoolName, 0, 2, '');
    $pdf->SetFont('DejaVu', '', 10);
    //$gepiSchoolAdress1 = getSettingValue('gepiSchoolAdress1');
    $pdf->Cell(90, 5, $gepiSchoolAdress1, 0, 2, '');
    //$gepiSchoolAdress2 = getSettingValue('gepiSchoolAdress2');
    $pdf->Cell(90, 5, $gepiSchoolAdress2, 0, 2, '');
    //$gepiSchoolZipCode = getSettingValue('gepiSchoolZipCode');
    //$gepiSchoolCity = getSettingValue('gepiSchoolCity');
    $pdf->Cell(90, 5, $gepiSchoolZipCode . " " . $gepiSchoolCity, 0, 2, '');
    //$gepiSchoolTel = getSettingValue('gepiSchoolTel');
    //$gepiSchoolFax = getSettingValue('gepiSchoolFax');
    if ($tab_modele_pdf["entente_tel"][$classe_id] === '1' and $tab_modele_pdf["entente_fax"][$classe_id] === '1') {
        $entete_communic = 'Tél: ' . $gepiSchoolTel . ' / Fax: ' . $gepiSchoolFax;
    }
    if ($tab_modele_pdf["entente_tel"][$classe_id] === '1' and empty($entete_communic)) {
        $entete_communic = 'Tél: ' . $gepiSchoolTel;
    }
    if ($tab_modele_pdf["entente_fax"][$classe_id] === '1' and empty($entete_communic)) {
        $entete_communic = 'Fax: ' . $gepiSchoolFax;
    }
    if (isset($entete_communic) and $entete_communic != '') {
        $pdf->Cell(90, 5, $entete_communic, 0, 2, '');
    }
    if ($tab_modele_pdf["entente_mel"][$classe_id] === '1') {
        $gepiSchoolEmail = getSettingValue('gepiSchoolEmail');
        $pdf->Cell(90, 5, $gepiSchoolEmail, 0, 2, '');
    }
    // BLOC ADRESSE DES PARENTS
    // Nom des variables à revoir
    //if($active_bloc_adresse_parent==='1' and $nb_releve_par_page==='1') {
    if ($active_bloc_adresse_parent == 1 and $nb_releve_par_page == 1) {
        //+++++++++++++++
        // A REVOIR
        $num_resp = 0;
        //+++++++++++++++
        //$ident_eleve_aff=$login[$nb_eleves_i];
        $pdf->SetXY($X_parent, $Y_parent);
        //$texte_1_responsable = $civilite_parents[$ident_eleve_aff][$responsable_place]." ".$nom_parents[$ident_eleve_aff][$responsable_place]." ".$prenom_parents[$ident_eleve_aff][$responsable_place];
        $texte_1_responsable = $tab_adr_ligne1[$num_resp];
        $hauteur_caractere = 12;
        $pdf->SetFont('DejaVu', 'B', $hauteur_caractere);
        $val = $pdf->GetStringWidth($texte_1_responsable);
        $taille_texte = 90;
        $grandeur_texte = 'test';
        while ($grandeur_texte != 'ok') {
            if ($taille_texte < $val) {
                $hauteur_caractere = $hauteur_caractere - 0.3;
                $pdf->SetFont('DejaVu', 'B', $hauteur_caractere);
                $val = $pdf->GetStringWidth($texte_1_responsable);
            } else {
                $grandeur_texte = 'ok';
            }
        }
        $pdf->Cell(90, 7, $texte_1_responsable, 0, 2, '');
        $pdf->SetFont('DejaVu', '', 10);
        //$texte_1_responsable = $adresse1_parents[$ident_eleve_aff][$responsable_place];
        $texte_1_responsable = $tab_adr_ligne2[$num_resp];
        $hauteur_caractere = 10;
        $pdf->SetFont('DejaVu', '', $hauteur_caractere);
        $val = $pdf->GetStringWidth($texte_1_responsable);
        $taille_texte = 90;
        $grandeur_texte = 'test';
        while ($grandeur_texte != 'ok') {
            if ($taille_texte < $val) {
                $hauteur_caractere = $hauteur_caractere - 0.3;
                $pdf->SetFont('DejaVu', '', $hauteur_caractere);
                $val = $pdf->GetStringWidth($texte_1_responsable);
            } else {
                $grandeur_texte = 'ok';
            }
        }
        $pdf->Cell(90, 5, $texte_1_responsable, 0, 2, '');
        //$texte_1_responsable = $adresse2_parents[$ident_eleve_aff][$responsable_place];
        $texte_1_responsable = $tab_adr_ligne3[$num_resp];
        $hauteur_caractere = 10;
        $pdf->SetFont('DejaVu', '', $hauteur_caractere);
        $val = $pdf->GetStringWidth($texte_1_responsable);
        $taille_texte = 90;
        $grandeur_texte = 'test';
        while ($grandeur_texte != 'ok') {
            if ($taille_texte < $val) {
                $hauteur_caractere = $hauteur_caractere - 0.3;
                $pdf->SetFont('DejaVu', '', $hauteur_caractere);
                $val = $pdf->GetStringWidth($texte_1_responsable);
            } else {
                $grandeur_texte = 'ok';
            }
        }
        $pdf->Cell(90, 5, $texte_1_responsable, 0, 2, '');
        $pdf->Cell(90, 5, '', 0, 2, '');
        //$texte_1_responsable = $cp_parents[$ident_eleve_aff][$responsable_place]." ".$ville_parents[$ident_eleve_aff][$responsable_place];
        $texte_1_responsable = $tab_adr_ligne5[$num_resp];
        $hauteur_caractere = 10;
        $pdf->SetFont('DejaVu', '', $hauteur_caractere);
        $val = $pdf->GetStringWidth($texte_1_responsable);
        $taille_texte = 90;
        $grandeur_texte = 'test';
        while ($grandeur_texte != 'ok') {
            if ($taille_texte < $val) {
                $hauteur_caractere = $hauteur_caractere - 0.3;
                $pdf->SetFont('DejaVu', '', $hauteur_caractere);
                $val = $pdf->GetStringWidth($texte_1_responsable);
            } else {
                $grandeur_texte = 'ok';
            }
        }
        $pdf->Cell(90, 5, $texte_1_responsable, 0, 2, '');
    }
    // BLOC NOTATION ET OBSERVATION
    //Titre du tableau
    $pdf->SetXY($X_cadre_note, $Y_cadre_note);
    $pdf->SetFont('DejaVu', 'B', 12);
    //if($cadre_titre==='1') { $var_encadrement_titre='LTR'; } else { $var_encadrement_titre=''; }
    if ($cadre_titre == 1) {
        $var_encadrement_titre = 'LTR';
    } else {
        $var_encadrement_titre = '';
    }
    //$pdf->Cell(0, $hauteur_du_titre, $titre_du_cadre.' '.date_frc($_SESSION['date_debut_aff']).' au '.date_frc($_SESSION['date_fin_aff']), $var_encadrement_titre,0,'C');
    // A REVOIR...
    //$pdf->Cell(0, $hauteur_du_titre, $titre_du_cadre.' Période '.$tab_rel['nom_periode'], $var_encadrement_titre,0,'C');
    $pdf->Cell(0, $hauteur_du_titre, $titre_du_cadre . $tab_rel['nom_periode'], $var_encadrement_titre, 0, 'C');
    $hauteur_utilise = $hauteur_du_titre;
    /*
    $nb_matiere=0;
    for($j=0;$j<count($tab_rel['eleve'][$i]['groupe']);$j++) {
    	if(isset($tab_bull['note'][$j][$i])) {
    		// Si l'élève suit l'option, sa note est affectée (éventuellement vide)
    		$nb_matiere++;
    	}
    }
    */
    $nb_matiere = count($tab_rel['eleve'][$i]['groupe']);
    //s'il y des notes alors on affiche le cadre avec les notes
    //if(isset($nb_matiere[$eleve_select]) and !empty($nb_matiere[$eleve_select])) {
    if ($nb_matiere > 0) {
        // Hauteur d'une ligne pour une matière
        /*
        if($active_entete_regroupement === '1') {
        	$hauteur_cadre_matiere=($hauteur_cadre_note_global-($nb_regroupement[$eleve_select]*$hauteur_dun_regroupement))/$nb_matiere[$eleve_select];
        }
        if($active_entete_regroupement != '1') {
        */
        $hauteur_cadre_matiere = $hauteur_cadre_note_global / $nb_matiere;
        //}
        // Tableau des matières et des notes de l'élève
        $cpt_i = '1';
        $nom_regroupement_passer = '';
        //while($cpt_i<=$nb_matiere[$eleve_select])
        //{
        for ($m = 0; $m < count($tab_rel['eleve'][$i]['groupe']); $m++) {
            // Si c'est une matière suivie par l'élève
            if (isset($tab_rel['eleve'][$i]['groupe'][$m])) {
                //$id_groupe_selectionne=$groupe_select[$eleve_select][$cpt_i];
                $id_groupe_selectionne = $tab_rel['eleve'][$i]['groupe'][$m]['id_groupe'];
                //MATIERE
                $pdf->SetXY($X_cadre_note, $Y_cadre_note + $hauteur_utilise);
                // on affiche les nom des regroupements
                /*
                if($nom_regroupement[$eleve_select][$cpt_i]!=$nom_regroupement_passer and $active_entete_regroupement === '1')
                {
                	$pdf->SetFont('DejaVu','',8);
                	$pdf->Cell($largeur_cadre_matiere, $hauteur_dun_regroupement, unhtmlentities($nom_regroupement[$eleve_select][$cpt_i]), 'LTB', 2, '');
                	$hauteur_utilise=$hauteur_utilise+$hauteur_dun_regroupement;
                	$nom_regroupement_passer=$nom_regroupement[$eleve_select][$cpt_i];
                	$pdf->SetXY($X_cadre_note,$Y_cadre_note+$hauteur_utilise);
                }
                */
                $pdf->SetFont('DejaVu', 'B', '9');
                $nom_matiere = $tab_rel['eleve'][$i]['groupe'][$m]['matiere_nom_complet'];
                $hauteur_caractere = 9;
                $pdf->SetFont('DejaVu', 'B', $hauteur_caractere);
                $val = $pdf->GetStringWidth($nom_matiere);
                $taille_texte = $largeur_cadre_matiere;
                $grandeur_texte = 'test';
                while ($grandeur_texte != 'ok') {
                    if ($taille_texte < $val) {
                        $hauteur_caractere = $hauteur_caractere - 0.3;
                        $pdf->SetFont('DejaVu', 'B', $hauteur_caractere);
                        $val = $pdf->GetStringWidth($nom_matiere);
                    } else {
                        $grandeur_texte = 'ok';
                    }
                }
                $pdf->Cell($largeur_cadre_matiere, $hauteur_cadre_matiere / 2, $nom_matiere, 'LRT', 2, '');
                //$pdf->Cell($largeur_cadre_matiere, $hauteur_cadre_matiere/2, $nom_matiere." ".count($tab_rel['eleve'][$i]['groupe'][$m]['prof_login']), 'LRT', 2, '');
                //$pdf->Cell($largeur_cadre_matiere, $hauteur_cadre_matiere/2, $nom_matiere." ".$tab_rel['eleve'][$i]['groupe'][$m]['prof_login'][0], 'LRT', 2, '');
                $nom_matiere = '';
                $nb_prof_matiere = count($tab_rel['eleve'][$i]['groupe'][$m]['prof_login']);
                $espace_matiere_prof = $hauteur_cadre_matiere / 2;
                $nb_pass_count = '0';
                $text_prof = '';
                //if ( $nb_releve_par_page === '2' ) {
                if ($nb_releve_par_page == 2) {
                    $nb_pass_count_2 = 0;
                    while (!empty($tab_rel['eleve'][$i]['groupe'][$m]['prof_login'][$nb_pass_count_2])) {
                        if ($nb_pass_count_2 === 0) {
                            $text_prof = affiche_utilisateur($tab_rel['eleve'][$i]['groupe'][$m]['prof_login'][$nb_pass_count_2], $id_classe);
                        }
                        if ($nb_pass_count_2 != 0) {
                            $text_prof = $text_prof . ', ' . affiche_utilisateur($tab_rel['eleve'][$i]['groupe'][$m]['prof_login'][$nb_pass_count_2], $id_classe);
                        }
                        $nb_pass_count_2 = $nb_pass_count_2 + 1;
                    }
                    //$nb_prof_matiere = 1;
                }
                if ($nb_prof_matiere != 1) {
                    $espace_matiere_prof = $espace_matiere_prof / $nb_prof_matiere;
                }
                while ($nb_prof_matiere > $nb_pass_count) {
                    // calcul de la hauteur du caractère du prof
                    //if ( $nb_releve_par_page === '1' ) {
                    if ($nb_releve_par_page == 1) {
                        $text_prof = affiche_utilisateur($tab_rel['eleve'][$i]['groupe'][$m]['prof_login'][$nb_pass_count], $id_classe);
                    }
                    if ($nb_prof_matiere <= 2) {
                        $hauteur_caractere_prof = 9;
                    } elseif ($nb_prof_matiere == 3) {
                        $hauteur_caractere_prof = 7;
                    } elseif ($nb_prof_matiere > 3) {
                        $hauteur_caractere_prof = 2;
                    }
                    $pdf->SetFont('DejaVu', '', $hauteur_caractere_prof);
                    $val = $pdf->GetStringWidth($text_prof);
                    $taille_texte = $largeur_cadre_matiere - 0.6;
                    $grandeur_texte = 'test';
                    while ($grandeur_texte != 'ok') {
                        if ($taille_texte < $val) {
                            $hauteur_caractere_prof = $hauteur_caractere_prof - 0.3;
                            $pdf->SetFont('DejaVu', '', $hauteur_caractere_prof);
                            $val = $pdf->GetStringWidth($text_prof);
                        } else {
                            $grandeur_texte = 'ok';
                        }
                    }
                    $grandeur_texte = 'test';
                    $pdf->SetX($X_cadre_note);
                    //$pdf->Cell($largeur_cadre_matiere, $espace_matiere_prof, 'prof '.$text_prof, 'LRB', 2, '');
                    if (empty($tab_rel['eleve'][$i]['groupe'][$m]['prof_login'][$nb_pass_count + 1]) or $nb_prof_matiere === 1) {
                        $pdf->Cell($largeur_cadre_matiere, $espace_matiere_prof, $text_prof, 'LRB', 2, '');
                    }
                    if (!empty($tab_rel['eleve'][$i]['groupe'][$m]['prof_login'][$nb_pass_count + 1]) and $nb_prof_matiere != 1) {
                        $pdf->Cell($largeur_cadre_matiere, $espace_matiere_prof, $text_prof, 'LR', 2, '');
                    }
                    $nb_pass_count = $nb_pass_count + 1;
                }
                //			if(isset($prof_groupe[$id_groupe_selectionne][0]) and $prof_groupe[$id_groupe_selectionne][0] != '') { $prof_1 = $prof_groupe[$id_groupe_selectionne][0]; } else { $prof_1 = ''; }
                //			if(isset($prof_groupe[$id_groupe_selectionne][1]) and $prof_groupe[$id_groupe_selectionne][1] != '') { $prof_2 = $prof_groupe[$id_groupe_selectionne][1]; } else { $prof_2 = ''; }
                //			if(isset($prof_groupe[$id_groupe_selectionne][2]) and $prof_groupe[$id_groupe_selectionne][2] != '') { $prof_3 = $prof_groupe[$id_groupe_selectionne][2]; } else { $prof_3 = ''; }
                /*			 $nom_prof = $prof_1;
                					$hauteur_caractere = 8;
                					$pdf->SetFont('DejaVu','I',$hauteur_caractere);
                					$val = $pdf->GetStringWidth($nom_prof);
                					$taille_texte = $largeur_cadre_matiere;
                					$grandeur_texte='test';
                					while($grandeur_texte!='ok') {
                					if($taille_texte<$val)
                					{
                						$hauteur_caractere = $hauteur_caractere-0.3;
                						$pdf->SetFont('DejaVu','I',$hauteur_caractere);
                						$val = $pdf->GetStringWidth($nom_prof);
                					} else { $grandeur_texte='ok'; }
                						}
                
                					$pdf->Cell($largeur_cadre_matiere, $hauteur_cadre_matiere/2, $nom_prof, 'LRB', 2, '');*/
                //$pdf->Cell($largeur_cadre_matiere, $hauteur_cadre_matiere/3, $prof_2, 'LR', 2, '');
                //$pdf->Cell($largeur_cadre_matiere, $hauteur_cadre_matiere/4, $prof_3, 'LRB', 2, '');
                $hauteur_utilise = $hauteur_utilise + $hauteur_cadre_matiere;
            }
            $cpt_i = $cpt_i + 1;
        }
    }
    $hauteur_utilise = $hauteur_du_titre;
    $cpt_i = '1';
    $nom_regroupement_passer = '';
    //while($cpt_i<=$nb_matiere[$eleve_select]) {
    for ($m = 0; $m < count($tab_rel['eleve'][$i]['groupe']); $m++) {
        //NOTES
        $largeur_utilise = $largeur_cadre_matiere;
        //=======================
        // AJOUT: chapel 20071019
        //if ( $affiche_bloc_observation === '1' ) {
        if ($affiche_bloc_observation == 1) {
            $largeur_cadre_note = $largeur_cadre_note;
        } else {
            $largeur_cadre_note = $largeur_cadre_note_global - $largeur_utilise;
        }
        //=======================
        $pdf->SetXY($X_cadre_note + $largeur_utilise, $Y_cadre_note + $hauteur_utilise);
        // on affiche les nom des regroupement
        /*
        if($nom_regroupement[$eleve_select][$cpt_i]!=$nom_regroupement_passer and $active_entete_regroupement === '1')
        {
        	$pdf->SetFont('DejaVu','',8);
        	$pdf->Cell($largeur_cadre_note, $hauteur_dun_regroupement, '', 'RTB', 2, '');
        	$hauteur_utilise=$hauteur_utilise+$hauteur_dun_regroupement;
        	$nom_regroupement_passer=$nom_regroupement[$eleve_select][$cpt_i];
        	$pdf->SetXY($X_cadre_note+$largeur_utilise,$Y_cadre_note+$hauteur_utilise);
        }
        */
        $chaine_notes = "";
        if (isset($tab_rel['eleve'][$i]['groupe'][$m]['devoir'])) {
            $kk = 0;
            for ($k = 0; $k < count($tab_rel['eleve'][$i]['groupe'][$m]['devoir']); $k++) {
                // A FAIRE: TENIR COMPTE DE TOUS LES PARAMETRES POUR VOIR CE QU'IL FAUT AFFICHER
                if ($kk > 0) {
                    $chaine_notes .= " - ";
                }
                if ($tab_rel['eleve'][$i]['groupe'][$m]['devoir'][$k]['statut'] != 'v') {
                    if ($tab_rel['eleve'][$i]['groupe'][$m]['devoir'][$k]['statut'] != '') {
                        $chaine_notes .= $tab_rel['eleve'][$i]['groupe'][$m]['devoir'][$k]['statut'];
                    } else {
                        $chaine_notes .= $tab_rel['eleve'][$i]['groupe'][$m]['devoir'][$k]['note'];
                    }
                    if ($tab_rel['rn_nomdev'] == 'y') {
                        $chaine_notes .= " (" . $tab_rel['eleve'][$i]['groupe'][$m]['devoir'][$k]['nom_court'] . ")";
                    }
                    if ($tab_rel['rn_datedev'] == 'y') {
                        $chaine_notes .= " (" . formate_date($tab_rel['eleve'][$i]['groupe'][$m]['devoir'][$k]['date']) . ")";
                    }
                    if ($tab_rel['rn_coefdev_si_diff'] == 'y') {
                        if ($tab_rel['eleve'][$i]['groupe'][$m]['differents_coef'] == 'y') {
                            $chaine_notes .= " (coef " . $tab_rel['eleve'][$i]['groupe'][$m]['devoir'][$k]['coef'] . ")";
                        }
                    } else {
                        if ($tab_rel['rn_toutcoefdev'] == 'y') {
                            $chaine_notes .= " (coef " . $tab_rel['eleve'][$i]['groupe'][$m]['devoir'][$k]['coef'] . ")";
                        }
                    }
                    $kk++;
                }
            }
        }
        // détermine la taille de la police de caractère
        // on peut allez jusqu'a 275mm de caractère dans trois cases de notes
        $hauteur_caractere_notes = 9;
        $pdf->SetFont('DejaVu', '', $hauteur_caractere_notes);
        $val = $pdf->GetStringWidth($chaine_notes);
        $taille_texte = $hauteur_cadre_matiere / 4 * $largeur_cadre_note;
        $grandeur_texte = 'test';
        while ($grandeur_texte != 'ok') {
            if ($taille_texte < $val) {
                $hauteur_caractere_notes = $hauteur_caractere_notes - 0.3;
                $pdf->SetFont('DejaVu', '', $hauteur_caractere_notes);
                $val = $pdf->GetStringWidth($chaine_notes);
            } else {
                $grandeur_texte = 'ok';
            }
        }
        $pdf->drawTextBox($chaine_notes, $largeur_cadre_note, $hauteur_cadre_matiere, 'J', 'M', 1);
        $hauteur_utilise = $hauteur_utilise + $hauteur_cadre_matiere;
        //$cpt_i=$cpt_i+1;
    }
    // BLOC OBSERVATION
    //=======================
    // MODIF: chapel 20071019
    //if($affiche_bloc_observation === '1')
    if ($affiche_bloc_observation == 1) {
        $largeur_utilise = $largeur_cadre_matiere + $largeur_cadre_note;
        $largeur_restant = $largeur_cadre_note_global - $largeur_utilise;
        $hauteur_utilise = $hauteur_du_titre;
        //if($affiche_cachet_pp==='1' or $affiche_signature_parent==='1')
        if ($affiche_cachet_pp == 1 or $affiche_signature_parent == 1) {
            $hauteur_cadre_observation = $hauteur_cadre_note_global - $hauteur_cachet;
        } else {
            $hauteur_cadre_observation = $hauteur_cadre_note_global;
        }
        $pdf->Rect($X_cadre_note + $largeur_utilise, $Y_cadre_note + $hauteur_utilise, $largeur_restant, $hauteur_cadre_observation, 'D');
        $pdf->SetXY($X_cadre_note + $largeur_utilise, $Y_cadre_note + $hauteur_utilise);
        $pdf->SetFont('DejaVu', '', 11);
        $pdf->Cell($largeur_restant, 7, $texte_observation, 0, 1, 'C');
    }
    //=======================
    // BLOC SIGNATURE
    //if($affiche_cachet_pp==='1' or $affiche_signature_parent==='1')
    if ($affiche_cachet_pp == 1 or $affiche_signature_parent == 1) {
        $nb_col_sign = 0;
        //if($affiche_cachet_pp==='1') { $nb_col_sign=$nb_col_sign+1; }
        //if($affiche_signature_parent==='1') { $nb_col_sign=$nb_col_sign+1; }
        if ($affiche_cachet_pp == 1) {
            $nb_col_sign = $nb_col_sign + 1;
        }
        if ($affiche_signature_parent == 1) {
            $nb_col_sign = $nb_col_sign + 1;
        }
        $largeur_utilise = $largeur_cadre_matiere + $largeur_cadre_note;
        $X_signature = $X_cadre_note + $largeur_utilise;
        $Y_signature = $Y_cadre_note + $hauteur_cadre_observation + $hauteur_du_titre;
        $hauteur_cadre_signature = $hauteur_cadre_note_global - $hauteur_cadre_observation;
        $largeur_cadre_signature = $largeur_cadre_note_global - $largeur_utilise;
        $pdf->SetFont('DejaVu', '', 8);
        $pdf->Rect($X_signature, $Y_signature, $largeur_cadre_signature, $hauteur_cadre_signature, 'D');
        //if($affiche_cachet_pp==='1')
        if ($affiche_cachet_pp == 1) {
            $pdf->SetXY($X_signature, $Y_signature);
            $pdf->Cell($largeur_cadre_signature / $nb_col_sign, 4, 'Signature', 'LTR', 2, 'C');
            $pdf->Cell($largeur_cadre_signature / $nb_col_sign, 4, $tab_rel['gepi_prof_suivi'], 'LR', 2, 'C');
            $pdf->Cell($largeur_cadre_signature / $nb_col_sign, $hauteur_cachet - 8, '', 'LR', 2, 'C');
            $X_signature = $X_signature + $largeur_restant / $nb_col_sign;
        }
        //if($affiche_signature_parent==='1')
        if ($affiche_signature_parent == 1) {
            $pdf->SetXY($X_signature, $Y_signature);
            $pdf->Cell($largeur_cadre_signature / $nb_col_sign, 4, 'Signatures', 'LTR', 2, 'C');
            $pdf->Cell($largeur_cadre_signature / $nb_col_sign, 4, 'des parents', 'LR', 2, 'C');
            $pdf->Cell($largeur_cadre_signature / $nb_col_sign, $hauteur_cachet - 8, '', 'LR', 2, 'C');
        }
    }
    //}
    /*
    //PUB ;)
    $pdf->SetXY($X_cadre_note, $Y_cadre_note+$hauteur_cadre_note_global+$hauteur_du_titre);
    $pdf->SetFont('DejaVu','',8);
    $pdf->Cell(200,5,'GEPI - Solution libre de Gestion des élèves par Internet',0,1,'');
    // CA ENTRE EN COLLISION AVEC LA FORMULE DU BULLETIN (insérée via la fonction Footer() de class_php/gepi_pdf.class.php)
    */
    //}
    /*
    	$passage_i=$passage_i+1;
    	$nb_eleves_i = $nb_eleves_i + 1;
    }
    
    // on prépare la 2ème boucle pour faire R1 et R2 != R1 si nécessaire
    if ($nb_eleves_i > $nb_eleves) { // dans ce cas on a fait la première boucle, on prépare la 2éme pour les R2 != à R1
    	$nb_boucle++;
    	$responsable_place = 1;
    	$nb_eleves_i = 1;
    }
    */
    //}
    // vider les variables de session
    //    unset($_SESSION["classe"]);
    //    unset($_SESSION["eleve"]);
    //    unset($_SESSION["type"]);
    //    unset($_SESSION["date_debut"]);
    //    unset($_SESSION["date_fin"]);
    //    unset($_SESSION["date_debut_aff"]);
    //    unset($_SESSION["date_fin_aff"]);
    //    unset($_SESSION["avec_nom_devoir"]);
    /*
    // sortie PDF sur écran
    $nom_releve=date("Ymd_Hi");
    $nom_releve = 'Releve_'.$nom_releve.'.pdf';
    $pdf->Output($nom_releve,'I');
    
    // Le PDF n'est généré qu'en fin de boucle sur les bulletins
    */
}
コード例 #27
0
 /**
  * Parses a error for processing.
  *
  * @param string The error type (i.e. E_ERROR, E_FATAL)
  * @param string The error message
  * @param string The error file
  * @param integer The error line
  * @return boolean True if parsing was a success, otherwise assume a error
  */
 function error($type, $message, $file = null, $line = 0)
 {
     global $mybb;
     // Error reporting turned off (either globally or by @ before erroring statement)
     if (error_reporting() == 0) {
         return true;
     }
     if (in_array($type, $this->ignore_types)) {
         return true;
     }
     $file = str_replace(MYBB_ROOT, "", $file);
     $this->has_errors = true;
     // For some reason in the installer this setting is set to "<"
     $accepted_error_types = array('both', 'error', 'warning', 'none');
     if (!in_array($mybb->settings['errortypemedium'], $accepted_error_types)) {
         $mybb->settings['errortypemedium'] = "both";
     }
     if (defined("IN_TASK")) {
         global $task;
         require_once MYBB_ROOT . "inc/functions_task.php";
         if ($file) {
             $filestr = " - Line: {$line} - File: {$file}";
         }
         add_task_log($task, "{$this->error_types[$type]} - [{$type}] " . var_export($message, true) . "{$filestr}");
     }
     // Saving error to log file.
     if ($mybb->settings['errorlogmedium'] == "log" || $mybb->settings['errorlogmedium'] == "both") {
         $this->log_error($type, $message, $file, $line);
     }
     // Are we emailing the Admin a copy?
     if ($mybb->settings['errorlogmedium'] == "mail" || $mybb->settings['errorlogmedium'] == "both") {
         $this->email_error($type, $message, $file, $line);
     }
     // SQL Error
     if ($type == MYBB_SQL) {
         $this->output_error($type, $message, $file, $line);
     } else {
         // Do we have a PHP error?
         if (my_strpos(my_strtolower($this->error_types[$type]), 'warning') === false) {
             $this->output_error($type, $message, $file, $line);
         } else {
             if ($mybb->settings['errortypemedium'] == "none" || $mybb->settings['errortypemedium'] == "error") {
                 echo "<div class=\"php_warning\">MyBB Internal: One or more warnings occured. Please contact your administrator for assistance.</div>";
             } else {
                 global $templates;
                 $warning = "<strong>{$this->error_types[$type]}</strong> [{$type}] {$message} - Line: {$line} - File: {$file} PHP " . PHP_VERSION . " (" . PHP_OS . ")<br />\n";
                 if (is_object($templates) && method_exists($templates, "get") && !defined("IN_ADMINCP")) {
                     $this->warnings .= $warning;
                     $this->warnings .= $this->generate_backtrace();
                 } else {
                     echo "<div class=\"php_warning\">{$warning}" . $this->generate_backtrace() . "</div>";
                 }
             }
         }
     }
     return true;
 }
コード例 #28
0
ファイル: edt_xml.php プロジェクト: rhertzog/lcs
 $tab_ele_id=array();
 */
 $i = -1;
 //$objet_table=($edt_xml->TABLE);
 //foreach ($objet_table->children() as $cours) {
 foreach ($edt_xml->children() as $cours) {
     //echo("<p><b>Structure</b><br />");
     //$chaine_structures_eleve="STRUCTURES_ELEVE";
     foreach ($cours->attributes() as $key => $value) {
         //echo(" Cours $key -&gt;".$value."<br />");
         $i++;
         $tab_cours[$i] = array();
         $tab_cours[$i]['attribut'][$key] = $value;
         $tab_cours[$i]['enfant'] = array();
         foreach ($cours->children() as $key => $value) {
             $tab_cours[$i]["enfant"][my_strtolower($key)] = trim(nettoyer_caracteres_nom(preg_replace("/ /", "", preg_replace('/"/', '', trim($value))), "an", "_ -", " "));
         }
         if ($debug_import == 'y') {
             echo "<pre style='color:green;'><b>Tableau \$tab_cours[{$i}]&nbsp;:</b>";
             print_r($tab_cours[$i]);
             echo "</pre>";
         }
         /*
         Jour;Heure;Div;Matière;Professeur;Salle;Groupe;Regroup;Eff;Mo;Freq;Aire;
         Lundi;8H;6 E;EPS';XXXXXXXX PIERRE;GYMNA;;;16;CG;;;
         */
         /*
         <Cours numero="2">
         <NUMERO>2</NUMERO>
         <DUREE>1h00</DUREE>
         <FREQUENCE>H</FREQUENCE>
コード例 #29
0
ファイル: xmlhttp.php プロジェクト: olada/mybbintegrator
         xmlhttp_error($lang->answer_valid_not_exists);
     }
 } elseif ($mybb->input['action'] == "validate_question" && $mybb->settings['securityquestion']) {
     header("Content-type: application/json; charset={$charset}");
     $sid = $db->escape_string($mybb->get_input('question'));
     $answer = $db->escape_string($mybb->get_input('answer'));
     $query = $db->query("\n\t\tSELECT q.*, s.sid\n\t\tFROM " . TABLE_PREFIX . "questionsessions s\n\t\tLEFT JOIN " . TABLE_PREFIX . "questions q ON (q.qid=s.qid)\n\t\tWHERE q.active='1' AND s.sid='{$sid}'\n\t");
     if ($db->num_rows($query) == 0) {
         echo json_encode($lang->answer_valid_not_exists);
         exit;
     } else {
         $question = $db->fetch_array($query);
         $valid_answers = preg_split("/\r\n|\n|\r/", $question['answer']);
         $validated = 0;
         foreach ($valid_answers as $answers) {
             if (my_strtolower($answers) == my_strtolower($answer)) {
                 $validated = 1;
             }
         }
         $plugins->run_hooks("xmlhttp_validate_question");
         if ($validated != 1) {
             echo json_encode($lang->answer_does_not_match);
             exit;
         } else {
             echo json_encode("true");
             exit;
         }
     }
     exit;
 } else {
     if ($mybb->input['action'] == "complex_password") {
コード例 #30
0
ファイル: prof_disc_classe_csv.php プロジェクト: rhertzog/lcs
 }
 if (!isset($groupes[$i]['libelle_long']) || $groupes[$i]['libelle_long'] == '') {
     $groupes[$i]['libelle_long'] = $groupes[$i]['code'];
 }
 $j = 0;
 foreach ($objet_groupe->DIVISIONS_APPARTENANCE->children() as $objet_division_apartenance) {
     foreach ($objet_division_apartenance->attributes() as $key => $value) {
         $groupes[$i]["divisions"][$j][my_strtolower($key)] = preg_replace('/"/', "", preg_replace("/'/", "", trim($value)));
     }
     $j++;
 }
 $j = 0;
 foreach ($objet_groupe->SERVICES->children() as $service) {
     foreach ($service->attributes() as $key => $value) {
         //$groupes[$i]["service"][$j][my_strtolower($key)]=trim($value);
         $groupes[$i]["grp"][$j][my_strtolower($key)] = trim($value);
         // Remarque: Pour les divisions, c'est ["services"] au lieu de ["service"]
         //           $divisions[$i]["services"][$j][my_strtolower($key)]=trim($value);
     }
     $k = 0;
     foreach ($service->ENSEIGNANTS->children() as $enseignant) {
         foreach ($enseignant->attributes() as $key => $value) {
             //<ENSEIGNANT ID="8949" TYPE="epp">
             if (my_strtoupper($key) == "ID") {
                 //$groupes[$i]["service"][$j]["enseignant"][$k]["id"]=trim($value);
                 $groupes[$i]["grp"][$j]["enseignant"][$k]["id"] = trim($value);
                 break;
             }
         }
         $k++;
     }