Valider 931ccb63 rédigé par Fil's avatar Fil
Parcourir les fichiers

un bug assez sioux : quand on postait un forum dans l'espace prive, la page de...

un bug assez sioux : quand on postait un forum dans l'espace prive, la page de previsu etait creee a partir de spip.php?action=..., et du coup le menu de langue pensait etre dans l'espace public => il etait gris ; j'introduis donc une fonction qui permet de savoir si on est ou pas dans l'espace prive, et qui peut remplacer le test sur _DIR_RESTREINT *dans ces cas-la* (pas partout)
le prochain envoie modifie ce test presque partout, mais introduit peut-etre des bugs, je prefere donc couper en deux
parent beea9b31
Chargement en cours
Chargement en cours
Chargement en cours
Chargement en cours
+4 −4
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -112,7 +112,7 @@ function menu_langues($nom_select) {

	if (!$ret) return '';

	if (_DIR_RESTREINT) {
	if (!test_espace_prive()) {
		$cible = self();
		$base = '';
	} else {
@@ -120,7 +120,7 @@ function menu_langues($nom_select) {
		$base = _FILE_CONNECT ? 'base' : '';
	}

	$change = ("\nonchange=\"this.parentNode.parentNode.submit()\"");
	$change = ' onchange="this.parentNode.parentNode.submit()"';
	return generer_action_auteur('converser',$base, $cible,
		(select_langues($nom_select, $change, $ret)
		 . "<noscript><div><input type='submit' class='fondo' value='". _T('bouton_changer')."' /></div></noscript>"),
@@ -131,7 +131,7 @@ function menu_langues($nom_select) {
function select_langues($nom_select, $change, $options)
{
	return "<select name='$nom_select' "
	  . (_DIR_RESTREINT ?
	  . ((!test_espace_prive()) ?
	     ("class='forml' style='vertical-align: top; max-height: 24px; margin-bottom: 5px; width: 120px;'") :
	     (($nom_select == 'var_lang_ecrire')  ?
	      ("class='verdana1 toile_foncee' style='max-height: 24px; border: 1px solid white; color: white; width: 100px;'") :
@@ -236,7 +236,7 @@ function utiliser_langue_site() {
// http://doc.spip.org/@utiliser_langue_visiteur
function utiliser_langue_visiteur() {

	$l = (_DIR_RESTREINT  ? 'spip_lang' : 'spip_lang_ecrire');
	$l = (!test_espace_prive()  ? 'spip_lang' : 'spip_lang_ecrire');
	if (isset($_COOKIE[$l]))
		if (changer_langue($l = $_COOKIE[$l])) return $l;

+16 −5
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -407,7 +407,7 @@ function parametre_url($url, $c, $v=NULL, $sep='&amp;') {
	return $a . $ancre;
}

// Prend une URL et lui ajoute/retire une ancre après l'avoir nettoyee
// Prend une URL et lui ajoute/retire une ancre aprs l'avoir nettoyee
// pour l'ancre on translitere, vire les non alphanum du debut,
// et on remplace ceux a l'interieur ou au bout par -
// http://doc.spip.org/@ancre_url
@@ -454,7 +454,7 @@ function self($amp = '&amp;', $root = false) {
			$url = parametre_url($url, $v, $c, '&');

	// supprimer les variables sans interet
	if (!_DIR_RESTREINT) {
	if (test_espace_prive()) {
		$url = preg_replace (',([?&])('
		.'lang|set_options|set_couleur|set_disp|set_ecran|show_docs|'
		.'changer_lang|var_lang|action)=[^&]*,i', '\1', $url);
@@ -475,6 +475,18 @@ function self($amp = '&amp;', $root = false) {
	return $url;
}

// Indique si on est dans l'espace prive
function test_espace_prive() {
	static $prive;
	if (!isset($prive))
		$prive = (
			(_DIR_RESTREINT=='')
			OR (_request('action') !== null)
			OR (_request('exec') !== null)
		);
	return $prive;
}

//
// Traduction des textes de SPIP
//
@@ -1267,12 +1279,11 @@ function spip_initialisation($pi=NULL, $pa=NULL, $ti=NULL, $ta=NULL) {
	define('_RENOUVELLE_ALEA', 12 * 3600);

	// Lire les meta cachees et init noyau (espace public uniquement)

	$GLOBALS['noyau'] = array();
	if (lire_fichier(_FILE_META, $meta)) {
		$GLOBALS['meta'] = @unserialize($meta);
		if (_DIR_RESTREINT
		AND (!isset($_REQUEST['var_mode']))
		AND !isset($_REQUEST['var_mode'])
		AND isset($GLOBALS['meta']['noyau'])
		AND is_array($GLOBALS['meta']['noyau'])) {
			$GLOBALS['noyau'] = $GLOBALS['meta']['noyau'];
@@ -1289,7 +1300,7 @@ function spip_initialisation($pi=NULL, $pa=NULL, $ti=NULL, $ta=NULL) {

		// Forcer le renouvellement de l'alea

		if ((!_DIR_RESTREINT)
		if (test_espace_prive()
		AND (time() > _RENOUVELLE_ALEA +  @$GLOBALS['meta']['alea_ephemere_date'])) {
			include_spip('inc/acces');
			renouvelle_alea();