$listing_eleves = implode(',',$tab_notif); $listing_parents = DB_STRUCTURE_NOTIFICATION::DB_lister_parents_listing_id($listing_eleves); $listing_users = ($listing_parents) ? $listing_eleves.','.$listing_parents : $listing_eleves ; $listing_abonnes = DB_STRUCTURE_NOTIFICATION::DB_lister_destinataires_listing_id( $abonnement_ref , $listing_users ); if($listing_abonnes) { $notification_contenu = 'Bilan officiel disponible : ['.$classe_nom.'] ['.$tab_types[$BILAN_TYPE]['titre'].'] ['.$periode_nom.'].'."\r\n\r\n"; $notification_contenu.= 'Y accéder :'."\r\n".Sesamail::adresse_lien_profond('page=officiel_voir_archive'); $tab_abonnes = DB_STRUCTURE_NOTIFICATION::DB_lister_detail_abonnes_envois( $listing_abonnes , $listing_eleves , $listing_parents ); foreach($tab_abonnes as $abonne_id => $tab_abonne) { foreach($tab_abonne as $eleve_id => $notification_intro_eleve) { if( ( $is_acces_parent && $notification_intro_eleve ) || ( $is_acces_enfant && !$notification_intro_eleve ) ) { DB_STRUCTURE_NOTIFICATION::DB_ajouter_log_attente( $abonne_id , $abonnement_ref , 0 , NULL , $notification_contenu ); } } } } } } // Retour exit('ok'); } // //////////////////////////////////////////////////////////////////////////////////////////////////// // IMPRIMER ETAPE 3/4 - Le PDF complet est généré ; on découpe individuellement les bilans par responsables puis on zippe l'ensemble // //////////////////////////////////////////////////////////////////////////////////////////////////// if( ($ACTION=='imprimer') && ($etape==3) )
$notification_contenu.= 'Y accéder :'."\r\n".$adresse_lien_profond.$devoir_saisie; } $tab_item_infos = array(); $tab_abonnes = explode(',',$listing_abonnes); foreach($tab_abonnes as $abonne_id) { foreach($tab_item_for_user[$abonne_id] as $item_id) { if(!isset($tab_item_infos[$item_id])) { // Récupérer la référence et le nom de l'item $DB_ROW = DB_STRUCTURE_DEMANDE::DB_recuperer_item_infos($item_id); $tab_item_infos[$item_id] = $DB_ROW['item_ref'].' "'.$DB_ROW['item_nom'].'"'; } $notification_intro = 'Demande '.$tab_item_infos[$item_id].' '; DB_STRUCTURE_NOTIFICATION::DB_ajouter_log_attente( $abonne_id , $abonnement_ref , $devoir_saisie , NULL , $notification_intro.$notification_contenu ); } } } // Retour exit('ok'); } // //////////////////////////////////////////////////////////////////////////////////////////////////// // Actualiser un score // //////////////////////////////////////////////////////////////////////////////////////////////////// if( ($action=='actualiser_score') && ($nb_demandes==1) && ($nb_users==1) && ($nb_items==1) && ($score>-2) ) { $tab_devoirs = array(); $DB_TAB = DB_STRUCTURE_DEMANDE::DB_lister_result_eleve_item( $tab_user_id[0] , $tab_item_id[0] );
DB_STRUCTURE_NOTIFICATION::DB_supprimer_log_attente( $abonnement_ref_edition , $devoir_id ); $listing_eleves = ($type=='selection') ? implode(',',$tab_eleves) : DB_STRUCTURE_PROFESSEUR::DB_recuperer_listing_eleves_id( $groupe_type , $groupe_id ) ; $listing_parents = DB_STRUCTURE_NOTIFICATION::DB_lister_parents_listing_id($listing_eleves); $listing_users = ($listing_parents) ? $listing_eleves.','.$listing_parents : $listing_eleves ; $listing_abonnes = DB_STRUCTURE_NOTIFICATION::DB_lister_destinataires_listing_id( $abonnement_ref_edition , $listing_users ); if($listing_abonnes) { $adresse_lien_profond = Sesamail::adresse_lien_profond('page=evaluation_voir&devoir_id='.$devoir_id.'&eleve_id='); $notification_contenu = 'Évaluation "'.$description.'" du '.$date.' paramétrée par '.afficher_identite_initiale($_SESSION['USER_NOM'],FALSE,$_SESSION['USER_PRENOM'],TRUE,$_SESSION['USER_GENRE']).'.'."\r\n\r\n"; $tab_abonnes = DB_STRUCTURE_NOTIFICATION::DB_lister_detail_abonnes_envois( $listing_abonnes , $listing_eleves , $listing_parents ); foreach($tab_abonnes as $abonne_id => $tab_abonne) { foreach($tab_abonne as $eleve_id => $notification_intro_eleve) { $notification_lien = 'Voir le détail :'."\r\n".$adresse_lien_profond.$eleve_id; DB_STRUCTURE_NOTIFICATION::DB_ajouter_log_attente( $abonne_id , $abonnement_ref_edition , $devoir_id , $notification_date , $notification_intro_eleve.$notification_contenu.$notification_lien ); } } } } // Afficher le retour $date_visible = ($date_visible==$date) ? 'identique' : $date_visible ; $date_autoeval = ($date_autoeval=='00/00/0000') ? 'sans objet' : $date_autoeval ; $ref = $devoir_id.'_'.strtoupper($groupe_type{0}).$groupe_id; $cs = ($nb_items>1) ? 's' : '' ; $us = ($nb_eleves>1) ? 's' : '' ; $eleves_bulle = (($type=='selection') && ($nb_eleves<10)) ? ' <img alt="" src="./_img/bulle_aide.png" width="16" height="16" class="bulle_eleves" />' : '' ; $profs_nombre = ($nb_profs) ? ($nb_profs+1).' profs' : 'non' ; $profs_bulle = ($nb_profs && ($nb_profs<10)) ? ' <img alt="" src="./_img/bulle_aide.png" width="16" height="16" class="bulle_profs" />' : '' ; $image_sujet = ($doc_sujet) ? '<a href="'.$doc_sujet.'" target="_blank" class="no_puce"><img alt="sujet" src="./_img/document/sujet_oui.png" title="Sujet disponible." /></a>' : '<img alt="sujet" src="./_img/document/sujet_non.png" />' ; $image_corrige = ($doc_corrige) ? '<a href="'.$doc_corrige.'" target="_blank" class="no_puce"><img alt="corrigé" src="./_img/document/corrige_oui.png" title="Corrigé disponible." /></a>' : '<img alt="corrigé" src="./_img/document/corrige_non.png" />' ;
DB_STRUCTURE_MESSAGE::DB_modifier_message( $message_id , $_SESSION['USER_ID'] , $date_debut_mysql , $date_fin_mysql , $message_contenu ); DB_STRUCTURE_MESSAGE::DB_modifier_message_destinataires( $message_id , $tab_destinataires_valides , 'substituer' ); // Notifications (rendues visibles ultérieurement) if(!$mode_discret) { $tab_user_id = DB_STRUCTURE_MESSAGE::DB_recuperer_user_id_from_destinataires( $tab_destinataires_valides ); DB_STRUCTURE_NOTIFICATION::DB_supprimer_log_attente( $abonnement_ref , $message_id ); $listing_abonnes = DB_STRUCTURE_NOTIFICATION::DB_lister_destinataires_listing_id( $abonnement_ref , implode(',',$tab_user_id) ); if($listing_abonnes) { $notification_date = ( TODAY_MYSQL < $date_debut_mysql ) ? $date_debut_mysql : NULL ; $notification_contenu = 'Message de '.afficher_identite_initiale($_SESSION['USER_NOM'],FALSE,$_SESSION['USER_PRENOM'],TRUE,$_SESSION['USER_GENRE']).' :'."\r\n\r\n".make_lien($message_contenu,'mail')."\r\n"; $tab_abonnes = explode(',',$listing_abonnes); foreach($tab_abonnes as $abonne_id) { DB_STRUCTURE_NOTIFICATION::DB_ajouter_log_attente( $abonne_id , $abonnement_ref , $message_id , $notification_date , $notification_contenu ); } } } // Afficher le retour $destinataires_nombre = ($nb_destinataires_valides>1) ? $nb_destinataires_valides.' sélections' : $nb_destinataires_valides.' sélection' ; echo'<td>'.$date_debut_fr.'</td>'; echo'<td>'.$date_fin_fr.'</td>'; echo'<td>'.$destinataires_nombre.'</td>'; echo'<td>'.html(afficher_texte_tronque($message_contenu,60)).'</td>'; echo'<td class="nu">'; echo '<q class="modifier" title="Modifier ce message."></q>'; echo '<q class="supprimer" title="Supprimer ce message."></q>'; echo'</td>'; echo'<SCRIPT>'; echo'tab_destinataires['.$message_id.']="'.implode(',',$tab_destinataires_valides).'";';
/** * Modifier l'enregistrement d'une notification en attente (remplacer, ou compléter). * * @param int $user_id * @param string $abonnement_ref * @param string $notification_attente_id * @param string $notification_date éventuellement NULL * @param string $notification_contenu * @param string $mode_maj 'remplacer' | 'compléter' * @param bool $sep Si $mode_maj='compléter', présence d'une séparation ou pas * @return void */ public static function DB_modifier_log_attente( $user_id , $abonnement_ref , $notification_attente_id , $notification_date , $notification_contenu , $mode_maj , $sep=FALSE ) { // On cherche si une autre notification du même type est en attente $DB_SQL = 'SELECT notification_id '; $DB_SQL.= 'FROM sacoche_notification '; $DB_SQL.= 'WHERE user_id=:user_id AND abonnement_ref=:abonnement_ref AND notification_attente_id=:notification_attente_id AND notification_statut=:notification_statut '; $DB_SQL.= 'LIMIT 1 '; $DB_VAR = array( ':user_id' => $user_id, ':abonnement_ref' => $abonnement_ref, ':notification_attente_id' => $notification_attente_id, ':notification_statut' => 'attente', ); $notification_id = DB::queryOne(SACOCHE_STRUCTURE_BD_NAME , $DB_SQL , $DB_VAR); if(!$notification_id) { // Ajout DB_STRUCTURE_NOTIFICATION::DB_ajouter_log_attente( $user_id , $abonnement_ref , $notification_attente_id , $notification_date , $notification_contenu ); } elseif($mode_maj=='remplacer') { // Remplacement DB_STRUCTURE_NOTIFICATION::DB_remplacer_log_attente( $notification_id , $notification_date , $notification_contenu ); } elseif($mode_maj=='compléter') { // Complément DB_STRUCTURE_NOTIFICATION::DB_completer_log_attente( $notification_id , $notification_date , $notification_contenu , $sep ); } }