Skip to content
Extraits de code Groupes Projets
Valider a34ad9e6 rédigé par marcimat's avatar marcimat
Parcourir les fichiers

refactor: Déplacer une partie de inc_version dans un dossier bootstrap/ pour plus de clarté

parent 32470c18
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
<?php
/**
* Globales (historiques) de config au démarrage de SPIP
*/
global
$auteur_session,
$connect_id_rubrique,
$connect_statut,
$connect_toutes_rubriques,
$controler_dates_rss,
$cookie_prefix,
$debut_date_publication,
$derniere_modif_invalide,
$dossier_squelettes,
$exceptions_des_tables,
$filtrer_javascript,
$formats_logos,
$hash_recherche_strict,
$hash_recherche,
$help_server,
$home_server,
$ignore_auth_http,
$ignore_remote_user,
$ip,
$ldap_present,
$liste_des_authentifications,
$liste_des_etats,
$liste_des_statuts,
$meta,
$mysql_rappel_connexion,
$mysql_rappel_nom_base,
$nombre_de_logs,
$plugins,
$puce,
$source_vignettes,
$spip_matrice,
$spip_pipeline,
$spip_sql_version,
$spip_version_affichee,
$spip_version_base,
$spip_version_branche,
$spip_version_code,
$surcharges,
$table_date,
$table_des_tables,
$table_prefix,
$table_primary,
$table_titre,
$tables_auxiliaires,
$tables_jointures,
$tables_principales,
$taille_des_logs,
$test_i18n,
$tex_server,
$traiter_math,
$type_urls,
$url_glossaire_externe,
$visiteur_session,
$xhtml,
$xml_indent;
# comment on logge, defaut 4 tmp/spip.log de 100k, 0 ou 0 suppriment le log
$nombre_de_logs = 4;
$taille_des_logs = 100;
// on peut definir _LOG_FILTRE_GRAVITE dans mes_options.php
// Prefixe des tables dans la base de donnees
// (a modifier pour avoir plusieurs sites SPIP dans une seule base)
$table_prefix = 'spip';
// Prefixe des cookies
// (a modifier pour installer des sites SPIP dans des sous-repertoires)
$cookie_prefix = 'spip';
// Dossier des squelettes
// (a modifier si l'on veut passer rapidement d'un jeu de squelettes a un autre)
$dossier_squelettes = '';
// Pour le javascript, trois modes : parano (-1), prive (0), ok (1)
// parano le refuse partout, ok l'accepte partout
// le mode par defaut le signale en rouge dans l'espace prive
// Si < 1, les fichiers SVG sont traites s'ils emanent d'un redacteur
$filtrer_javascript = 0;
// PS: dans les forums, petitions, flux syndiques... c'est *toujours* securise
// Type d'URLs
// inc/utils.php sélectionne le type 'page' (spip.php?article123) en l'absence
// d'autre configuration stockée en $GLOBALS['meta']['type_urls]
// Pour les autres types: voir urls_etendues
// $type_urls n'a plus de valeur par défaut en 3.1 mais permet de forcer une
// configuration d'urls dans les fichiers d'options.
#la premiere date dans le menu deroulant de date de publication
# null: automatiquement (affiche les 8 dernieres annees)
# 0: affiche un input libre
# 1997: le menu commence a 1997 jusqu'a annee en cours
$debut_date_publication = null;
// Pour renforcer la privacy, recopiez-la ligne
// dans le fichier config/mes_options): SPIP ne pourra alors conserver aucun
// numero IP, ni temporairement lors des visites (pour gerer les statistiques
// ou dans spip.log), ni dans les forums (responsabilite)
# $ip = substr(md5($ip),0,16);
// faut-il faire des connexions Mysql rappelant le nom de la base MySQL ?
// (utile si vos squelettes appellent d'autres bases MySQL)
// (A desactiver en cas de soucis de connexion chez certains hebergeurs)
// Note: un test a l'installation peut aussi avoir desactive
// $mysql_rappel_nom_base directement dans le fichier inc_connect
$mysql_rappel_nom_base = true;
// faut-il afficher en rouge les chaines non traduites ?
$test_i18n = false;
// faut-il ignorer l'authentification par auth http/remote_user ?
$ignore_auth_http = false;
$ignore_remote_user = true; # methode obsolete et risquee
// Invalider les caches a chaque modification du contenu ?
// Si votre site a des problemes de performance face a une charge tres elevee,
// vous pouvez mettre cette globale a false (dans mes_options).
$derniere_modif_invalide = true;
//
// Serveurs externes
//
# Serveur de documentation officielle
$home_server = 'https://www.spip.net';
# glossaire pour raccourci [?X]. Aussi: [?X#G] et definir glossaire_G
$url_glossaire_externe = 'https://@lang@.wikipedia.org/wiki/%s';
# TeX
$tex_server = 'https://math.spip.org/tex.php';
# MathML (pas pour l'instant: manque un bon convertisseur)
// $mathml_server = 'http://arno.rezo.net/tex2mathml/latex.php';
// Produire du TeX ou du MathML ?
$traiter_math = 'tex';
// Appliquer un indenteur XHTML aux espaces public et/ou prive ?
$xhtml = false;
$xml_indent = false;
$formats_logos = ['jpg', 'png', 'svg', 'gif', 'webp'];
// Controler les dates des item dans les flux RSS ?
$controler_dates_rss = true;
//
// Pipelines & plugins
//
# les pipeline standards (traitements derivables aka points d'entree)
# ils seront compiles par la suite
# note: un pipeline non reference se compile aussi, mais uniquement
# lorsqu'il est rencontre
// https://programmer.spip.net/-Les-pipelines-
$spip_pipeline = [];
# la matrice standard (fichiers definissant les fonctions a inclure)
$spip_matrice = [];
# les plugins a activer
$plugins = []; // voir le contenu du repertoire /plugins/
# les surcharges de include_spip()
$surcharges = []; // format 'inc_truc' => '/plugins/chose/inc_truc2.php'
// Variables du compilateur de squelettes
$exceptions_des_tables = [];
$tables_principales = [];
$table_des_tables = [];
$tables_auxiliaires = [];
$table_primary = [];
$table_date = [];
$table_titre = [];
$tables_jointures = [];
// Liste des statuts.
$liste_des_statuts = [
'info_administrateurs' => '0minirezo',
'info_redacteurs' => '1comite',
'info_visiteurs' => '6forum',
'texte_statut_poubelle' => '5poubelle'
];
$liste_des_etats = [
'texte_statut_en_cours_redaction' => 'prepa',
'texte_statut_propose_evaluation' => 'prop',
'texte_statut_publie' => 'publie',
'texte_statut_poubelle' => 'poubelle',
'texte_statut_refuse' => 'refuse'
];
// liste des methodes d'authentifications
$liste_des_authentifications = [
'spip' => 'spip',
'ldap' => 'ldap'
];
// Experimental : pour supprimer systematiquement l'affichage des numeros
// de classement des titres, recopier la ligne suivante dans mes_options :
# $table_des_traitements['TITRE'][]= 'typo(supprimer_numero(%s), "TYPO", $connect)';
// ** Securite **
$visiteur_session = $auteur_session = $connect_statut = $connect_toutes_rubriques = $hash_recherche = $hash_recherche_strict = $ldap_present = '';
$meta = $connect_id_rubrique = [];
// version de l'interface a la base
$spip_sql_version = 1;
<?php
/**
* Constantes de démarrage de SPIP
*/
/**
* Indique que SPIP est chargé
*
* Cela permet des tests de sécurités pour les fichiers PHP
* de SPIP et des plugins qui peuvent vérifier que SPIP est chargé
* et donc que les fichiers ne sont pas appelés en dehors de l'usage de SPIP
*/
define('_ECRIRE_INC_VERSION', '1');
if (!defined('_DIR_RESTREINT_ABS')) {
/** le nom du repertoire ecrire/ */
define('_DIR_RESTREINT_ABS', 'ecrire/');
}
/** Chemin relatif pour aller dans ecrire
* vide si on est dans ecrire, 'ecrire/' sinon */
define('_DIR_RESTREINT', (is_dir(_DIR_RESTREINT_ABS) ? _DIR_RESTREINT_ABS : ''));
/** Chemin relatif pour aller à la racine */
define('_DIR_RACINE', _DIR_RESTREINT ? '' : '../');
/** chemin absolu vers la racine */
define('_ROOT_RACINE', dirname(__DIR__, 2) . '/');
/** chemin absolu vers le repertoire de travail */
define('_ROOT_CWD', getcwd() . '/');
/** chemin absolu vers ecrire */
define('_ROOT_RESTREINT', _ROOT_CWD . _DIR_RESTREINT);
# Le nom des 4 repertoires modifiables par les scripts lances par httpd
# Par defaut ces 4 noms seront suffixes par _DIR_RACINE (cf plus bas)
# mais on peut les mettre ailleurs et changer completement les noms
if (!defined('_NOM_TEMPORAIRES_INACCESSIBLES')) {
/** Nom du repertoire des fichiers Temporaires Inaccessibles par http:// */
define('_NOM_TEMPORAIRES_INACCESSIBLES', 'tmp/');
}
if (!defined('_NOM_TEMPORAIRES_ACCESSIBLES')) {
/** Nom du repertoire des fichiers Temporaires Accessibles par http:// */
define('_NOM_TEMPORAIRES_ACCESSIBLES', 'local/');
}
if (!defined('_NOM_PERMANENTS_INACCESSIBLES')) {
/** Nom du repertoire des fichiers Permanents Inaccessibles par http:// */
define('_NOM_PERMANENTS_INACCESSIBLES', 'config/');
}
if (!defined('_NOM_PERMANENTS_ACCESSIBLES')) {
/** Nom du repertoire des fichiers Permanents Accessibles par http:// */
define('_NOM_PERMANENTS_ACCESSIBLES', 'IMG/');
}
// Icones
if (!defined('_NOM_IMG_PACK')) {
/** Nom du dossier images */
define('_NOM_IMG_PACK', 'images/');
}
/** le chemin http (relatif) vers les images standard */
define('_DIR_IMG_PACK', (_DIR_RACINE . 'prive/' . _NOM_IMG_PACK));
/** le chemin php (absolu) vers les images standard (pour hebergement centralise) */
define('_ROOT_IMG_PACK', dirname(__DIR__, 2) . '/prive/' . _NOM_IMG_PACK);
if (!defined('_JAVASCRIPT')) {
/** Nom du repertoire des bibliotheques JavaScript */
// utilisable avec #CHEMIN et find_in_path
define('_JAVASCRIPT', 'javascript/');
}
/** le nom du repertoire des bibliotheques JavaScript du prive */
define('_DIR_JAVASCRIPT', (_DIR_RACINE . 'prive/' . _JAVASCRIPT));
/** Le nom du fichier de personnalisation */
if (!defined('_NOM_CONFIG')) {
define('_NOM_CONFIG', 'mes_options');
}
// Son emplacement absolu si on le trouve
if (@file_exists($f = _ROOT_RACINE . _NOM_PERMANENTS_INACCESSIBLES . _NOM_CONFIG . '.php')) {
/** Emplacement absolu du fichier d'option */
define('_FILE_OPTIONS', $f);
} else {
define('_FILE_OPTIONS', '');
}
if (!defined('MODULES_IDIOMES')) {
/**
* Modules par défaut pour la traduction.
*
* Constante utilisée par le compilateur et le décompilateur
* sa valeur etant traitée par inc_traduire_dist
*/
define('MODULES_IDIOMES', 'public|spip|ecrire');
}
if (!defined('_IS_CLI')) {
define(
'_IS_CLI',
!isset($_SERVER['HTTP_HOST'])
&& !strlen((string) $_SERVER['DOCUMENT_ROOT'])
&& !empty($_SERVER['argv'])
&& empty($_SERVER['REQUEST_METHOD'])
);
}
// Definir les niveaux de log
defined('_LOG_HS') || define('_LOG_HS', 0);
defined('_LOG_ALERTE_ROUGE') || define('_LOG_ALERTE_ROUGE', 1);
defined('_LOG_CRITIQUE') || define('_LOG_CRITIQUE', 2);
defined('_LOG_ERREUR') || define('_LOG_ERREUR', 3);
defined('_LOG_AVERTISSEMENT') || define('_LOG_AVERTISSEMENT', 4);
defined('_LOG_INFO_IMPORTANTE') || define('_LOG_INFO_IMPORTANTE', 5);
defined('_LOG_INFO') || define('_LOG_INFO', 6);
defined('_LOG_DEBUG') || define('_LOG_DEBUG', 7);
<?php
/*
* Détecteur de robot d'indexation
*/
if (!defined('_IS_BOT')) {
define(
'_IS_BOT',
isset($_SERVER['HTTP_USER_AGENT'])
&& preg_match(
// mots generiques
',bot|slurp|crawler|spider|webvac|yandex|'
// MSIE 6.0 est un botnet 99,9% du temps, on traite donc ce USER_AGENT comme un bot
. 'MSIE 6\.0|'
// UA plus cibles
. '80legs|accoona|AltaVista|ASPSeek|Baidu|Charlotte|EC2LinkFinder|eStyle|facebook|flipboard|hootsuite|FunWebProducts|Google|Genieo|INA dlweb|InfegyAtlas|Java VM|LiteFinder|Lycos|MetaURI|Moreover|Rambler|Scooter|ScrubbyBloglines|Yahoo|Yeti'
. ',i',
(string)$_SERVER['HTTP_USER_AGENT']
)
);
}
<?php
/**
* Prendre en compte les proxy
*
* - entetes HTTP_X_FORWARDED_XX
* - ip
*/
if (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] === 'https') {
if (empty($_SERVER['HTTP_X_FORWARDED_HOST'])) {
$_SERVER['HTTP_X_FORWARDED_HOST'] = $_SERVER['HTTP_HOST'];
}
if (empty($_SERVER['HTTP_X_FORWARDED_PORT'])) {
$_SERVER['HTTP_X_FORWARDED_PORT'] = 443;
}
}
if (isset($_SERVER['HTTP_X_FORWARDED_HOST'])) {
if (isset($_SERVER['HTTP_X_FORWARDED_PORT']) && is_numeric($_SERVER['HTTP_X_FORWARDED_PORT'])) {
$_SERVER['SERVER_PORT'] = $_SERVER['HTTP_X_FORWARDED_PORT'];
if (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] === 'https') {
$_SERVER['HTTPS'] = 'on';
if (isset($_SERVER['REQUEST_SCHEME'])) {
$_SERVER['REQUEST_SCHEME'] = 'https';
}
}
}
$host = $_SERVER['HTTP_X_FORWARDED_HOST'];
if (str_contains((string) $host, ',')) {
$h = explode(',', (string) $host);
$host = trim(reset($h));
}
// securite sur le contenu de l'entete
$host = strtr($host, "<>?\"\{\}\$'` \r\n", '____________');
$_SERVER['HTTP_HOST'] = $host;
}
//
// On note le numero IP du client dans la variable $ip
//
if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {
$ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
if (str_contains((string) $ip, ',')) {
$ip = explode(',', (string) $ip);
$ip = reset($ip);
}
// ecraser $_SERVER['REMOTE_ADDR'] si elle est en localhost
if (isset($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] === '127.0.0.1') {
$_SERVER['REMOTE_ADDR'] = $ip;
}
}
if (isset($_SERVER['REMOTE_ADDR'])) {
$ip = $_SERVER['REMOTE_ADDR'];
}
...@@ -21,60 +21,7 @@ if (defined('_ECRIRE_INC_VERSION')) { ...@@ -21,60 +21,7 @@ if (defined('_ECRIRE_INC_VERSION')) {
return; return;
} }
/** require_once __DIR__ . '/bootstrap/initial_config.php';
* Indique que SPIP est chargé
*
* Cela permet des tests de sécurités pour les fichiers PHP
* de SPIP et des plugins qui peuvent vérifier que SPIP est chargé
* et donc que les fichiers ne sont pas appelés en dehors de l'usage de SPIP
*/
define('_ECRIRE_INC_VERSION', '1');
/** version PHP minimum exigee (cf. inc/utils) */
define('_PHP_MIN', '8.1.0');
define('_PHP_MAX', '8.2.99');
if (!defined('_DIR_RESTREINT_ABS')) {
/** le nom du repertoire ecrire/ */
define('_DIR_RESTREINT_ABS', 'ecrire/');
}
/** Chemin relatif pour aller dans ecrire
* vide si on est dans ecrire, 'ecrire/' sinon */
define(
'_DIR_RESTREINT',
(is_dir(_DIR_RESTREINT_ABS) ? _DIR_RESTREINT_ABS : '')
);
/** Chemin relatif pour aller à la racine */
define('_DIR_RACINE', _DIR_RESTREINT ? '' : '../');
/** chemin absolu vers la racine */
define('_ROOT_RACINE', dirname(__DIR__) . '/');
/** chemin absolu vers le repertoire de travail */
define('_ROOT_CWD', getcwd() . '/');
/** chemin absolu vers ecrire */
define('_ROOT_RESTREINT', _ROOT_CWD . _DIR_RESTREINT);
# Le nom des 4 repertoires modifiables par les scripts lances par httpd
# Par defaut ces 4 noms seront suffixes par _DIR_RACINE (cf plus bas)
# mais on peut les mettre ailleurs et changer completement les noms
if (!defined('_NOM_TEMPORAIRES_INACCESSIBLES')) {
/** Nom du repertoire des fichiers Temporaires Inaccessibles par http:// */
define('_NOM_TEMPORAIRES_INACCESSIBLES', 'tmp/');
}
if (!defined('_NOM_TEMPORAIRES_ACCESSIBLES')) {
/** Nom du repertoire des fichiers Temporaires Accessibles par http:// */
define('_NOM_TEMPORAIRES_ACCESSIBLES', 'local/');
}
if (!defined('_NOM_PERMANENTS_INACCESSIBLES')) {
/** Nom du repertoire des fichiers Permanents Inaccessibles par http:// */
define('_NOM_PERMANENTS_INACCESSIBLES', 'config/');
}
if (!defined('_NOM_PERMANENTS_ACCESSIBLES')) {
/** Nom du repertoire des fichiers Permanents Accessibles par http:// */
define('_NOM_PERMANENTS_ACCESSIBLES', 'IMG/');
}
// inclure l'ecran de securite si il n'a pas été inclus en prepend php // inclure l'ecran de securite si il n'a pas été inclus en prepend php
if ( if (
...@@ -85,353 +32,11 @@ if ( ...@@ -85,353 +32,11 @@ if (
} }
// et on peut lancer l'autoloader // et on peut lancer l'autoloader
require_once __DIR__ . '/../vendor/autoload.php'; require_once dirname(__DIR__) . '/vendor/autoload.php';
// Icones
if (!defined('_NOM_IMG_PACK')) {
/** Nom du dossier images */
define('_NOM_IMG_PACK', 'images/');
}
/** le chemin http (relatif) vers les images standard */
define('_DIR_IMG_PACK', (_DIR_RACINE . 'prive/' . _NOM_IMG_PACK));
/** le chemin php (absolu) vers les images standard (pour hebergement centralise) */
define('_ROOT_IMG_PACK', dirname(__DIR__) . '/prive/' . _NOM_IMG_PACK);
if (!defined('_JAVASCRIPT')) {
/** Nom du repertoire des bibliotheques JavaScript */
define('_JAVASCRIPT', 'javascript/');
} // utilisable avec #CHEMIN et find_in_path
/** le nom du repertoire des bibliotheques JavaScript du prive */
define('_DIR_JAVASCRIPT', (_DIR_RACINE . 'prive/' . _JAVASCRIPT));
/** Le nom du fichier de personnalisation */
if (!defined('_NOM_CONFIG')) {
define('_NOM_CONFIG', 'mes_options');
}
// Son emplacement absolu si on le trouve
if (@file_exists($f = _ROOT_RACINE . _NOM_PERMANENTS_INACCESSIBLES . _NOM_CONFIG . '.php')) {
/** Emplacement absolu du fichier d'option */
define('_FILE_OPTIONS', $f);
} else {
define('_FILE_OPTIONS', '');
}
if (!defined('MODULES_IDIOMES')) {
/**
* Modules par défaut pour la traduction.
*
* Constante utilisée par le compilateur et le décompilateur
* sa valeur etant traitée par inc_traduire_dist
*/
define('MODULES_IDIOMES', 'public|spip|ecrire');
}
// *** Fin des define *** //
/*
* Détecteur de robot d'indexation
*/
if (!defined('_IS_BOT')) {
define(
'_IS_BOT',
isset($_SERVER['HTTP_USER_AGENT'])
&& preg_match(
// mots generiques
',bot|slurp|crawler|spider|webvac|yandex|'
// MSIE 6.0 est un botnet 99,9% du temps, on traite donc ce USER_AGENT comme un bot
. 'MSIE 6\.0|'
// UA plus cibles
. '80legs|accoona|AltaVista|ASPSeek|Baidu|Charlotte|EC2LinkFinder|eStyle|facebook|flipboard|hootsuite|FunWebProducts|Google|Genieo|INA dlweb|InfegyAtlas|Java VM|LiteFinder|Lycos|MetaURI|Moreover|Rambler|Scooter|ScrubbyBloglines|Yahoo|Yeti'
. ',i',
(string)$_SERVER['HTTP_USER_AGENT']
)
);
}
if (!defined('_IS_CLI')) {
define(
'_IS_CLI',
!isset($_SERVER['HTTP_HOST'])
&& !strlen((string) $_SERVER['DOCUMENT_ROOT'])
&& !empty($_SERVER['argv'])
&& empty($_SERVER['REQUEST_METHOD'])
);
}
// *** Parametrage par defaut de SPIP ***
//
// Les globales qui suivent peuvent etre modifiees
// dans le fichier de personnalisation indique ci-dessus.
// Il suffit de copier les lignes ci-dessous, et ajouter le marquage de debut
// et fin de fichier PHP ("< ?php" et "? >", sans les espaces)
// Ne pas les rendre indefinies.
global
$nombre_de_logs,
$taille_des_logs,
$table_prefix,
$cookie_prefix,
$dossier_squelettes,
$filtrer_javascript,
$type_urls,
$debut_date_publication,
$ip,
$mysql_rappel_connexion,
$mysql_rappel_nom_base,
$test_i18n,
$ignore_auth_http,
$ignore_remote_user,
$derniere_modif_invalide,
$home_server,
$help_server,
$url_glossaire_externe,
$tex_server,
$traiter_math,
$xhtml,
$xml_indent,
$source_vignettes,
$formats_logos,
$controler_dates_rss,
$spip_pipeline,
$spip_matrice,
$plugins,
$surcharges,
$exceptions_des_tables,
$tables_principales,
$table_des_tables,
$tables_auxiliaires,
$table_primary,
$table_date,
$table_titre,
$tables_jointures,
$liste_des_statuts,
$liste_des_etats,
$liste_des_authentifications,
$spip_version_branche,
$spip_version_code,
$spip_version_base,
$spip_sql_version,
$spip_version_affichee,
$visiteur_session,
$auteur_session,
$connect_statut,
$connect_toutes_rubriques,
$hash_recherche,
$hash_recherche_strict,
$ldap_present,
$meta,
$connect_id_rubrique,
$puce;
# comment on logge, defaut 4 tmp/spip.log de 100k, 0 ou 0 suppriment le log
$nombre_de_logs = 4;
$taille_des_logs = 100;
// Definir les niveaux de log
defined('_LOG_HS') || define('_LOG_HS', 0);
defined('_LOG_ALERTE_ROUGE') || define('_LOG_ALERTE_ROUGE', 1);
defined('_LOG_CRITIQUE') || define('_LOG_CRITIQUE', 2);
defined('_LOG_ERREUR') || define('_LOG_ERREUR', 3);
defined('_LOG_AVERTISSEMENT') || define('_LOG_AVERTISSEMENT', 4);
defined('_LOG_INFO_IMPORTANTE') || define('_LOG_INFO_IMPORTANTE', 5);
defined('_LOG_INFO') || define('_LOG_INFO', 6);
defined('_LOG_DEBUG') || define('_LOG_DEBUG', 7);
// on peut definir _LOG_FILTRE_GRAVITE dans mes_options.php
// Prefixe des tables dans la base de donnees
// (a modifier pour avoir plusieurs sites SPIP dans une seule base)
$table_prefix = 'spip';
// Prefixe des cookies
// (a modifier pour installer des sites SPIP dans des sous-repertoires)
$cookie_prefix = 'spip';
// Dossier des squelettes
// (a modifier si l'on veut passer rapidement d'un jeu de squelettes a un autre)
$dossier_squelettes = '';
// Pour le javascript, trois modes : parano (-1), prive (0), ok (1)
// parano le refuse partout, ok l'accepte partout
// le mode par defaut le signale en rouge dans l'espace prive
// Si < 1, les fichiers SVG sont traites s'ils emanent d'un redacteur
$filtrer_javascript = 0;
// PS: dans les forums, petitions, flux syndiques... c'est *toujours* securise
// Type d'URLs
// inc/utils.php sélectionne le type 'page' (spip.php?article123) en l'absence
// d'autre configuration stockée en $GLOBALS['meta']['type_urls]
// Pour les autres types: voir urls_etendues
// $type_urls n'a plus de valeur par défaut en 3.1 mais permet de forcer une
// configuration d'urls dans les fichiers d'options.
#la premiere date dans le menu deroulant de date de publication
# null: automatiquement (affiche les 8 dernieres annees)
# 0: affiche un input libre
# 1997: le menu commence a 1997 jusqu'a annee en cours
$debut_date_publication = null;
//
// Prendre en compte les entetes HTTP_X_FORWARDED_XX
//
if (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] === 'https') {
if (empty($_SERVER['HTTP_X_FORWARDED_HOST'])) {
$_SERVER['HTTP_X_FORWARDED_HOST'] = $_SERVER['HTTP_HOST'];
}
if (empty($_SERVER['HTTP_X_FORWARDED_PORT'])) {
$_SERVER['HTTP_X_FORWARDED_PORT'] = 443;
}
}
if (isset($_SERVER['HTTP_X_FORWARDED_HOST'])) {
if (isset($_SERVER['HTTP_X_FORWARDED_PORT']) && is_numeric($_SERVER['HTTP_X_FORWARDED_PORT'])) {
$_SERVER['SERVER_PORT'] = $_SERVER['HTTP_X_FORWARDED_PORT'];
if (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] === 'https') {
$_SERVER['HTTPS'] = 'on';
if (isset($_SERVER['REQUEST_SCHEME'])) {
$_SERVER['REQUEST_SCHEME'] = 'https';
}
}
}
$host = $_SERVER['HTTP_X_FORWARDED_HOST'];
if (str_contains((string) $host, ',')) {
$h = explode(',', (string) $host);
$host = trim(reset($h));
}
// securite sur le contenu de l'entete
$host = strtr($host, "<>?\"\{\}\$'` \r\n", '____________');
$_SERVER['HTTP_HOST'] = $host;
}
//
// On note le numero IP du client dans la variable $ip
//
if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {
$ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
if (str_contains((string) $ip, ',')) {
$ip = explode(',', (string) $ip);
$ip = reset($ip);
}
// ecraser $_SERVER['REMOTE_ADDR'] si elle est en localhost
if (isset($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] === '127.0.0.1') {
$_SERVER['REMOTE_ADDR'] = $ip;
}
}
if (isset($_SERVER['REMOTE_ADDR'])) {
$ip = $_SERVER['REMOTE_ADDR'];
}
// Pour renforcer la privacy, decommentez la ligne ci-dessous (ou recopiez-la
// dans le fichier config/mes_options) : SPIP ne pourra alors conserver aucun
// numero IP, ni temporairement lors des visites (pour gerer les statistiques
// ou dans spip.log), ni dans les forums (responsabilite)
# $ip = substr(md5($ip),0,16);
// faut-il faire des connexions Mysql rappelant le nom de la base MySQL ?
// (utile si vos squelettes appellent d'autres bases MySQL)
// (A desactiver en cas de soucis de connexion chez certains hebergeurs)
// Note: un test a l'installation peut aussi avoir desactive
// $mysql_rappel_nom_base directement dans le fichier inc_connect
$mysql_rappel_nom_base = true;
// faut-il afficher en rouge les chaines non traduites ?
$test_i18n = false;
// faut-il ignorer l'authentification par auth http/remote_user ?
$ignore_auth_http = false;
$ignore_remote_user = true; # methode obsolete et risquee
// Invalider les caches a chaque modification du contenu ?
// Si votre site a des problemes de performance face a une charge tres elevee,
// vous pouvez mettre cette globale a false (dans mes_options).
$derniere_modif_invalide = true;
//
// Serveurs externes
//
# Serveur de documentation officielle
$home_server = 'https://www.spip.net';
# glossaire pour raccourci [?X]. Aussi: [?X#G] et definir glossaire_G
$url_glossaire_externe = 'https://@lang@.wikipedia.org/wiki/%s';
# TeX
$tex_server = 'https://math.spip.org/tex.php';
# MathML (pas pour l'instant: manque un bon convertisseur)
// $mathml_server = 'http://arno.rezo.net/tex2mathml/latex.php';
// Produire du TeX ou du MathML ?
$traiter_math = 'tex';
// Appliquer un indenteur XHTML aux espaces public et/ou prive ?
$xhtml = false;
$xml_indent = false;
$formats_logos = ['jpg', 'png', 'svg', 'gif', 'webp']; require_once __DIR__ . '/bootstrap/globals_config.php';
require_once __DIR__ . '/bootstrap/proxy.php';
// Controler les dates des item dans les flux RSS ? require_once __DIR__ . '/bootstrap/mitigation.php';
$controler_dates_rss = true;
//
// Pipelines & plugins
//
# les pipeline standards (traitements derivables aka points d'entree)
# ils seront compiles par la suite
# note: un pipeline non reference se compile aussi, mais uniquement
# lorsqu'il est rencontre
// https://programmer.spip.net/-Les-pipelines-
$spip_pipeline = [];
# la matrice standard (fichiers definissant les fonctions a inclure)
$spip_matrice = [];
# les plugins a activer
$plugins = []; // voir le contenu du repertoire /plugins/
# les surcharges de include_spip()
$surcharges = []; // format 'inc_truc' => '/plugins/chose/inc_truc2.php'
// Variables du compilateur de squelettes
$exceptions_des_tables = [];
$tables_principales = [];
$table_des_tables = [];
$tables_auxiliaires = [];
$table_primary = [];
$table_date = [];
$table_titre = [];
$tables_jointures = [];
// Liste des statuts.
$liste_des_statuts = [
'info_administrateurs' => '0minirezo',
'info_redacteurs' => '1comite',
'info_visiteurs' => '6forum',
'texte_statut_poubelle' => '5poubelle'
];
$liste_des_etats = [
'texte_statut_en_cours_redaction' => 'prepa',
'texte_statut_propose_evaluation' => 'prop',
'texte_statut_publie' => 'publie',
'texte_statut_poubelle' => 'poubelle',
'texte_statut_refuse' => 'refuse'
];
// liste des methodes d'authentifications
$liste_des_authentifications = [
'spip' => 'spip',
'ldap' => 'ldap'
];
// Experimental : pour supprimer systematiquement l'affichage des numeros
// de classement des titres, recopier la ligne suivante dans mes_options :
# $table_des_traitements['TITRE'][]= 'typo(supprimer_numero(%s), "TYPO", $connect)';
// Droits d'acces maximum par defaut
@umask(0);
// numero de branche, utilise par les plugins // numero de branche, utilise par les plugins
// pour specifier les versions de SPIP necessaires // pour specifier les versions de SPIP necessaires
...@@ -441,6 +46,10 @@ $spip_version_branche = '5.0.0-dev'; ...@@ -441,6 +46,10 @@ $spip_version_branche = '5.0.0-dev';
define('_SPIP_VERSION_ID', 50000); define('_SPIP_VERSION_ID', 50000);
define('_SPIP_EXTRA_VERSION', '-dev'); define('_SPIP_EXTRA_VERSION', '-dev');
/** version PHP minimum exigee (cf. inc/utils) */
define('_PHP_MIN', '8.1.0');
define('_PHP_MAX', '8.2.99');
// cette version dev accepte tous les plugins compatible avec la version ci-dessous // cette version dev accepte tous les plugins compatible avec la version ci-dessous
// a supprimer en phase beta/rc/release // a supprimer en phase beta/rc/release
# define('_DEV_VERSION_SPIP_COMPAT', '4.2.99'); # define('_DEV_VERSION_SPIP_COMPAT', '4.2.99');
...@@ -450,19 +59,13 @@ $spip_version_code = 2023_07_15; ...@@ -450,19 +59,13 @@ $spip_version_code = 2023_07_15;
// version de la base SQL (= Date + numero incremental a 2 chiffres YYYYMMDDXX) // version de la base SQL (= Date + numero incremental a 2 chiffres YYYYMMDDXX)
$spip_version_base = 2022_02_23_03; $spip_version_base = 2022_02_23_03;
// version de l'interface a la base
$spip_sql_version = 1;
// version de spip en chaine // version de spip en chaine
// 1.xxyy : xx00 versions stables publiees, xxyy versions de dev // 1.xxyy : xx00 versions stables publiees, xxyy versions de dev
// (ce qui marche pour yy ne marchera pas forcement sur une version plus ancienne) // (ce qui marche pour yy ne marchera pas forcement sur une version plus ancienne)
$spip_version_affichee = "$spip_version_branche"; $spip_version_affichee = "$spip_version_branche";
// ** Securite ** // Droits d'acces maximum par defaut
$visiteur_session = $auteur_session = $connect_statut = $connect_toutes_rubriques = $hash_recherche = $hash_recherche_strict = $ldap_present = ''; @umask(0);
$meta = $connect_id_rubrique = [];
// *** Fin des globales *** //
// //
// Charger les fonctions liees aux serveurs Http et Sql. // Charger les fonctions liees aux serveurs Http et Sql.
...@@ -498,7 +101,6 @@ spip_initialisation_core( ...@@ -498,7 +101,6 @@ spip_initialisation_core(
(_DIR_RACINE . _NOM_TEMPORAIRES_ACCESSIBLES) (_DIR_RACINE . _NOM_TEMPORAIRES_ACCESSIBLES)
); );
// chargement des plugins : doit arriver en dernier // chargement des plugins : doit arriver en dernier
// car dans les plugins on peut inclure inc-version // car dans les plugins on peut inclure inc-version
// qui ne sera pas execute car _ECRIRE_INC_VERSION est defini // qui ne sera pas execute car _ECRIRE_INC_VERSION est defini
...@@ -532,6 +134,7 @@ if (!defined('_OUTILS_DEVELOPPEURS')) { ...@@ -532,6 +134,7 @@ if (!defined('_OUTILS_DEVELOPPEURS')) {
if (test_espace_prive()) { if (test_espace_prive()) {
include_spip('inc/autoriser'); include_spip('inc/autoriser');
} }
// //
// Installer Spip si pas installe... sauf si justement on est en train // Installer Spip si pas installe... sauf si justement on est en train
// //
......
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