Skip to content
Extraits de code Groupes Projets
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
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
......@@ -33,21 +33,24 @@ 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
echo debut_grand_cadre(true);
echo "\n<div>&nbsp;</div>\n<div id='", $ancre, "'>",$r,'</div>';
echo fin_grand_cadre(true);
echo fin_page();
$commencer_page = charger_fonction('commencer_page', 'inc');
echo $commencer_page($titre, "accueil", "calendrier");
// 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);
echo fin_page();
}
}
......
......@@ -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);
......
......@@ -171,28 +171,24 @@ 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')))
$partie_cal = DEFAUT_PARTIE;
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);
if (is_null($evt)) {
if (is_null($evt)) {
$g = 'quete_calendrier_' . $type;
$evt = quete_calendrier_interval($g($annee,$mois, $jour));
quete_calendrier_interval_articles("'$annee-$mois-00'", "'$annee-$mois-1'", $evt[0]);
......@@ -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
......
......@@ -1215,33 +1215,36 @@ 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);
if (!$nb){
return http_calendrier_init('', ($type != 'periode') ? $type : 'mois', '', '', self('&'), $sinon);
}
$agenda = agenda_memo(0);
$evt = array();
foreach (($args ? $args : array_keys($agenda)) as $k) {
if (is_array($agenda[$k]))
foreach($agenda[$k] as $d => $v) {
$evt[$d] = $evt[$d] ? (array_merge($evt[$d], $v)) : $v;
spip_log("evt $nb");
if (!$nb) {
$d = array(time());
} else {
$agenda = agenda_memo(0);
$evt = array();
foreach (($args ? $args : array_keys($agenda)) as $k) {
if (is_array($agenda[$k]))
foreach($agenda[$k] as $d => $v) {
$evt[$d] = $evt[$d] ? (array_merge($evt[$d], $v)) : $v;
}
}
$d = array_keys($evt);
}
$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);
}
//
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter