예제 #1
0
      $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] );
예제 #3
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" />' ;
예제 #4
0
 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 );
  }
}