Proposer une amélioration de commentaire

Le commentaire à poster est au format «docblock» (de phpDoc) qui peut être enrichi de tags spécifiques pour SPIP.
Fichier
ecrire/inc/utils.php
Fonction
spip_initialisation_suite

    Nom ou pseudo de l'auteur de la proposition

Code original

/**
 * Complements d'initialisation non critiques pouvant etre realises
 * par les plugins
 *
 */
function spip_initialisation_suite() {
	static $too_late = 0;
	if ($too_late++) {
		return;
	}
 
	// taille mini des login
	if (!defined('_LOGIN_TROP_COURT')) {
		define('_LOGIN_TROP_COURT', 4);
	}
 
	// la taille maxi des logos (0 : pas de limite) (pas de define par defaut, ce n'est pas utile)
	#if (!defined('_LOGO_MAX_SIZE')) define('_LOGO_MAX_SIZE', 0); # poids en ko
	#if (!defined('_LOGO_MAX_WIDTH')) define('_LOGO_MAX_WIDTH', 0); # largeur en pixels
	#if (!defined('_LOGO_MAX_HEIGHT')) define('_LOGO_MAX_HEIGHT', 0); # hauteur en pixels

	// la taille maxi des images (0 : pas de limite) (pas de define par defaut, ce n'est pas utile)
	#if (!defined('_DOC_MAX_SIZE')) define('_DOC_MAX_SIZE', 0); # poids en ko
	#if (!defined('_IMG_MAX_SIZE')) define('_IMG_MAX_SIZE', 0); # poids en ko
	#if (!defined('_IMG_MAX_WIDTH')) define('_IMG_MAX_WIDTH', 0); # largeur en pixels
	#if (!defined('_IMG_MAX_HEIGHT')) define('_IMG_MAX_HEIGHT', 0); # hauteur en pixels

	if (!defined('_PASS_LONGUEUR_MINI')) {
		define('_PASS_LONGUEUR_MINI', 6);
	}
 
 
	// Qualite des images calculees automatiquement. C'est un nombre entre 0 et 100, meme pour imagick (on ramene a 0..1 par la suite)
	if (!defined('_IMG_QUALITE')) {
		define('_IMG_QUALITE', 85);
	} # valeur par defaut
	if (!defined('_IMG_GD_QUALITE')) {
		define('_IMG_GD_QUALITE', _IMG_QUALITE);
	} # surcharge pour la lib GD
	if (!defined('_IMG_CONVERT_QUALITE')) {
		define('_IMG_CONVERT_QUALITE', _IMG_QUALITE);
	} # surcharge pour imagick en ligne de commande
	// Historiquement la valeur pour imagick semble differente. Si ca n'est pas necessaire, il serait preferable de garder _IMG_QUALITE
	if (!defined('_IMG_IMAGICK_QUALITE')) {
		define('_IMG_IMAGICK_QUALITE', 75);
	} # surcharge pour imagick en PHP

	if (!defined('_COPIE_LOCALE_MAX_SIZE')) {
		define('_COPIE_LOCALE_MAX_SIZE', 33554432);
	} // poids en octet
 
	// qq chaines standard
	if (!defined('_ACCESS_FILE_NAME')) {
		define('_ACCESS_FILE_NAME', '.htaccess');
	}
	if (!defined('_AUTH_USER_FILE')) {
		define('_AUTH_USER_FILE', '.htpasswd');
	}
	if (!defined('_SPIP_DUMP')) {
		define('_SPIP_DUMP', 'dump@nom_site@@stamp@.xml');
	}
	if (!defined('_CACHE_RUBRIQUES')) {
		/** Fichier cache pour le navigateur de rubrique du bandeau */
		define('_CACHE_RUBRIQUES', _DIR_TMP . 'menu-rubriques-cache.txt');
	}
	if (!defined('_CACHE_RUBRIQUES_MAX')) {
		/** Nombre maxi de rubriques enfants affichées pour chaque rubrique du navigateur de rubrique du bandeau */
		define('_CACHE_RUBRIQUES_MAX', 500);
	}
 
	if (!defined('_EXTENSION_SQUELETTES')) {
		define('_EXTENSION_SQUELETTES', 'html');
	}
 
	if (!defined('_DOCTYPE_ECRIRE')) {
		define('_DOCTYPE_ECRIRE',
			// "<!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.01 Transitional//EN' 'http://www.w3.org/TR/html4/loose.dtd'>\n");
			//"<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Transitional//EN' 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd'>\n");
			//"<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN' 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>\n");
			// "<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.1 //EN' 'http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd'>\n");
		"<!DOCTYPE html>\n");
	}
	if (!defined('_DOCTYPE_AIDE')) {
		define('_DOCTYPE_AIDE',
		"<!DOCTYPE html PUBLIC '-//W3C//DTD HTML 4.01 Frameset//EN' 'http://www.w3.org/TR/1999/REC-html401-19991224/frameset.dtd'>");
	}
 
	/** L'adresse de base du site ; on peut mettre '' si la racine est gerée par
	 * le script de l'espace public, alias index.php */
	if (!defined('_SPIP_SCRIPT')) {
		define('_SPIP_SCRIPT', 'spip.php');
	}
	/** Argument page, personalisable en cas de conflit avec un autre script */
	if (!defined('_SPIP_PAGE')) {
		define('_SPIP_PAGE', 'page');
	}
 
	// le script de l'espace prive
	// Mettre a "index.php" si DirectoryIndex ne le fait pas ou pb connexes:
	// les anciens IIS n'acceptent pas les POST sur ecrire/ (#419)
	// meme pb sur thttpd cf. http://forum.spip.net/fr_184153.html
	if (!defined('_SPIP_ECRIRE_SCRIPT')) {
		define('_SPIP_ECRIRE_SCRIPT', (empty($_SERVER['SERVER_SOFTWARE']) ? '' :
			preg_match(',IIS|thttpd,', $_SERVER['SERVER_SOFTWARE']) ?
				'index.php' : ''));
	}
 
 
	if (!defined('_SPIP_AJAX')) {
		define('_SPIP_AJAX', ((!isset($_COOKIE['spip_accepte_ajax']))
			? 1
			: (($_COOKIE['spip_accepte_ajax'] != -1) ? 1 : 0)));
	}
 
	// La requete est-elle en ajax ?
	if (!defined('_AJAX')) {
		define('_AJAX',
			(isset($_SERVER['HTTP_X_REQUESTED_WITH']) # ajax jQuery
				or !empty($_REQUEST['var_ajax_redir']) # redirection 302 apres ajax jQuery
				or !empty($_REQUEST['var_ajaxcharset']) # compat ascendante pour plugins
				or !empty($_REQUEST['var_ajax']) # forms ajax & inclure ajax de spip
			)
			and empty($_REQUEST['var_noajax']) # horrible exception, car c'est pas parce que la requete est ajax jquery qu'il faut tuer tous les formulaires ajax qu'elle contient
		);
	}
 
	# nombre de pixels maxi pour calcul de la vignette avec gd
	# au dela de 5500000 on considere que php n'est pas limite en memoire pour cette operation
	# les configurations limitees en memoire ont un seuil plutot vers 1MPixel
	if (!defined('_IMG_GD_MAX_PIXELS')) {
		define('_IMG_GD_MAX_PIXELS',
		(isset($GLOBALS['meta']['max_taille_vignettes']) and $GLOBALS['meta']['max_taille_vignettes'])
			? $GLOBALS['meta']['max_taille_vignettes']
			: 0);
	}
 
	if (!defined('_MEMORY_LIMIT_MIN')) {
		define('_MEMORY_LIMIT_MIN', 16);
	} // en Mo
	// si on est dans l'espace prive et si le besoin est superieur a 8Mo (qui est vraiment le standard)
	// on verifie que la memoire est suffisante pour le compactage css+js pour eviter la page blanche
	// il y aura d'autres problemes et l'utilisateur n'ira pas tres loin, mais ce sera plus comprehensible qu'une page blanche
	if (test_espace_prive() and _MEMORY_LIMIT_MIN > 8) {
		if ($memory = trim(ini_get('memory_limit')) and $memory != -1) {
			$unit = strtolower(substr($memory, -1));
			$memory = substr($memory, 0, -1);
			switch ($unit) {
				// Le modifieur 'G' est disponible depuis PHP 5.1.0
				case 'g':
					$memory *= 1024;
				case 'm':
					$memory *= 1024;
				case 'k':
					$memory *= 1024;
			}
			if ($memory < _MEMORY_LIMIT_MIN * 1024 * 1024) {
				@ini_set('memory_limit', $m = _MEMORY_LIMIT_MIN . 'M');
				if (trim(ini_get('memory_limit')) != $m) {
					if (!defined('_INTERDIRE_COMPACTE_HEAD_ECRIRE')) {
						define('_INTERDIRE_COMPACTE_HEAD_ECRIRE', true);
					} // evite une page blanche car on ne saura pas calculer la css dans ce hit
				}
			}
		} else {
			if (!defined('_INTERDIRE_COMPACTE_HEAD_ECRIRE')) {
				define('_INTERDIRE_COMPACTE_HEAD_ECRIRE', true);
			}
		} // evite une page blanche car on ne saura pas calculer la css dans ce hit
	}
	// Protocoles a normaliser dans les chaines de langues
	if (!defined('_PROTOCOLES_STD')) {
		define('_PROTOCOLES_STD', 'http|https|ftp|mailto|webcal');
	}
 
	init_var_mode();
}

Le commentaire au format « docblock » peut être complété des éléments suivants sécifiques
à SPIP.

Sur un entête de fichier :

  • @package SPIP\Core\x (pour un fichier du core, x dépendant du fichier)
  • @package SPIP\Nom\x (pour un fichier de plugin, Nom étant le nom du plugin)

Sur un entête de fonction :

  • @pipeline x : indique que la fonction est une utilisation d’un pipeline
  • @pipeline_appel x : indique que la fonction appelle le pipeline indiqué
  • @balise : indique que la fonction est une compilation de balise
  • @filtre : indique un |filtre
  • @critere : indique que la fonction est une compilaiton de critère
  • @boucle : indique que la fonction est une compilaiton de boucle
Vous inscrire sur ce site

L’espace privé de ce site est ouvert aux visiteurs, après inscription. Une fois enregistré, vous pourrez consulter les articles en cours de rédaction, proposer des articles et participer à tous les forums.

Identifiants personnels

Indiquez ici votre nom et votre adresse email. Votre identifiant personnel vous parviendra rapidement, par courrier électronique.