Skip to content
Extraits de code Groupes Projets
Valider 2766c8c1 rédigé par esj's avatar esj
Parcourir les fichiers

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
parent b0d506a3
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
...@@ -101,15 +101,6 @@ function spip_cron($taches = array()) { ...@@ -101,15 +101,6 @@ function spip_cron($taches = array()) {
// Un autre lock dans _DIR_SESSIONS, pour plus de securite // Un autre lock dans _DIR_SESSIONS, pour plus de securite
$lock = _DIR_SESSIONS . $tache . '.lock'; $lock = _DIR_SESSIONS . $tache . '.lock';
if (spip_touch($lock, $taches[$tache])) { 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 // preparer la tache
spip_timer('tache'); spip_timer('tache');
include_ecrire('inc_' . $tache); include_ecrire('inc_' . $tache);
......
...@@ -3252,18 +3252,15 @@ function fin_page($credits='') { ...@@ -3252,18 +3252,15 @@ function fin_page($credits='') {
debut_grand_cadre(); debut_grand_cadre();
# ici on en profite pour glisser une tache de fond # 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) { if ($spip_display == 4) {
echo "<div><a href='./?set_disp=2'>", echo "<div><a href='./?set_disp=2'>",
_T("access_interface_graphique"), _T("access_interface_graphique"),
"</a></div>"; "</a></div>";
} else { } else {
echo info_copyright(); echo info_copyright(), "<br />"._T('info_copyright_doc');
echo "<br>"._T('info_copyright_doc');
echo "</div><p>";
} }
fin_grand_cadre(); fin_grand_cadre();
......
...@@ -432,12 +432,41 @@ function spip_touch($fichier, $duree=0, $touch=true) { ...@@ -432,12 +432,41 @@ function spip_touch($fichier, $duree=0, $touch=true) {
return false; 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 // cron() : execution des taches de fond
// quand il est appele par spip_background, il est gourmand ; // quand il est appele par inc-public.php il n'est pas gourmand;
// quand il est appele par inc-public il n'est pas gourmand // quand il est appele par spip_action.php, il est gourmand
//
function cron($gourmand = false) { function cron ($gourmand=false) {
// Si on est gourmand, ou si le fichier gourmand n'existe pas // 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. // (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 // Au passage si on est gourmand on le dit aux autres
...@@ -454,7 +483,6 @@ function cron($gourmand = false) { ...@@ -454,7 +483,6 @@ function cron($gourmand = false) {
} }
// //
// Entetes les plus courants (voir inc_headers.php pour les autres) // Entetes les plus courants (voir inc_headers.php pour les autres)
// //
......
...@@ -382,7 +382,7 @@ function balise_FIN_SURLIGNE_dist($p) { ...@@ -382,7 +382,7 @@ function balise_FIN_SURLIGNE_dist($p) {
// quasiment jamais se trouver ralenti par des taches de fond un peu lentes // quasiment jamais se trouver ralenti par des taches de fond un peu lentes
// ATTENTION: cette balise efface parfois les boutons admin implicites // ATTENTION: cette balise efface parfois les boutons admin implicites
function balise_SPIP_CRON_dist ($p) { 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; $p->interdire_scripts = false;
return $p; return $p;
} }
......
<?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 !)
?>
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