From d12a5d1afb86352af538c275aaddd44cce995f37 Mon Sep 17 00:00:00 2001 From: Fil <fil@rezo.net> Date: Sun, 18 Mar 2007 00:57:38 +0000 Subject: [PATCH] lien (bla {blabla}->url) etait casse, sauf dans le cas ou on avait un hreflang (francois) ; voir aussi le tests/propre/liens.php --- ecrire/action/instituer_article.php | 8 +++++++- ecrire/inc/instituer_article.php | 11 ++++++++++- ecrire/inc/rubriques.php | 13 +++++++++++++ ecrire/inc/texte.php | 2 +- ecrire/public/cacher.php | 12 ++++++++++++ 5 files changed, 43 insertions(+), 3 deletions(-) diff --git a/ecrire/action/instituer_article.php b/ecrire/action/instituer_article.php index c69975b2ac..5b93b059e6 100644 --- a/ecrire/action/instituer_article.php +++ b/ecrire/action/instituer_article.php @@ -26,7 +26,13 @@ function action_instituer_article_dist() { include_spip('action/editer_article'); - instituer_article($id_article, array('statut' => $statut)); + $c = array('statut' => $statut); + + // si on a envoye une 'date_posterieure', l'enregistrer + if ($d = _request('date_posterieure')) + $c['date'] = $d; + + instituer_article($id_article, $c); } diff --git a/ecrire/inc/instituer_article.php b/ecrire/inc/instituer_article.php index 522ecddf02..85101a536a 100644 --- a/ecrire/inc/instituer_article.php +++ b/ecrire/inc/instituer_article.php @@ -17,6 +17,12 @@ function inc_instituer_article_dist($id_article, $statut=-1) { if ($statut == -1) return demande_publication($id_article); + // menu de date pour les articles post-dates (plugin) + if ($statut <> 'publie' + AND $GLOBALS['meta']['post_dates'] == 'non' + AND function_exists('menu_postdates')) + list($postdates,$postdates_js) = menu_postdates(); + $res = "\n<div style='text-align: center;' id='instituer_article-$id_article'>" . "<b>" . @@ -26,7 +32,9 @@ function inc_instituer_article_dist($id_article, $statut=-1) "onchange=\"this.nextSibling.nextSibling.src='" . _DIR_IMG_PACK . "' + puce_statut(options[selectedIndex].value);" . - " setvisibility('valider_statut', 'visible');\">\n" . + " setvisibility('valider_statut', 'visible');" + . $postdates_js + . "\">\n" . "<option" . mySel("prepa", $statut) ." style='background-color: white'>" ._T('texte_statut_en_cours_redaction') ."</option>\n" . "<option" . mySel("prop", $statut) . " style='background-color: #FFF1C6'>" ._T('texte_statut_propose_evaluation') ."</option>\n" . "<option" . mySel("publie", $statut) . " style='background-color: #B4E8C5'>" ._T('texte_statut_publie') ."</option>\n" . @@ -41,6 +49,7 @@ function inc_instituer_article_dist($id_article, $statut=-1) "<input type='submit' value='"._T('bouton_valider')."' class='fondo' />" . "</span>" . aide("artstatut") + . $postdates . '</div>'; return redirige_action_auteur('instituer_article',$id_article,'articles', "id_article=$id_article", $res, " method='post'"); diff --git a/ecrire/inc/rubriques.php b/ecrire/inc/rubriques.php index e5536e7ed8..672600aec9 100644 --- a/ecrire/inc/rubriques.php +++ b/ecrire/inc/rubriques.php @@ -117,6 +117,9 @@ function calculer_rubriques() { // pour recalculer les langues utilisees sur le site include_spip('inc/lang'); calculer_langues_utilisees(); + + // on calcule la date du prochain article post-date + calculer_prochain_postdate(); } // http://doc.spip.org/@propager_les_secteurs @@ -254,6 +257,16 @@ function calcul_branche ($generation) { } } +function calculer_prochain_postdate() { + include_spip('inc/meta'); + $s = spip_query("SELECT UNIX_TIMESTAMP(date) AS ts FROM spip_articles WHERE statut='publie' AND date>"._q(date('Y-m-d H:i:s'))." ORDER BY date LIMIT 0,1"); + if ($t = spip_fetch_array($s)) + ecrire_meta('date_prochain_postdate', $t['ts']); + else + effacer_meta('date_prochain_postdate'); + ecrire_metas(); +} + // http://doc.spip.org/@cron_rubriques function cron_rubriques($t) { calculer_rubriques(); diff --git a/ecrire/inc/texte.php b/ecrire/inc/texte.php index ca8df2eda9..fcad00aa4d 100644 --- a/ecrire/inc/texte.php +++ b/ecrire/inc/texte.php @@ -1178,7 +1178,7 @@ function traiter_raccourci_lien($regs) { } // sinon c'est un italique else { - $m[1] .= '{'.$m[3].'}'; + $m[1] .= $m[4]; } } // S'il n'y a pas de hreflang sous la forme {}, ce qui suit le | diff --git a/ecrire/public/cacher.php b/ecrire/public/cacher.php index 644c03f803..1e7d72db7b 100644 --- a/ecrire/public/cacher.php +++ b/ecrire/public/cacher.php @@ -86,6 +86,18 @@ function cache_valide(&$page, $date) { AND $date < $GLOBALS['meta']['derniere_modif']) return 1; + // Apparition d'un nouvel article post-date ? + if ($GLOBALS['meta']['post_dates'] == 'non' + AND $GLOBALS['meta']['date_prochain_postdate'] + AND time() > $GLOBALS['meta']['date_prochain_postdate']) { + spip_log('Un article post-date invalide le cache'); + include_spip('inc/meta'); + include_spip('inc/rubriques'); + ecrire_meta('derniere_modif', time()); + calculer_prochain_postdate(); // fera le ecrire_metas() + return 1; + } + // Sinon comparer l'age du fichier a sa duree de cache $duree = intval($page['entetes']['X-Spip-Cache']); if ($duree == 0) #CACHE{0} -- GitLab