Valider 1b54c648 rédigé par esj's avatar esj
Parcourir les fichiers

La fonction principale de l'agenda n'a pas à consulter directement les...

La fonction principale de l'agenda n'a pas à consulter directement les variables d'URL, on déporte dans les appelants. Pour l'espace privé, c'est bouclé. Pour l'espace public (les squelettes {{{agenda_}}}*{{{.html}}}) c'est encore insuffisant: c'est le filtre {{{agenda_affiche}}} qui consulte les variables d'URL, alors que les squelettes devraient les lui fournir. A finir, mais la signature de ce filtre devra changer.
parent 4aa5e2af
Chargement en cours
Chargement en cours
Chargement en cours
Chargement en cours
+13 −10
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -33,17 +33,20 @@ function exec_calendrier_dist()
  else {
	$titre = _T('titre_page_calendrier',
		    array('nom_mois' => nom_mois($date), 'annee' => annee($date)));
	$type = 'mois';
  }
  $ancre = 'calendrier-1';

  $r = http_calendrier_init('', $type, '','',generer_url_ecrire('calendrier', ($type ? "type=$type" : '')) . "#$ancre");
  $time = array(_request('jour'), _request('mois'), _request('annee'));
  $r = generer_url_ecrire('calendrier', "type=$type") . "#$ancre";
  $r = http_calendrier_init($time, $type, _request('echelle'), _request('partie_cal'), $r);

  if (_AJAX) {
    ajax_retour($r);
  } else {
	$commencer_page = charger_fonction('commencer_page', 'inc');
	echo $commencer_page($titre, "accueil", "calendrier");
		echo barre_onglets("calendrier", "calendrier"); // ne produit rien par defaut, mais est utilisee par le plugin agenda
  // ne produit rien par defaut, mais est utilisee par le plugin agenda
	echo barre_onglets("calendrier", "calendrier"); 
	echo debut_grand_cadre(true);
	echo "\n<div>&nbsp;</div>\n<div id='", $ancre, "'>",$r,'</div>';
	echo fin_grand_cadre(true);
+1 −2
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -302,7 +302,6 @@ function http_affiche_message($id_message, $expediteur, $statut, $type, $texte,
// http://doc.spip.org/@exec_affiche_message_dist
function exec_affiche_message_dist($id_message, $cherche_auteur, $forcer_dest)
{
  global $echelle, $partie_cal;
  $row = sql_fetsel("*", "spip_messages", "id_message=$id_message");
  if ($row) {
	$id_message = $row['id_message'];
@@ -348,7 +347,7 @@ function exec_affiche_message_dist($id_message, $cherche_auteur, $forcer_dest)
		echo creer_colonne_droite('', true);	

		echo http_calendrier_ics_titre($lannee,$lemois,$lejour,generer_url_ecrire('calendrier'));
		echo http_calendrier_ics($lannee,$lemois, $lejour, $echelle, $partie_cal, 90, array($sh, $ah));
		echo http_calendrier_ics($lannee,$lemois, $lejour, '', '', 90, array($sh, $ah));
	}

	echo debut_droite('', true);
+12 −16
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -171,24 +171,20 @@ function calendrier_height ($heure, $heurefin, $debut, $fin, $dimheure, $dimjour
//

// http://doc.spip.org/@http_calendrier_init
function http_calendrier_init($time='', $type='mois', $lechelle='', $lpartie_cal='', $script='', $evt=null)
function http_calendrier_init($time='', $type='mois', $echelle='', $partie_cal='', $script='', $evt=null)
{
	if (!$time) 
	  {
		$mindate = ($j=_request('jour')) + ($m=_request('mois')) + ($a=_request('annee'));  
  		if ($mindate)
			$time = mktime(0,0,0, $m, $j, $a);
  		else $time = time();
	if (is_array($time)) {
		list($j,$m,$a) = $time;
		if ($j+$m+$a) $time = @mktime(0,0,0, $m, $j, $a);
	}
	if (!is_numeric($time)) $time = time();

	if (!$type) $type ='mois'; // ca suffit pas, l'entete
	$jour = date("d",$time);
	$mois = date("m",$time);
	$annee = date("Y",$time);
	if (!$lechelle) $lechelle = _request('echelle');

	if (!$lpartie_cal) 
		if (!($lpartie_cal = _request('partie_cal')))
        if (!$echelle = intval($echelle)) $echelle = DEFAUT_D_ECHELLE;
        if (!is_string($type) OR !preg_match('/^\w+$/', $type)) $type ='mois';
        if (!is_string($partie_cal) OR !preg_match('/^\w+$/', $partie_cal)) 
                $partie_cal =  DEFAUT_PARTIE;
	list($script, $ancre) = 
	  calendrier_retire_args_ancre($script); 
@@ -201,7 +197,7 @@ function http_calendrier_init($time='', $type='mois', $lechelle='', $lpartie_cal
	}
	$f = 'http_calendrier_' . $type;
	if (!function_exists($f)) $f = 'http_calendrier_mois';
	return $f($annee, $mois, $jour, $lechelle, $lpartie_cal, $script, $ancre, $evt);
	return $f($annee, $mois, $jour, $echelle, $partie_cal, $script, $ancre, $evt);
}

# affichage d'un calendrier de plusieurs semaines
+19 −16
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -1215,18 +1215,22 @@ function agenda_memo($date=0 , $descriptif='', $titre='', $url='', $cal='')
// et affiche selon le type les elements indexes par N dans ce tableau.
// Si le suite de noms est vide, tout le tableau est pris
// Ces noms N sont aussi des classes CSS utilisees par http_calendrier_init
// Cette fonction recupere aussi par _request les parametres
// jour, mois, annee, echelle, partie_cal (a ameliorer)

// http://doc.spip.org/@agenda_affiche
function agenda_affiche($i)
{
	include_spip('inc/agenda');
	$args = func_get_args();
	$nb = array_shift($args); // nombre d'evenements (on pourrait l'afficher)
	$sinon = array_shift($args);
	// date ou nombre d'evenements (on pourrait l'afficher)
	$nb = array_shift($args); 
	$evt = array_shift($args);
	$type = array_shift($args);
		spip_log("evt $nb");
	if (!$nb) { 
		return http_calendrier_init('', ($type != 'periode') ? $type : 'mois', '', '', self('&'), $sinon);
	}	
		$d = array(time());
	} else {
		$agenda = agenda_memo(0);
		$evt = array();
		foreach (($args ? $args : array_keys($agenda)) as $k) {  
@@ -1236,12 +1240,11 @@ function agenda_affiche($i)
				}
		}
		$d = array_keys($evt);

	}
	if (count($d)){
		$mindate = min($d);
		$start = strtotime($mindate);
	}
	else {  
	} else {  
		$mindate = ($j=_request('jour')) * ($m=_request('mois')) * ($a=_request('annee'));  
  		if ($mindate)
			$start = mktime(0,0,0, $m, $j, $a);
@@ -1256,7 +1259,7 @@ function agenda_affiche($i)
		$evt = array('', $evt, $min, $max);
		$type = 'mois';
	}
	return http_calendrier_init($start, $type, '', '', self('&'), $evt);
	return http_calendrier_init($start, $type,  _request('echelle'), _request('partie_cal'), self('&'), $evt);
}

//