squelette different pour administrateur et autres viviteurs

Bonjour,
j'aimerai relooker un site en ligne (jouer dans les squelettes)... sans perturber l'affichage des pages pour les visiteurs.

Avez vous une ruse simple pour pouvoir voir un dossier de squelette en tant que visiteur lambda et un autre en tant qu'admin?

Merci!
Chris

Bonsoir,

Si on prend le principe de créer des sous répertoires nommés selon le statut d'un visiteur, on peut imaginer reprendre le code tetue sur son blog :
http://romy.tetue.net/testez-plusieurs-squelettes-avec-var_skel

Donc, on crée des répertoires comme ceci :
- squelettes/0minirezo
- squelettes/6forum
- Et pour ceux qui ne sont pas connectés : squelettes/defaut

Et dans votre cas, on ne prend pas en compte les rédacteurs : "1comite". De ce fait, ils seront redirigés vers le squelettes defaut
On peut regarder le statut du visiteur grâce à $GLOBALS

On peut imaginer un code comme ça dans config/mes_options.php :

<?php
# Choix du squelette selon le statut
# 0minirezo (administrateur ou administrateur restreint),
# 1comite (rédacteur),
# 6forum (visiteur)
$liste_skels = array(
'0minirezo',
'6forum'
);
if (isset($GLOBALS['visiteur_session']['statut']) and $statut = $GLOBALS['visiteur_session']['statut']) {
  if (in_array($statut,$liste_skels)) {
    setcookie('skel', $_COOKIE['skel'] = $statut, NULL, '/');
  }
  else {
    setcookie('skel', $_COOKIE['skel'] = 'defaut', time()-3600*24, '/');
  }
} else {
  setcookie('skel', $_COOKIE['skel'] = 'defaut', time()-3600*24, '/');
}
if (isset($_COOKIE['skel']) AND in_array($_COOKIE['skel'],$liste_skels) AND is_dir(_DIR_RACINE.'squelettes/' . $_COOKIE['skel'])){
  $dossier_squelettes = 'squelettes/' . $_COOKIE['skel'];
}
?>

Je ne l'ai pas testé…
A voir donc…

Ybbet

Le 16 mai 2014 à 22:36, Chris <f837@yahoo.fr> a écrit :

Bonjour,
j'aimerai relooker un site en ligne (jouer dans les squelettes)... sans perturber l'affichage des pages pour les visiteurs.

Avez vous une ruse simple pour pouvoir voir un dossier de squelette en tant que visiteur lambda et un autre en tant qu'admin?

Merci!
Chris

_______________________________________________
liste spip
spip@rezo.net - désabonnement : envoyer un mail à spip-off@rezo.net

Infos et archives : http://listes.rezo.net/mailman/listinfo/spip
Discuter chez rezo.net

Documentation de SPIP : http://www.spip.net/

Irc : de l'aide à toute heure : http://spip.net/irc

De rien :wink:

----------
Ybbet

Le 17 mai 2014 à 18:19, Chris <christophe@art-image.com> a écrit :

Bonjour à tous,

Merci Ybbet pour ces infos et explications détaillées!!

j'avais oublié cet article de Romy Tetue, je vais décortiquer tout ca et pense pouvoir m'en sortir..

Merci la liste et encore merci YBBET!
Chris

Le 2014-05-16 17:11, Ybbet SPIP a écrit :

Bonsoir,

Si on prend le principe de créer des sous répertoires nommés selon le statut d'un visiteur, on peut imaginer reprendre le code tetue sur son blog :
http://romy.tetue.net/testez-plusieurs-squelettes-avec-var_skel

Donc, on crée des répertoires comme ceci :
- squelettes/0minirezo
- squelettes/6forum
- Et pour ceux qui ne sont pas connectés : squelettes/defaut

Et dans votre cas, on ne prend pas en compte les rédacteurs : "1comite". De ce fait, ils seront redirigés vers le squelettes defaut
On peut regarder le statut du visiteur grâce à $GLOBALS

On peut imaginer un code comme ça dans config/mes_options.php :

<?php
# Choix du squelette selon le statut
# 0minirezo (administrateur ou administrateur restreint),
# 1comite (rédacteur),
# 6forum (visiteur)
$liste_skels = array(
'0minirezo',
'6forum'
);
if (isset($GLOBALS['visiteur_session']['statut']) and $statut = $GLOBALS['visiteur_session']['statut']) {
   if (in_array($statut,$liste_skels)) {
       setcookie('skel', $_COOKIE['skel'] = $statut, NULL, '/');
   }
   else {
       setcookie('skel', $_COOKIE['skel'] = 'defaut', time()-3600*24, '/');
   }
} else {
   setcookie('skel', $_COOKIE['skel'] = 'defaut', time()-3600*24, '/');
}
if (isset($_COOKIE['skel']) AND in_array($_COOKIE['skel'],$liste_skels) AND is_dir(_DIR_RACINE.'squelettes/' . $_COOKIE['skel'])){
   $dossier_squelettes = 'squelettes/' . $_COOKIE['skel'];
}
?>

Je ne l'ai pas testé…
A voir donc…

Ybbet

Le 16 mai 2014 à 22:36, Chris <f837@yahoo.fr> a écrit :

Bonjour,
j'aimerai relooker un site en ligne (jouer dans les squelettes)... sans perturber l'affichage des pages pour les visiteurs.

Avez vous une ruse simple pour pouvoir voir un dossier de squelette en tant que visiteur lambda et un autre en tant qu'admin?

Merci!
Chris

_______________________________________________
liste spip
spip@rezo.net - désabonnement : envoyer un mail à spip-off@rezo.net

Infos et archives : http://listes.rezo.net/mailman/listinfo/spip
Discuter chez rezo.net

Documentation de SPIP : http://www.spip.net/

Irc : de l'aide à toute heure : http://spip.net/irc

Hello

Tout dépend de la façon dont sont fait tes squelettes mais l’idée, c’est d’écrire dedans des trucs du genre

[(#SESSION{id_auteur}|non)
ce que tu veux afficher pour le visiteur lambda
]
[(#SESSION{id_auteur}|oui)
ce que tu veux afficher pour les visiteurs connectés (visiteur enregistré ou rédacteur ou admin)
]

[(#SESSION{statut}|=={0minirezo}|oui)
ce que tu veux afficher pour les seuls admin)
]
statut : 0minirezo (administrateur ou administrateur restreint), 1comite (rédacteur), 6forum (visiteur)
voir plus de détail sur la balise #SESSION ici

Bonjour Chris,

La proposition de Jean-Christophe fonctionne, mais ne permet pas de préserver totalement les internautes de perturbation/bugs de navigation pendant que tu bidouilleras les squelettes, par exemple si la syntaxe de l’une de tes conditions devenait incorrecte, même temporairement.

Plutôt que d’attaquer le site en production et de prendre ce risque, habituellement on travaille en pré-production, en copiant le site (fichiers + BDD) sur un serveur local par exemple (via WAMP ou autre).

Cordialement,

Cédric JOUANNIN

Ah oui, remarque plus qu’importante, en effet.
Il va de soi que le travail sur les squelettes doit d’abord se faire en local et qu’on copie les fichiers sur le site en production qu lorsque tout est ok