Skip to content
Extraits de code Groupes Projets
Bifurcation depuis spip / spip
20247 validations de retard le dépôt en amont.
  • Fil's avatar
    988f8362
    @file_exists() · 988f8362
    Fil a rédigé
    car certains hébergeurs envoient des wrning quand on teste un fichier inexistant (!!)
    988f8362
    Historique
    @file_exists()
    Fil a rédigé
    car certains hébergeurs envoient des wrning quand on teste un fichier inexistant (!!)
lagaffe.php3 3,53 Kio
<?php

# generateur automatique d'un squelette de test
# le repertoire des squelettes doit etre accessibles en ecriture

# pour ne pas etre log automatiquement lors du test de balises FORMULAIRE
# demander au client de tuer son cookie et de rappeler ce script aussitot
$url = $_SERVER['REQUEST_URI'];
if (!strpos($url,'cookie_killed='))
  {
    setcookie("", "", time()-3600);
    header("Location: $url" . 
	   (strpos($url,'?') ? '&' : '?') .
	   'cookie_killed=oui');
    exit;
    } 

include("inc-compilo-api.php3");
include("inc-boucles.php3");
include("inc-balises.php3");
include("ecrire/inc_serialbase.php3");


# dcommenter au besoin, mais faire attention au double chargement.
#if (@file_exists("mes_fonctions.php3")) include("mes_fonctions.php3");

function dispose_boucle($nom, $corps, $criteres, $avant, $apres, $sinon)
{
  return
    ($avant ? "<B_$nom>$avant" : '') .
    "<BOUCLE_$nom$criteres>$corps</BOUCLE_$nom>" .
    ($apres ? "$apres</B_$nom>" : '') .
    ($sinon ? "$sinon<//B_$nom>" : '');
}

function dispose_champs($type)
{
  $corps = '';
  $p = new Champ;
  $p->id_boucle = '';
  $p->boucles = '';
  $p->id_mere = '';
  $p->etoile = false; # le + dur
  $p->documents = true; # le + dur
  $p->statut = 'html';
  $p->type_requete = '';
  $p->code ='';
  global $tables_principales;
  foreach($tables_principales[$type]['field'] as $n => $t) {
    $n = strtoupper($n);
    $corps .= "\n\t<tr><td>" . $n . "</td><td>#$n</td></tr>";
    $p->nom_champ = $n;
    if (champs_traitements($p))
      $corps .= "\n\t<tr><td>" . $n . "*</td><td>#$n*</td></tr>";
  }
  return $corps . "\n";
}

function table_nulle($nom, $type) {
  return
    ("\n<center>table $type " .
     (function_exists('boucle_' . $nom . '_dist') ? 'vide' : 'inconnue') .
     "</center>\n");
}

$res = '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html lang="fr">
<head><title>Lagaffe</title></head><body>
';
#$res .= "<b>url: $url</b><br>";
$la_semantique_folle_a_encore_frappe = $table_des_tables;

foreach($table_des_tables as $k => $v)
{
  $nom = strtoupper($k);
  $criteres = "($nom){0,1}";
  $les_champs = dispose_champs($v);
  $corps = $les_champs;

  // faire toute la combinatoire dpasse les 30 secondes sur un G4  1.33
  // on ne fait que a du coup.

  if ($k == 'rubriques')
    {

  foreach($la_semantique_folle_a_encore_frappe as $k2 => $v2)
    {
      if ($k2 != $k)
	{
	  $nom2 = strtoupper($k2);
	  $nomdouble = $nom .'_englobant_' . $nom2;
	  $criteres2 = "($nom2){0,1}";
	  $corps .= "\n" .
	    dispose_boucle($nomdouble,
			   $les_champs,
			   $criteres2,
			   ("\n<table border='1' width='100%'>\n" .
			    "<tr><td colspan=2 align=center> BOUCLE $nomdouble $criteres2</td></tr>\n"),
			   "\n</table>\n",
			   table_nulle($k2, $nom2));
	}
    }
    }
  $res .= "\n" .
    dispose_boucle($nom, 
		   $corps,
		   $criteres,
		   ("\n<table border='1' width='100%'>\n" .
		    "<tr><td colspan=2 align=center> BOUCLE $nom $criteres</td></tr>\n"),
		   "\n</table>\n",
		   table_nulle($k, $nom)) .
    "\n<br><hr><br>\n";
}

$fond = "lagaffe";
$nom = $GLOBALS['dossier_squelettes'] . $fond. ".html";
if (!($f = fopen($nom, 'w')))
  {if (function_exists("php_sapi_name")  AND eregi("cgi", @php_sapi_name()))
      Header("Status: 503");
    else Header("HTTP/1.0 Service Unavailable");
    echo ("impossible d'crire le fichier de tests $nom");
    exit;
  }
fwrite($f, $res);
fwrite($f, '<INCLUDE(casse-noisettes.php3)>');
fclose($f);

$flag_dynamique = true;
$delais = 0;

include ("inc-public.php3");
$res .= "</body></html>";
?>