From 2766c8c17d9298bcdffec240b36da81d5089213b Mon Sep 17 00:00:00 2001 From: "Committo,Ergo:sum" <esj@rezo.net> Date: Tue, 10 Jan 2006 09:21:17 +0000 Subject: [PATCH] remplacement de spip_background.php3 par spip_action.php?action=cron. Au passage, retrait de la palanquee d'espaces envoyee dans certains cas par spip_cron, le but recherche n'etant pas toujours atteint --- ecrire/inc_cron.php3 | 9 --------- ecrire/inc_presentation.php3 | 9 +++------ ecrire/inc_utils.php | 38 +++++++++++++++++++++++++++++++----- inc-balises.php3 | 2 +- spip_background.php3 | 33 ------------------------------- 5 files changed, 37 insertions(+), 54 deletions(-) delete mode 100644 spip_background.php3 diff --git a/ecrire/inc_cron.php3 b/ecrire/inc_cron.php3 index 1959c42b09..ebbf67534c 100644 --- a/ecrire/inc_cron.php3 +++ b/ecrire/inc_cron.php3 @@ -101,15 +101,6 @@ function spip_cron($taches = array()) { // Un autre lock dans _DIR_SESSIONS, pour plus de securite $lock = _DIR_SESSIONS . $tache . '.lock'; if (spip_touch($lock, $taches[$tache])) { - - // essayer d'eviter la lenteur d'affichage en envoyant 16 ko de - // donnees invisibles (aleatoires pour contrer la compression) - if (!$GLOBALS['flag_preserver']) { - $b = array(' ',"\t", "\n"); - for ($i=0;$i<16*1024;$i++) echo $b[rand(0,2)]; - } - flush(); ob_flush(); - // preparer la tache spip_timer('tache'); include_ecrire('inc_' . $tache); diff --git a/ecrire/inc_presentation.php3 b/ecrire/inc_presentation.php3 index bb355410c2..74fdeb154a 100644 --- a/ecrire/inc_presentation.php3 +++ b/ecrire/inc_presentation.php3 @@ -3252,18 +3252,15 @@ function fin_page($credits='') { debut_grand_cadre(); # ici on en profite pour glisser une tache de fond - echo "<div align='right' class='verdana2' style='background: url(\"", - generer_url_public('spip_background'), - "\");'>"; + + echo generer_spip_cron(); if ($spip_display == 4) { echo "<div><a href='./?set_disp=2'>", _T("access_interface_graphique"), "</a></div>"; } else { - echo info_copyright(); - echo "<br>"._T('info_copyright_doc'); - echo "</div><p>"; + echo info_copyright(), "<br />"._T('info_copyright_doc'); } fin_grand_cadre(); diff --git a/ecrire/inc_utils.php b/ecrire/inc_utils.php index 84c912c347..64d00faa2c 100644 --- a/ecrire/inc_utils.php +++ b/ecrire/inc_utils.php @@ -432,12 +432,41 @@ function spip_touch($fichier, $duree=0, $touch=true) { return false; } +// Pour executer des taches de fond discretement, on utilise background-image +// car contrairement a un iframe vide, les navigateurs ne diront pas qu'ils +// n'ont pas fini de charger, c'est plus rassurant. +// C'est aussi plus discret qu'un <img> sous un navigateur non graphique. +// Cette fonction est utilisee pour l'espace prive (cf inc_presentation) +// et pour l'espace public (cf #SPIP_CRON dans inc_balise) + +function generer_spip_cron() { + return '<div align="right" class="verdana2" style="background-image: url(\'' . + generer_url_public('spip_action.php', 'action=cron') . + '\');">'; +} + +// envoi de l'image demandee dans le code ci-dessus + +function spip_action_cron() { + + $image = pack("H*", "47494638396118001800800000ffffff00000021f90401000000002c0000000018001800000216848fa9cbed0fa39cb4da8bb3debcfb0f86e248965301003b"); + header("Content-Type: image/gif"); + header("Content-Length: ".strlen($image)); + header("Cache-Control: no-cache,no-store"); + header("Pragma: no-cache"); + header("Connection: close"); + echo $image; + flush(); + cron (1); +} + // // cron() : execution des taches de fond -// quand il est appele par spip_background, il est gourmand ; -// quand il est appele par inc-public il n'est pas gourmand -// -function cron($gourmand = false) { +// quand il est appele par inc-public.php il n'est pas gourmand; +// quand il est appele par spip_action.php, il est gourmand + +function cron ($gourmand=false) { + // Si on est gourmand, ou si le fichier gourmand n'existe pas // (ou est trop vieux -> 60 sec), on va voir si un cron est necessaire. // Au passage si on est gourmand on le dit aux autres @@ -454,7 +483,6 @@ function cron($gourmand = false) { } - // // Entetes les plus courants (voir inc_headers.php pour les autres) // diff --git a/inc-balises.php3 b/inc-balises.php3 index 7ca468e986..81f5abf3eb 100644 --- a/inc-balises.php3 +++ b/inc-balises.php3 @@ -382,7 +382,7 @@ function balise_FIN_SURLIGNE_dist($p) { // quasiment jamais se trouver ralenti par des taches de fond un peu lentes // ATTENTION: cette balise efface parfois les boutons admin implicites function balise_SPIP_CRON_dist ($p) { - $p->code = "'<div style=\\'position: absolute; background-image: url(\"spip_background" . _EXTENSION_PHP . "\"); height: 1px; width: 1px;\\'></div>'"; + $p->code = '"' . str_replace('"', '\"', (generer_spip_cron())) . '"'; $p->interdire_scripts = false; return $p; } diff --git a/spip_background.php3 b/spip_background.php3 deleted file mode 100644 index 9772dad81b..0000000000 --- a/spip_background.php3 +++ /dev/null @@ -1,33 +0,0 @@ -<?php - -/***************************************************************************\ - * SPIP, Systeme de publication pour l'internet * - * * - * Copyright (c) 2001-2006 * - * Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James * - * * - * Ce programme est un logiciel libre distribue sous licence GNU/GPL. * - * Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne. * -\***************************************************************************/ - - -// Du cote de la page HTML, utiliser un background-image en feuille de style -// plutot qu'un <img>, c'est plus discret notamment sous navigateur texte -$image = pack("H*", "47494638396118001800800000ffffff00000021f90401000000002c0000000018001800000216848fa9cbed0fa39cb4da8bb3debcfb0f86e248965301003b"); - -Header("Content-Type: image/gif"); -Header("Content-Length: ".strlen($image)); -Header("Cache-Control: no-cache,no-store"); -Header("Pragma: no-cache"); -Header("Connection: close"); - -echo $image; - -flush(); - -include("ecrire/inc_version.php3"); - -$GLOBALS['flag_preserver'] = true; // pas d'espaces pour le flush() -cron(1); // acces gourmand (on veut bosser, nous, pas comme inc-public !) - -?> -- GitLab