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; }
/** * 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); } }
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); }
/** 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; }
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; }
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"); }
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; }
/** * 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); } }
/** * 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); }
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 ""; } }
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"; } } }
$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"; }
/** * @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); }
/** * 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'] = ' '; } $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;\" /> "; } 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; }
$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']);
} } 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; } } }
$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;
/** * 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); }
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";
/** * 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; }
/** * 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; }
$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 :</p>\n"; echo "<p>La partie archivage de fin d'année :</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&date_limite=31/07/" . date('Y') . "&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 :</p>\n"; echo "<ol>\n"; echo "<li><p>Modifier l'année scolaire (<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 :<br />"; ?>
$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; }
} } 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);
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'));
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 */ }
/** * 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; }
$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 ->".$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}] :</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>
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") {
} 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++; }