function array_map_deep($fn, $array)
{
    if (is_array($array)) {
        foreach ($array as $key => $value) {
            if (is_array($value)) {
                $array[$key] = array_map_deep($fn, $value);
            } else {
                $array[$key] = call_user_func($fn, $value);
            }
        }
    } else {
        $array = call_user_func($fn, $array);
    }
    return $array;
}
Exemple #2
0
 public function set_options($options)
 {
     $options = array_map_deep('trim', $options);
     // traverse options and remove any blank ones
     foreach ($options as $key => $val) {
         if (empty($val)) {
             unset($options[$key]);
         } else {
             if (is_array($val)) {
                 foreach ($val as $val_key => $val_val) {
                     if (empty($val_val)) {
                         unset($options[$key]);
                     }
                 }
             }
         }
     }
     $this->set_attribute('options', json_encode($options));
 }
Exemple #3
0
// 액션이 있으면
if ($act) {
    check_admin_token();
    if ($act == "add") {
        $_POST = array_map_deep('trim', $_POST);
        $sql = " insert into {$g5['apms_form']}\n\t\t\t\t\tset pi_show             = '{$_POST['pi_show']}',\n\t\t\t\t\t\tpi_order            = '{$_POST['pi_order']}',\n\t\t\t\t\t\tpi_file             = '{$_POST['pi_file']}',\n\t\t\t\t\t\tpi_name\t\t        = '{$_POST['pi_name']}',\n\t\t\t\t\t\tpi_use\t\t        = '{$_POST['pi_use']}' ";
        sql_query($sql);
    } else {
        if ($act == "del") {
            $sql = " delete from {$g5['apms_form']} where pi_id = '{$pi_id}' ";
            sql_query($sql);
        } else {
            if ($act == "edit") {
                $count = count($_POST['pi_id']);
                for ($i = 0; $i < $count; $i++) {
                    $_POST = array_map_deep('trim', $_POST);
                    if (!$_POST['pi_id'][$i]) {
                        continue;
                    }
                    $sql = " update {$g5['apms_form']}\n\t\t\t\t\t\tset pi_show             = '{$_POST['pi_show'][$i]}',\n\t\t\t\t\t\t\tpi_order            = '{$_POST['pi_order'][$i]}',\n\t\t\t\t\t\t\tpi_file             = '{$_POST['pi_file'][$i]}',\n\t\t\t\t\t\t\tpi_name\t\t        = '{$_POST['pi_name'][$i]}',\n\t\t\t\t\t\t\tpi_use\t\t        = '{$_POST['pi_use'][$i]}'\n\t\t\t\t\t  where pi_id = '{$_POST['pi_id'][$i]}' ";
                    sql_query($sql);
                }
            }
        }
    }
    goto_url("./apms.form.list.php");
}
$sql = " select * from {$g5['apms_form']} order by pi_show desc, pi_order, pi_id ";
$result = sql_query($sql);
$g5['title'] = "등록폼 관리";
include_once G5_ADMIN_PATH . '/admin.head.php';
Exemple #4
0
function array_map_deep($callback, array $array)
{
    $new = array();
    foreach ($array as $key => $val) {
        if (is_array($val)) {
            $new[$key] = array_map_deep($callback, $val);
        } else {
            $new[$key] = call_user_func($callback, $val);
        }
    }
    return $new;
}
Exemple #5
0
/**
 *
 * @param type $callback
 * @param ArrayAccess $array
 * @return type 
 */
function array_map_deep($callback, $array)
{
    $new = array();
    if (is_array($array) || $array instanceof ArrayAccess) {
        foreach ($array as $key => $val) {
            if (is_array($val)) {
                $new[$key] = array_map_deep($callback, $val);
            } else {
                $new[$key] = call_user_func($callback, $val);
            }
        }
    } else {
        $new = call_user_func($callback, $array);
    }
    return $new;
}
Exemple #6
0
<?php

include_once './_common.php';
$_POST = array_map_deep('conv_unescape_nl', $_POST);
/*
 * [본인확인 처리 페이지]
 *
 * LG유플러스으로 부터 내려받은 LGD_AUTHONLYKEY(인증Key)를 가지고 최종 인증요청.(파라미터 전달시 POST를 사용하세요)
 */
/*
 *************************************************
 * 1.최종인증 요청 - BEGIN
 *************************************************
 */
//LG유플러스 결제 서비스 선택(test:테스트, service:서비스)
if ($config['cf_cert_use'] == 2) {
    $CST_PLATFORM = 'service';
} else {
    $CST_PLATFORM = 'test';
}
$CST_MID = 'si_' . $config['cf_lg_mid'];
//상점아이디(LG유플러스으로 부터 발급받으신 상점아이디를 입력하세요)
//테스트 아이디는 't'를 반드시 제외하고 입력하세요.
$LGD_MID = ('test' == $CST_PLATFORM ? 't' : '') . $CST_MID;
//상점아이디(자동생성)
$LGD_AUTHONLYKEY = $_POST['LGD_AUTHONLYKEY'];
//LG유플러스으로부터 부여받은 인증키
$LGD_PAYTYPE = $_POST['LGD_PAYTYPE'];
//인증요청타입 (신용카드:ASC001, 휴대폰:ASC002, 계좌:ASC004)
require_once G5_LGXPAY_PATH . '/lgdacom/XPayClient.php';
// mall.conf 설정 추가를 위한 XPayClient 확장
Exemple #7
0
/**
 * Affichage de la liste des conteneurs
 *
 * @global array 
 * @global text 
 * @global int 
 * @global int 
 * @param int $id_conteneur Id du conteneur
 * @param int $periode_num Numéro de la période
 * @param text $empty existance de notes, no si le conteneur contient des notes (passage par référence) 
 * @param int $ver_periode Etat du vérouillage de la période
 * @return text no si le conteneur contient des notes, yes sinon
 * @see getSettingValue()
 * @see get_nom_prenom_eleve()
 * @see creer_div_infobulle()
 * @see add_token_in_url()
 * @see traitement_magic_quotes()
 */
function affiche_devoirs_conteneurs($id_conteneur, $periode_num, &$empty, $ver_periode)
{
    global $tabdiv_infobulle, $gepiClosedPeriodLabel, $id_groupe, $eff_groupe, $acces_exceptionnel_saisie;
    if (isset($id_groupe) && !isset($eff_groupe)) {
        $sql = "SELECT 1=1 FROM j_eleves_groupes WHERE id_groupe='{$id_groupe}' AND periode='{$periode_num}';";
        //echo "$sql<br />";
        $res_ele_grp = mysqli_query($GLOBALS["mysqli"], $sql);
        $eff_groupe = mysqli_num_rows($res_ele_grp);
    }
    //
    // Cas particulier de la racine
    $gepi_denom_boite = getSettingValue("gepi_denom_boite");
    if (getSettingValue("gepi_denom_boite_genre") == 'm') {
        $message_cont = "Etes-vous sûr de vouloir supprimer le " . getSettingValue("gepi_denom_boite") . " ci-dessous ?";
        $message_cont_non_vide = "Le " . getSettingValue("gepi_denom_boite") . " est non vide. Il ne peut pas être supprimé.";
    } else {
        $message_cont = "Etes-vous sûr de vouloir supprimer la " . getSettingValue("gepi_denom_boite") . " ci-dessous ?";
        $message_cont_non_vide = "La " . getSettingValue("gepi_denom_boite") . " est non vide. Elle ne peut pas être supprimée.";
    }
    $message_dev = "Etes-vous sûr de vouloir supprimer l\\'évaluation ci-dessous et les notes qu\\'elle contient ?";
    $sql = "SELECT * FROM cn_conteneurs WHERE (parent='0' and id_racine='{$id_conteneur}')";
    $appel_conteneurs = mysqli_query($GLOBALS["mysqli"], $sql);
    $nb_cont = mysqli_num_rows($appel_conteneurs);
    if ($nb_cont != 0) {
        echo "<ul>\n";
        $id_cont = old_mysql_result($appel_conteneurs, 0, 'id');
        $id_parent = old_mysql_result($appel_conteneurs, 0, 'parent');
        $id_racine = old_mysql_result($appel_conteneurs, 0, 'id_racine');
        $nom_conteneur = old_mysql_result($appel_conteneurs, 0, 'nom_court');
        $modeBoiteMoy = old_mysql_result($appel_conteneurs, 0, 'mode');
        echo "<li>\n";
        echo htmlspecialchars($nom_conteneur);
        if ($ver_periode <= 1) {
            echo " (<strong>" . $gepiClosedPeriodLabel . "</strong>) ";
        }
        echo "- <a href='saisie_notes.php?id_conteneur={$id_cont}'>Visualisation</a> - <a href = 'add_modif_conteneur.php?id_conteneur={$id_cont}&amp;mode_navig=retour_index'>Configuration</a>\n";
        $ponderation_cont = old_mysql_result($appel_conteneurs, 0, 'ponderation');
        if ($ponderation_cont != '0.0') {
            $message_ponderation = "La meilleure note de la " . getSettingValue("gepi_denom_boite") . " est pondérée d'un coefficient +{$ponderation_cont}";
            echo " - <img src='../images/icons/flag.png' width='17' height='18' alt=\"{$message_ponderation}\" title=\"{$message_ponderation}\" />";
        }
        $sql = "SELECT mode FROM cn_conteneurs WHERE id_racine='{$id_conteneur}';";
        $res_nb_conteneurs = mysqli_query($GLOBALS["mysqli"], $sql);
        if (mysqli_num_rows($res_nb_conteneurs) > 1) {
            echo " - <a href='add_modif_conteneur.php?id_conteneur={$id_conteneur}&mode_navig=retour_index' title=\"";
            if ($modeBoiteMoy == 1) {
                echo "la moyenne s'effectue sur toutes les notes contenues à la racine et dans les " . my_strtolower(getSettingValue("gepi_denom_boite")) . "s sans tenir compte des options définies dans ces " . my_strtolower(getSettingValue("gepi_denom_boite")) . "s.";
            } else {
                echo "la moyenne s'effectue sur toutes les notes contenues à la racine et sur les moyennes des " . my_strtolower(getSettingValue("gepi_denom_boite")) . "s en tenant compte des options dans ces " . my_strtolower(getSettingValue("gepi_denom_boite")) . "s.";
            }
            echo "\">Mode Moy.: {$modeBoiteMoy}</a>";
        }
        if ($ver_periode >= 2) {
            echo " - <a href='add_modif_dev.php?id_conteneur={$id_racine}&amp;mode_navig=retour_index' title=\"Créer une évaluation\"><img src='../images/icons/add.png' class='icone16' alt='Ajouter une évaluation' /></a>";
        }
        $appel_dev = mysqli_query($GLOBALS["mysqli"], "select * from cn_devoirs where id_conteneur='{$id_cont}' order by date");
        $nb_dev = mysqli_num_rows($appel_dev);
        if ($nb_dev != 0) {
            $empty = 'no';
        }
        if ($ver_periode >= 2 || $acces_exceptionnel_saisie) {
            $j = 0;
            if ($nb_dev > 0) {
                echo "<ul>\n";
                while ($j < $nb_dev) {
                    if (getSettingValue("utiliser_sacoche") == 'yes') {
                        echo '<form id="sacoche_form_' . $j . '" method="POST" action="' . getSettingValue("sacocheUrl") . '/index.php?sso&page=evaluation_gestion&section=groupe">';
                        echo '<input type="hidden" name="id" value="' . getSettingValue("sacoche_base") . '"/>';
                        echo '<input type="hidden" name="page" value="evaluation_gestion"/>';
                        echo '<input type="hidden" name="section" value="groupe"/>';
                        echo '<input type="hidden" name="source" value="distant-gepi-saml"/>';
                        //source simplesaml pour préselectionner la source dans le module multiauth et éviter de choisir le webmestre
                        //encodage du devoir
                        mysqli_data_seek($appel_dev, $j);
                        $devoir_array = mysqli_fetch_array($appel_dev);
                        $devoir_array = array_map_deep('ensure_utf8', $devoir_array);
                        echo '<input type="hidden" name="period_num" value=\'' . $periode_num . '\'/>';
                        echo '<input type="hidden" name="gepi_cn_devoirs_array" value="' . htmlspecialchars(json_encode($devoir_array), ENT_COMPAT, 'UTF-8') . '"/>';
                        $group_array = get_group($id_groupe);
                        //on va purger un peut notre array
                        unset($group_array['classes']);
                        unset($group_array['matieres']);
                        unset($group_array['eleves']['all']);
                        for ($i = 0; $i < 5; $i++) {
                            if ($i != $periode_num) {
                                unset($group_array['eleves']['' . $i]);
                            }
                        }
                        $current_group = array_map_deep('ensure_utf8', $group_array);
                        echo '<input type="hidden" name="gepi_current_group" value="' . htmlspecialchars(json_encode($current_group), ENT_COMPAT, 'UTF-8') . '"/>';
                        echo '</form>';
                    }
                    $nom_dev = old_mysql_result($appel_dev, $j, 'nom_court');
                    $id_dev = old_mysql_result($appel_dev, $j, 'id');
                    $date_dev = old_mysql_result($appel_dev, $j, 'date');
                    $date_ele_resp_dev = old_mysql_result($appel_dev, $j, 'date_ele_resp');
                    echo "<li>\n";
                    echo "<span style='color:green;'>{$nom_dev}</span>";
                    echo " - <a href='saisie_notes.php?id_conteneur={$id_cont}&amp;id_devoir={$id_dev}'>Saisie</a>";
                    $sql = "SELECT 1=1 FROM cn_notes_devoirs cnd, j_eleves_classes jec WHERE cnd.id_devoir='{$id_dev}' AND cnd.statut!='v' AND jec.login=cnd.login AND jec.periode='{$periode_num}';";
                    $res_eff_dev = mysqli_query($GLOBALS["mysqli"], $sql);
                    $eff_dev = mysqli_num_rows($res_eff_dev);
                    echo " <span title=\"Effectif des notes saisies/effectif total de l'enseignement\" style='font-size:small;";
                    if (isset($eff_groupe)) {
                        if ($eff_dev == $eff_groupe) {
                            echo "color:green;";
                        } else {
                            echo "color:red;";
                        }
                    }
                    echo "'>({$eff_dev}";
                    if (isset($eff_groupe)) {
                        echo "/{$eff_groupe}";
                    }
                    echo ")</span>";
                    // Pour détecter une anomalie:
                    $sql = "SELECT * FROM cn_notes_devoirs cnd, j_eleves_classes jec WHERE cnd.id_devoir='{$id_dev}' AND cnd.statut!='v' AND jec.login=cnd.login AND jec.periode='{$periode_num}' AND jec.login not in (select login from j_eleves_groupes where id_groupe='{$id_groupe}' and periode='{$periode_num}');";
                    $test_anomalie = mysqli_query($GLOBALS["mysqli"], $sql);
                    if (mysqli_num_rows($test_anomalie) > 0) {
                        $titre_infobulle = "Note pour un fantôme";
                        $texte_infobulle = "Une ou des notes existent pour un ou des élèves qui ne sont plus inscrits dans cet enseignement&nbsp;:<br />";
                        $cpt_ele_anomalie = 0;
                        while ($lig_anomalie = mysqli_fetch_object($test_anomalie)) {
                            if ($cpt_ele_anomalie > 0) {
                                $texte_infobulle .= ", ";
                            }
                            $texte_infobulle .= get_nom_prenom_eleve($lig_anomalie->login, 'avec_classe') . "&nbsp;(<i title=\"Note enregistrée\">";
                            if ($lig_anomalie->statut == '') {
                                $texte_infobulle .= $lig_anomalie->note;
                            } elseif ($lig_anomalie->statut == 'v') {
                                $texte_infobulle .= "_";
                            } else {
                                $texte_infobulle .= $lig_anomalie->statut;
                            }
                            $texte_infobulle .= "</i>)";
                            $cpt_ele_anomalie++;
                        }
                        $texte_infobulle .= "<br />";
                        $texte_infobulle .= "Cliquer <a href='" . $_SERVER['PHP_SELF'] . "?id_groupe={$id_groupe}&amp;periode_num={$periode_num}&amp;clean_anomalie_dev={$id_dev}" . add_token_in_url() . "' class='bold'>ici</a> pour supprimer les notes associées?";
                        $tabdiv_infobulle[] = creer_div_infobulle('anomalie_' . $id_dev, $titre_infobulle, "", $texte_infobulle, "", 35, 0, 'y', 'y', 'n', 'n');
                        echo " <a href=\"#\" onclick=\"afficher_div('anomalie_{$id_dev}','y',100,100);return false;\" title=\"Une ou des notes existent pour un ou des élèves qui ne sont plus inscrits dans cet enseignement.\nCliquez pour contrôler la liste.\"><img src='../images/icons/flag.png' width='17' height='18' alt='' /></a>";
                    }
                    if (getSettingValue("utiliser_sacoche") == 'yes') {
                        echo " - <a href='#' onclick=\"document.getElementById('sacoche_form_" . $j . "').submit();\">Évaluer par compétence</a>";
                    }
                    echo " - <a href = 'add_modif_dev.php?id_conteneur={$id_conteneur}&amp;id_devoir={$id_dev}&amp;mode_navig=retour_index'>Configuration</a>";
                    // Autre anomalie
                    $sql = "SELECT * FROM cn_devoirs WHERE id='{$id_dev}' AND facultatif!='O' AND facultatif!='N' AND facultatif!='B';";
                    $test_anomalie = mysqli_query($GLOBALS["mysqli"], $sql);
                    if (mysqli_num_rows($test_anomalie) > 0) {
                        $titre_infobulle = "Devoir facultatif ou pas ?";
                        $texte_infobulle = "Le devoir n'est pas 'catégorisé' comme facultatif ou non.<br />Son mode de prise en compte ou non dans la moyenne n'est pas défini.<br />";
                        $texte_infobulle .= "Cliquer <a href='add_modif_dev.php?id_conteneur={$id_cont}&amp;id_devoir={$id_dev}&amp;mode_navig=retour_index&amp;interface_simplifiee=n" . add_token_in_url() . "#statut_evaluation' class='bold'>ici</a> pour choisir un mode.";
                        $tabdiv_infobulle[] = creer_div_infobulle('anomalie2_' . $id_dev, $titre_infobulle, "", $texte_infobulle, "", 35, 0, 'y', 'y', 'n', 'n');
                        echo " <a href=\"#\" onclick=\"afficher_div('anomalie2_{$id_dev}','y',100,100);return false;\" title=\"Mode de prise en compte ou non dans la moyenne non défini.\"><img src='../images/icons/flag.png' width='17' height='18' alt='' /></a>";
                    }
                    $note_sur = old_mysql_result($appel_dev, $j, 'note_sur');
                    if ($note_sur != '20') {
                        echo " (<em><span title='Note sur {$note_sur}'>/{$note_sur}</span></em>)";
                    }
                    $display_parents = old_mysql_result($appel_dev, $j, 'display_parents');
                    $coef = old_mysql_result($appel_dev, $j, 'coef');
                    echo " (<i><span title='Coefficient {$coef}'>{$coef}</span> ";
                    echo "<span id='span_visibilite_{$id_dev}'>";
                    if ($display_parents == 1) {
                        echo "<a href='" . $_SERVER['PHP_SELF'] . "?id_groupe={$id_groupe}&amp;id_racine={$id_racine}&amp;id_dev={$id_dev}&amp;mode=change_visibilite_dev&amp;visible=n" . add_token_in_url() . "' onclick=\"change_visibilite_dev({$id_dev},'n');return false;\"><img src='../images/icons/visible.png' width='19' height='16' title='Evaluation du " . formate_date($date_dev) . " visible sur le relevé de notes.\nVisible à compter du " . formate_date($date_ele_resp_dev) . " pour les parents et élèves.\n\nCliquez pour ne pas faire apparaître cette note sur le relevé de notes.' alt='Evaluation visible sur le relevé de notes' /></a>";
                    } else {
                        echo " <a href='" . $_SERVER['PHP_SELF'] . "?id_groupe={$id_groupe}&amp;id_racine={$id_racine}&amp;id_dev={$id_dev}&amp;mode=change_visibilite_dev&amp;visible=y" . add_token_in_url() . "' onclick=\"change_visibilite_dev({$id_dev},'y');return false;\"><img src='../images/icons/invisible.png' width='19' height='16' title='Evaluation non visible sur le relevé de notes.\n\t\t\t\t\t\nCliquez pour faire apparaître cette note sur le relevé de notes.' alt='Evaluation non visible sur le relevé de notes' /></a>\n";
                    }
                    echo "</span>";
                    echo "</i>)";
                    $sql = "SELECT * FROM cc_dev WHERE id_cn_dev='{$id_dev}';";
                    $res_cc_dev = mysqli_query($GLOBALS["mysqli"], $sql);
                    if (mysqli_num_rows($res_cc_dev) > 0) {
                        $lig_cc_dev = mysqli_fetch_object($res_cc_dev);
                        echo " - <a href='index_cc.php?id_racine=" . $id_racine . "' title=\"Voir l'évaluation cumul associée {$lig_cc_dev->nom_court} ({$lig_cc_dev->nom_complet})\">" . $lig_cc_dev->nom_court . "</a>";
                    }
                    echo " - <a href='copie_dev.php?id_devoir=" . $id_dev . "' title=\"Copier le devoir et les notes vers une autre période ou un autre enseignement (Les notes ne sont copiées que si les élèves sont les mêmes).\"><img src='../images/icons/copy-16.png' width='16' height='16' alt='' /></a>\n";
                    echo " - <a href = 'index.php?id_racine={$id_racine}&amp;del_dev={$id_dev}" . add_token_in_url() . "' onclick=\"return confirmlink(this, 'suppression de " . traitement_magic_quotes($nom_dev) . "', '" . $message_dev . "')\">Suppression</a>\n";
                    echo "</li>\n";
                    $j++;
                }
                echo "</ul>\n";
            }
        }
        echo "</li>\n";
        echo "</ul>\n";
    }
    if ($ver_periode >= 2 || $acces_exceptionnel_saisie) {
        $appel_conteneurs = mysqli_query($GLOBALS["mysqli"], "SELECT * FROM cn_conteneurs WHERE (parent='{$id_conteneur}') order by nom_court");
        $nb_cont = mysqli_num_rows($appel_conteneurs);
        if ($nb_cont > 0) {
            echo "<ul>\n";
            $i = 0;
            while ($i < $nb_cont) {
                $id_cont = old_mysql_result($appel_conteneurs, $i, 'id');
                $id_parent = old_mysql_result($appel_conteneurs, $i, 'parent');
                $id_racine = old_mysql_result($appel_conteneurs, $i, 'id_racine');
                $nom_conteneur = old_mysql_result($appel_conteneurs, $i, 'nom_court');
                if ($id_cont != $id_parent) {
                    echo "<li>\n";
                    echo "{$nom_conteneur} - <a href='saisie_notes.php?id_conteneur={$id_cont}'>Visualisation</a>";
                    echo " - <a href = 'add_modif_conteneur.php?id_conteneur={$id_cont}&amp;mode_navig=retour_index'>Configuration</a>\n";
                    $display_bulletin = old_mysql_result($appel_conteneurs, $i, 'display_bulletin');
                    $coef = old_mysql_result($appel_conteneurs, $i, 'coef');
                    echo " (<i><span title='Coefficient {$coef}'>{$coef}</span> ";
                    if ($display_bulletin == 1) {
                        echo "<img src='../images/icons/visible.png' width='19' height='16' title='{$gepi_denom_boite} visible sur le bulletin' alt='{$gepi_denom_boite} visible sur le bulletin' />";
                    } else {
                        echo " <img src='../images/icons/invisible.png' width='19' height='16' title=\"" . ucfirst($gepi_denom_boite) . " non visible sur le bulletin.\nCela ne signifie pas que les notes ne sont pas prises en compte dans le calcul de la moyenne.\nEn revanche, on n'affiche pas une case spécifique pour ce" . (getSettingValue('gepi_denom_boite_genre') == 'f' ? "tte" : "") . " " . $gepi_denom_boite . " dans le bulletin.\" alt='" . ucfirst($gepi_denom_boite) . " non visible sur le bulletin.' />\n";
                    }
                    echo "</i>)";
                    $ponderation_cont = old_mysql_result($appel_conteneurs, $i, 'ponderation');
                    if ($ponderation_cont != '0.0') {
                        $message_ponderation = "La meilleure note de la " . getSettingValue("gepi_denom_boite") . " est pondérée d'un coefficient +{$ponderation_cont}";
                        echo " - <img src='../images/icons/flag.png' width='17' height='18' alt=\"{$message_ponderation}\" title=\"{$message_ponderation}\" />";
                    }
                    $appel_dev = mysqli_query($GLOBALS["mysqli"], "select * from cn_devoirs where id_conteneur='{$id_cont}' order by date");
                    $nb_dev = mysqli_num_rows($appel_dev);
                    if ($nb_dev != 0) {
                        $empty = 'no';
                    }
                    // Existe-t-il des sous-conteneurs?
                    $sql = "SELECT 1=1 FROM cn_conteneurs WHERE (parent='{$id_cont}')";
                    $test_sous_cont = mysqli_query($GLOBALS["mysqli"], $sql);
                    $nb_sous_cont = mysqli_num_rows($test_sous_cont);
                    if ($nb_dev == 0 && $nb_sous_cont == 0) {
                        echo " - <a href = 'index.php?id_racine={$id_racine}&amp;del_cont={$id_cont}" . add_token_in_url() . "' onclick=\"return confirmlink(this, 'suppression de " . traitement_magic_quotes($nom_conteneur) . "', '" . $message_cont . "')\">Suppression</a>\n";
                    } else {
                        echo " - <a href = '#' onclick='alert(\"{$message_cont_non_vide}\")'><font color='gray'>Suppression</font></a>\n";
                    }
                    $j = 0;
                    if ($nb_dev > 0) {
                        echo "<ul>\n";
                        while ($j < $nb_dev) {
                            $nom_dev = old_mysql_result($appel_dev, $j, 'nom_court');
                            $id_dev = old_mysql_result($appel_dev, $j, 'id');
                            $date_dev = old_mysql_result($appel_dev, $j, 'date');
                            $date_ele_resp_dev = old_mysql_result($appel_dev, $j, 'date_ele_resp');
                            echo "<li>\n";
                            echo "<font color='green'>{$nom_dev}</font> - <a href='saisie_notes.php?id_conteneur={$id_cont}&amp;id_devoir={$id_dev}'>Saisie</a>";
                            //$sql="SELECT 1=1 FROM cn_notes_devoirs cnd, j_eleves_classes jec WHERE cnd.id_devoir='$id_dev' AND cnd.statut!='-' AND cnd.statut!='v' AND jec.login=cnd.login AND jec.periode='$periode_num';";
                            $sql = "SELECT 1=1 FROM cn_notes_devoirs cnd, j_eleves_classes jec WHERE cnd.id_devoir='{$id_dev}' AND cnd.statut!='v' AND jec.login=cnd.login AND jec.periode='{$periode_num}';";
                            $res_eff_dev = mysqli_query($GLOBALS["mysqli"], $sql);
                            $eff_dev = mysqli_num_rows($res_eff_dev);
                            echo " <span title=\"Effectif des notes saisies/effectif total de l'enseignement\" style='font-size:small;";
                            if (isset($eff_groupe)) {
                                if ($eff_dev == $eff_groupe) {
                                    echo "color:green;";
                                } else {
                                    echo "color:red;";
                                }
                            }
                            echo "'>({$eff_dev}";
                            if (isset($eff_groupe)) {
                                echo "/{$eff_groupe}";
                            }
                            echo ")</span>";
                            // Pour détecter une anomalie:
                            $sql = "SELECT * FROM cn_notes_devoirs cnd, j_eleves_classes jec WHERE cnd.id_devoir='{$id_dev}' AND cnd.statut!='v' AND jec.login=cnd.login AND jec.periode='{$periode_num}' AND jec.login not in (select login from j_eleves_groupes where id_groupe='{$id_groupe}' and periode='{$periode_num}');";
                            $test_anomalie = mysqli_query($GLOBALS["mysqli"], $sql);
                            if (mysqli_num_rows($test_anomalie) > 0) {
                                $titre_infobulle = "Note pour un fantôme";
                                $texte_infobulle = "Une ou des notes existent pour un ou des élèves qui ne sont plus inscrits dans cet enseignement&nbsp;:<br />";
                                $cpt_ele_anomalie = 0;
                                while ($lig_anomalie = mysqli_fetch_object($test_anomalie)) {
                                    if ($cpt_ele_anomalie > 0) {
                                        $texte_infobulle .= ", ";
                                    }
                                    $texte_infobulle .= get_nom_prenom_eleve($lig_anomalie->login, 'avec_classe') . "&nbsp;(<i title=\"Note enregistrée\">";
                                    if ($lig_anomalie->statut == '') {
                                        $texte_infobulle .= $lig_anomalie->note;
                                    } elseif ($lig_anomalie->statut == 'v') {
                                        $texte_infobulle .= "_";
                                    } else {
                                        $texte_infobulle .= $lig_anomalie->statut;
                                    }
                                    $texte_infobulle .= "</i>)";
                                    $cpt_ele_anomalie++;
                                }
                                $texte_infobulle .= "<br />";
                                $texte_infobulle .= "Cliquer <a href='" . $_SERVER['PHP_SELF'] . "?id_groupe={$id_groupe}&amp;periode_num={$periode_num}&amp;clean_anomalie_dev={$id_dev}" . add_token_in_url() . "' class='bold'>ici</a> pour supprimer les notes associées?";
                                $tabdiv_infobulle[] = creer_div_infobulle('anomalie_' . $id_dev, $titre_infobulle, "", $texte_infobulle, "", 35, 0, 'y', 'y', 'n', 'n');
                                echo " <a href=\"#\" onclick=\"afficher_div('anomalie_{$id_dev}','y',100,100);return FALSE;\" title=\"Une ou des notes existent pour un ou des élèves qui ne sont plus inscrits dans cet enseignement.\nCliquez pour contrôler la liste.\"><img src='../images/icons/flag.png' width='17' height='18' alt='' /></a>";
                            }
                            echo " - <a href = 'add_modif_dev.php?id_conteneur={$id_conteneur}&amp;id_devoir={$id_dev}&amp;mode_navig=retour_index'>Configuration</a>";
                            // Autre anomalie
                            $sql = "SELECT * FROM cn_devoirs WHERE id='{$id_dev}' AND facultatif!='O' AND facultatif!='N' AND facultatif!='B';";
                            $test_anomalie = mysqli_query($GLOBALS["mysqli"], $sql);
                            if (mysqli_num_rows($test_anomalie) > 0) {
                                $titre_infobulle = "Devoir facultatif ou pas ?";
                                $texte_infobulle = "Le devoir n'est pas 'catégorisé' comme facultatif ou non.<br />Son mode de prise en compte ou non dans la moyenne n'est pas défini.<br />";
                                $texte_infobulle .= "Cliquer <a href='add_modif_dev.php?id_conteneur={$id_conteneur}&amp;id_devoir={$id_dev}&amp;mode_navig=retour_index&amp;interface_simplifiee=n" . add_token_in_url() . "#statut_evaluation' class='bold'>ici</a> pour choisir un mode.";
                                $tabdiv_infobulle[] = creer_div_infobulle('anomalie2_' . $id_dev, $titre_infobulle, "", $texte_infobulle, "", 35, 0, 'y', 'y', 'n', 'n');
                                echo " <a href=\"#\" onclick=\"afficher_div('anomalie2_{$id_dev}','y',100,100);return false;\" title=\"Mode de prise en compte ou non dans la moyenne non défini.\"><img src='../images/icons/flag.png' width='17' height='18' alt='' /></a>";
                            }
                            $note_sur = old_mysql_result($appel_dev, $j, 'note_sur');
                            if ($note_sur != '20') {
                                echo " (<em><span title='Note sur {$note_sur}'>/{$note_sur}</span></em>)";
                            }
                            $display_parents = old_mysql_result($appel_dev, $j, 'display_parents');
                            $coef = old_mysql_result($appel_dev, $j, 'coef');
                            echo " (<i><span title='Coefficient {$coef}'>{$coef}</span> ";
                            /*
                            if($display_parents==1) {echo "<img src='../images/icons/visible.png' width='19' height='16' title='Evaluation du ".formate_date($date_dev)." visible sur le relevé de notes.
                            Visible à compter du ".formate_date($date_ele_resp_dev)." pour les parents et élèves.' alt='Evaluation visible sur le relevé de notes' />";}
                            else {echo " <img src='../images/icons/invisible.png' width='19' height='16' title='Evaluation non visible sur le relevé de notes' alt='Evaluation non visible sur le relevé de notes' />\n";}
                            */
                            echo "<span id='span_visibilite_{$id_dev}'>";
                            if ($display_parents == 1) {
                                echo "<a href='" . $_SERVER['PHP_SELF'] . "?id_groupe={$id_groupe}&amp;id_racine={$id_racine}&amp;id_dev={$id_dev}&amp;mode=change_visibilite_dev&amp;visible=n" . add_token_in_url() . "' onclick=\"change_visibilite_dev({$id_dev},'n');return false;\"><img src='../images/icons/visible.png' width='19' height='16' title='Evaluation du " . formate_date($date_dev) . " visible sur le relevé de notes.\nVisible à compter du " . formate_date($date_ele_resp_dev) . " pour les parents et élèves.\n\nCliquez pour ne pas faire apparaître cette note sur le relevé de notes.' alt='Evaluation visible sur le relevé de notes' /></a>";
                            } else {
                                echo " <a href='" . $_SERVER['PHP_SELF'] . "?id_groupe={$id_groupe}&amp;id_racine={$id_racine}&amp;id_dev={$id_dev}&amp;mode=change_visibilite_dev&amp;visible=y" . add_token_in_url() . "' onclick=\"change_visibilite_dev({$id_dev},'y');return false;\"><img src='../images/icons/invisible.png' width='19' height='16' title='Evaluation non visible sur le relevé de notes.\n\t\t\t\t\t\nCliquez pour faire apparaître cette note sur le relevé de notes.' alt='Evaluation non visible sur le relevé de notes' /></a>\n";
                            }
                            echo "</span>";
                            echo "</i>)";
                            $sql = "SELECT * FROM cc_dev WHERE id_cn_dev='{$id_dev}';";
                            $res_cc_dev = mysqli_query($GLOBALS["mysqli"], $sql);
                            if (mysqli_num_rows($res_cc_dev) > 0) {
                                $lig_cc_dev = mysqli_fetch_object($res_cc_dev);
                                echo " - <a href='index_cc.php?id_racine=" . $id_racine . "' title=\"Voir l'évaluation cumul associée {$lig_cc_dev->nom_court} ({$lig_cc_dev->nom_complet})\">" . $lig_cc_dev->nom_court . "</a>";
                            }
                            echo " - <a href='copie_dev.php?id_devoir=" . $id_dev . "' title=\"Copier le devoir et les notes vers une autre période ou un autre enseignement (Les notes ne sont copiées que si les élèves sont les mêmes).\"><img src='../images/icons/copy-16.png' width='16' height='16' alt='' /></a>\n";
                            echo " - <a href = 'index.php?id_racine={$id_racine}&amp;del_dev={$id_dev}" . add_token_in_url() . "' onclick=\"return confirmlink(this, 'suppression de " . traitement_magic_quotes($nom_dev) . "', '" . $message_dev . "')\">Suppression</a>\n";
                            echo "</li>\n";
                            $j++;
                        }
                        echo "</ul>\n";
                    }
                }
                if ($id_conteneur != $id_cont) {
                    affiche_devoirs_conteneurs($id_cont, $periode_num, $empty, $ver_periode);
                }
                if ($id_cont != $id_parent) {
                    echo "</li>\n";
                }
                $i++;
            }
            echo "</ul>\n";
        }
    }
    if ($empty != 'no') {
        return 'yes';
    }
}
Exemple #8
0
 /**
  * Raven form tag pair
  *
  * {{ raven:form }} {{ /raven:form }}
  *
  * @return string
  */
 public function form()
 {
     /*
     |--------------------------------------------------------------------------
     | Formset
     |--------------------------------------------------------------------------
     |
     | Raven really needs a formset to make it useful and secure. We may even
     | write a form decorator in the future to generate forms from formsets.
     |
     */
     $formset = $this->fetchParam('formset', false);
     $return = $this->fetchParam('return', URL::getCurrent());
     $error_return = $this->fetchParam('error_return', URL::getCurrent());
     $multipart = $this->fetchParam('files', false) ? "enctype='multipart/form-data'" : '';
     $old_values = array();
     // Fetch the content if in edit mode
     if ($edit = $this->fetchParam('edit')) {
         $old_values = Content::get($edit, false, false);
         // Throw exception if there's an invalid URL
         if (count($old_values) == 0) {
             throw new FatalException('Invalid URL for editing');
         }
         $entry_hash = Helper::encrypt($edit);
     }
     // Merge old values
     $old_values = array_merge($this->flash->get('old_values', array()), $old_values);
     // Sanitize data before returning it for display
     $old_values = array_map_deep($old_values, 'htmlspecialchars');
     // Set old values to re-populate the form
     $data = array();
     array_set($data, 'value', $old_values);
     array_set($data, 'old_values', $old_values);
     /*
     |--------------------------------------------------------------------------
     | Form HTML
     |--------------------------------------------------------------------------
     |
     | Raven writes a few hidden fields to the form to help processing data go
     | more smoothly. Form attributes are accepted as colon/piped options:
     | Example: attr="class:form|id:contact-form"
     |
     | Note: The content of the tag pair is inserted back into the template
     |
     */
     $form_id = $this->fetchParam('id', true);
     $attributes_string = '';
     if ($attr = $this->fetchParam('attr', false, null, false, false)) {
         $attributes_array = Helper::explodeOptions($attr, true);
         foreach ($attributes_array as $key => $value) {
             $attributes_string .= " {$key}='{$value}'";
         }
     }
     $html = "<form method='post' {$multipart} {$attributes_string}>\n";
     $html .= "<input type='hidden' name='hidden[raven]' value='{$form_id}' />\n";
     $html .= "<input type='hidden' name='hidden[formset]' value='{$formset}' />\n";
     $html .= "<input type='hidden' name='hidden[return]' value='{$return}' />\n";
     $html .= "<input type='hidden' name='hidden[error_return]' value='{$error_return}' />\n";
     if ($edit) {
         $html .= "<input type='hidden' name='hidden[edit]' value='{$entry_hash}' />\n";
     }
     /*
     |--------------------------------------------------------------------------
     | Hook: Form Begin
     |--------------------------------------------------------------------------
     |
     | Occurs in the middle the form allowing additional fields to be added.
     | Has access to the current fieldset. Must return HTML.
     |
     */
     $html .= Hook::run('raven', 'inside_form', 'cumulative', '');
     /*
     |--------------------------------------------------------------------------
     | Hook: Content Preparse
     |--------------------------------------------------------------------------
     |
     | Allows the modification of the tag data inside the form. Also has access
     | to the current formset.
     |
     */
     $html .= Hook::run('raven', 'content_preparse', 'replace', $this->content, $this->content);
     $html .= "</form>";
     return Parse::template($html, $data, array('statamic_view', 'callback'), $this->context);
 }