Esempio n. 1
0
function agenda_memo_evt_full($date_deb=0, $date_fin=0 , $titre='', $descriptif='', $lieu='', $url='', $cal='')
{
	static $evenements = array();
	if (!$date_deb) return $evenements;
	$url=str_replace("&","&",$url);
	
	$idatedeb = date_ical(reset(explode(" ",$date_deb))." 00:00:00");
	$idatefin = date_ical(reset(explode(" ",$date_fin))." 00:00:00");
	$cal = trim($cal); // func_get_args (filtre alterner) rajoute \n !!!!
	$startday1=explode(' ',$date_deb);
	$startday1=$startday1['0'].' 00:00:00';
	$ts_startday1=strtotime($startday1);
	$ts_date_fin=strtotime($date_fin);
	$maxdays=365;
	while (($ts_startday1<=$ts_date_fin)&&($maxdays-->0))
	{
		$day=date('Y-m-d H:i:s',$ts_startday1);
		$evenements[$cal][(date_anneemoisjour($day))][] =  array(
			'CATEGORIES' => $cal,
			'DTSTART' => $idatedeb,
			'DTEND' => $idatefin,
			'DESCRIPTION' => $descriptif,
			'SUMMARY' => $titre,
			'LOCATION' => $lieu,
			'URL' => $url);
		$ts_startday1 += 26*3600; // le jour suivant : +26 h pour gerer les changements d'heure
		$ts_startday1 = mktime(0, 0, 0, date("m",$ts_startday1), 
		date("d",$ts_startday1), date("Y",$ts_startday1)); // et remise a zero de l'heure	
	}

	// toujours retourner vide pour qu'il ne se passe rien
	return "";
}
Esempio n. 2
0
function quete_calendrier_interval_rv($avant, $apres) {
	global $connect_id_auteur;
	$evenements= $auteurs = array();
	if (!$connect_id_auteur) return $evenements;
	$result=sql_select("M.id_message, M.titre, M.texte, M.date_heure, M.date_fin, M.type", "spip_messages AS M LEFT JOIN spip_auteurs_messages AS L ON (L.id_message=M.id_message)", "(L.id_auteur=$connect_id_auteur OR M.type='affich') AND M.rv='oui'  AND ((M.date_fin >= $avant OR M.date_heure >= $avant) AND M.date_heure <= $apres) AND M.statut='publie'", "M.id_message", "M.date_heure");
	while($row=sql_fetch($result)){
		$date_heure=$row["date_heure"];
		$date_fin=$row["date_fin"];
		$type=$row["type"];
		$id_message=$row['id_message'];

		if ($type=="pb")
		  $cat = 'calendrier-couleur2';
		else {
		  if ($type=="affich")
		  $cat = 'calendrier-couleur4';
		  else {
		    if ($type!="normal")
		      $cat = 'calendrier-couleur12';
		    else {
		      $cat = 'calendrier-couleur9';
		      $auteurs = array_map('array_shift', sql_allfetsel('id_auteur', 'spip_auteurs_messages', "id_message=$id_message AND id_auteur!=$connect_id_auteur"));
		    }
		  }
		}

		$jour_avant = substr($avant, 9,2);
		$mois_avant = substr($avant, 6,2);
		$annee_avant = substr($avant, 1,4);
		$jour_apres = substr($apres, 9,2);
		$mois_apres = substr($apres, 6,2);
		$annee_apres = substr($apres, 1,4);
		$ical_apres = date_anneemoisjour("$annee_apres-$mois_apres-".sprintf("%02d",$jour_apres));

		// Calcul pour les semaines a cheval sur deux mois 
 		$j = 0;
		$amj = date_anneemoisjour("$annee_avant-$mois_avant-".sprintf("%02d", $j+($jour_avant)));

		while ($amj <= $ical_apres) {
		if (!($amj == date_anneemoisjour($date_fin) AND preg_match(",00:00:00,", $date_fin)))  // Ne pas prendre la fin a minuit sur jour precedent
			$evenements[$amj][$id_message]=
			  array(
				'URL' => generer_url_ecrire("message","id_message=$id_message"),
				'DTSTART' => date_ical($date_heure),
				'DTEND' => date_ical($date_fin),
				'DESCRIPTION' => $row['texte'],
				'SUMMARY' => $row['titre'],
				'CATEGORIES' => $cat,
				'ATTENDEE' => $auteurs);
			
			$j ++; 
			$ladate = date("Y-m-d",mktime (1,1,1,$mois_avant, ($j + $jour_avant), $annee_avant));
			
			$amj = date_anneemoisjour($ladate);

		}

	}
  return $evenements;
}
Esempio n. 3
0
function agenda_memo($date=0 , $descriptif='', $titre='', $url='', $cal='')
{
  static $agenda = array();
  if (!$date) return $agenda;
  $idate = date_ical($date);
  $cal = trim($cal); // func_get_args (filtre alterner) rajoute \n !!!!
  $agenda[$cal][(date_anneemoisjour($date))][] =  array(
			'CATEGORIES' => $cal,
			'DTSTART' => $idate,
			'DTEND' => $idate,
                        'DESCRIPTION' => texte_script($descriptif),
                        'SUMMARY' => texte_script($titre),
                        'URL' => $url);
  // toujours retourner vide pour qu'il ne se passe rien
  return "";
}
Esempio n. 4
0
function quete_calendrier_interval_rv($avant, $apres)
{
    include_spip('inc/session');
    $connect_id_auteur = session_get('id_auteur');
    $evenements = array();
    if (!$connect_id_auteur) {
        return $evenements;
    }
    $result = sql_select("M.id_message, M.titre, M.texte, M.date_heure, M.date_fin, M.type", "spip_messages AS M LEFT JOIN spip_auteurs_liens AS L ON (L.id_objet=M.id_message)", "((L.objet='message' AND (L.id_auteur={$connect_id_auteur} OR M.type='affich')) OR (L.objet IS NULL AND M.id_auteur={$connect_id_auteur} AND " . sql_in('M.type', array('pb', 'affich')) . "))" . " AND M.rv='oui' AND ((M.date_fin >= {$avant} OR M.date_heure >= {$avant}) AND M.date_heure <= {$apres}) AND M.statut='publie'", "M.id_message", "M.date_heure");
    while ($row = sql_fetch($result)) {
        $date_heure = $row["date_heure"];
        $date_fin = $row["date_fin"];
        $type = $row["type"];
        $id_message = $row['id_message'];
        if ($type == "pb") {
            $cat = 'calendrier-couleur2';
        } else {
            if ($type == "affich") {
                $cat = 'calendrier-couleur4';
            } else {
                if ($type != "normal") {
                    $cat = 'calendrier-couleur12';
                } else {
                    $cat = 'calendrier-couleur9';
                    $auteurs = array_map('array_shift', sql_allfetsel("nom", "spip_auteurs AS A LEFT JOIN spip_auteurs_liens AS L ON L.id_auteur=A.id_auteur", "(L.objet='message' AND L.id_objet={$id_message} AND (A.id_auteur!={$connect_id_auteur}))"));
                }
            }
        }
        $jour_avant = substr($avant, 9, 2);
        $mois_avant = substr($avant, 6, 2);
        $annee_avant = substr($avant, 1, 4);
        $jour_apres = substr($apres, 9, 2);
        $mois_apres = substr($apres, 6, 2);
        $annee_apres = substr($apres, 1, 4);
        $ical_apres = date_anneemoisjour("{$annee_apres}-{$mois_apres}-" . sprintf("%02d", $jour_apres));
        // Calcul pour les semaines a cheval sur deux mois
        $j = 0;
        $amj = date_anneemoisjour("{$annee_avant}-{$mois_avant}-" . sprintf("%02d", $j + $jour_avant));
        while ($amj <= $ical_apres) {
            if (!($amj == date_anneemoisjour($date_fin) and preg_match(",00:00:00,", $date_fin))) {
                // Ne pas prendre la fin a minuit sur jour precedent
                $evenements[$amj][$id_message] = array('URL' => generer_url_ecrire("message", "id_message={$id_message}"), 'DTSTART' => date_ical($date_heure), 'DTEND' => date_ical($date_fin), 'DESCRIPTION' => $row['texte'], 'SUMMARY' => $row['titre'], 'CATEGORIES' => $cat, 'ATTENDEE' => count($auteurs) == 0 ? '' : join($auteurs, ", "));
            }
            $j++;
            $ladate = date("Y-m-d", mktime(1, 1, 1, $mois_avant, $j + $jour_avant, $annee_avant));
            $amj = date_anneemoisjour($ladate);
        }
    }
    return $evenements;
}
Esempio n. 5
0
function sql_calendrier_interval_rv($avant, $apres)
{
    /*
    	// Debug info
    	echo "<!-- sql_calendrier_interval_rv($avant, $apres)";
    */
    global $connect_id_auteur;
    $evenements = array();
    if (!$connect_id_auteur) {
        return $evenements;
    }
    /* [ML] 2007-01-16: "group by a.id_app" was commented out because in
    		theory there should not be multiple identical rows for (id_app, id_author)
    		but who knows, there are mysterious bugs sometimes.. 
    		NOTE: if someone adds the 'group by', dont forget to group by on all 'select'
    		fields, otherwise postgresql panics. */
    $q = "SELECT a.*\n\t\t\t\tFROM lcm_app as a, lcm_author_app as ap\n\t\t\t\tWHERE (ap.id_author = " . $GLOBALS['author_session']['id_author'] . "\n\t\t\t\tAND a.id_app = ap.id_app\n\t\t\t\tAND a.hidden != 'Y'\n\t\t\t\tAND ((a.end_time >= {$avant} OR a.start_time >= {$avant}) AND a.start_time <= {$apres}))\n\t" . "\n\t\t\t\tORDER BY a.start_time";
    $result = lcm_query($q);
    while ($row = lcm_fetch_array($result)) {
        $date_heure = $row["start_time"];
        $date_fin = $row["end_time"];
        $type = $row["type"];
        $id_message = $row['id_app'];
        $cat = 9;
        $auteurs = array();
        $result_aut = lcm_query("SELECT au.name_first, au.name_last\n\t\t\t\t\tFROM\tlcm_author as au, lcm_author_app as ap\n\t\t\t\t\tWHERE\t(ap.id_app = {$id_message}\n\t\t\t\t\tAND\tau.id_author != " . $GLOBALS['author_session']['id_author'] . "\n\t\t\t\t\tAND\tap.id_author = au.id_author)");
        while ($row_auteur = lcm_fetch_array($result_aut)) {
            $auteurs[] = get_person_name($row_auteur);
        }
        $jour_avant = substr($avant, 9, 2);
        $mois_avant = substr($avant, 6, 2);
        $annee_avant = substr($avant, 1, 4);
        $jour_apres = substr($apres, 9, 2);
        $mois_apres = substr($apres, 6, 2);
        $annee_apres = substr($apres, 1, 4);
        $ical_apres = sql_calendrier_jour_ical("{$annee_apres}-{$mois_apres}-" . sprintf("%02d", $jour_apres));
        // Calcul pour les semaines a cheval sur deux mois
        $j = 0;
        $amj = sql_calendrier_jour_ical("{$annee_avant}-{$mois_avant}-" . sprintf("%02d", $j + $jour_avant));
        while ($amj <= $ical_apres) {
            if (!($amj == sql_calendrier_jour_ical($date_fin) and preg_match("/00:00:00/", $date_fin))) {
                // Ne pas prendre la fin a minuit sur jour precedent
                $evenements[$amj][$id_message] = array('URL' => "app_det.php?app={$id_message}", 'DTSTART' => date_ical($date_heure), 'DTEND' => date_ical($date_fin), 'DESCRIPTION' => $row['description'], 'SUMMARY' => $row['title'], 'CATEGORIES' => $cat, 'ATTENDEE' => count($auteurs) == 0 ? '' : join($auteurs, ", "));
            }
            $j++;
            $ladate = date("Y-m-d", mktime(1, 1, 1, $mois_avant, $j + $jour_avant, $annee_avant));
            $amj = sql_calendrier_jour_ical($ladate);
        }
    }
    /*
      // Debug info
      echo " = ";
      var_dump($evenements);
      echo " -->\n";
    */
    return $evenements;
}