un truc multi-jeux de squelettes

Bonjour,

je vous donne un petit truc
que sans doute beaucoup d'entre vous ont déjà sous une forme ou l'autre appliqué
mais je résiste pas tellement je trouve ça élégant
(bien que j'ai pas testé à fond - du côté des formulaires et des forums, notamment ...)

mettons que j'utilise le jeu de squelette de la DIST
mais pour la rubrique 9, je veux utiliser le jeu de squelette DOTSPIP (bones)
et par ailleurs j'aimerais disposer d'un répertoire de squelettes en tests sans niquer mon site public chaque fois que je m'amuse...

dans mes_options (répertoire ecrire)
if (isset($_GET['jeuskel'])) $GLOBALS[ 'dossier_squelettes' ] = $_GET['jeuskel'];

faut maintenant que les liens spipiens se voient rajouter cette variable
par exemple via un script jquery dans un js, appelé par la nouvelle balise #INSERT_HEAD
$(document).ready(function() {
  $("a").each(function(i){
    s(this).attr("href",this.href+"&jeuskel=test")
  })
}

faut appeler aussi pas oublier d'appeler jquery dans le head évidemment

question de pas trop se fatiguer
on peut aussi utiliser ceci
function circalinks(){
  var link, list, i ;
  list = document.getElementsByTagName('a') ;
  for(i=0; i<list.length; i++) {
    link = list.item(i) ;
    if (link.getAttribute('href')) {
      var circahref=link.href;
      var strurl=circahref.substr(nsub);
      link.href=strurl+"&jeuskel=test";
    }
  }
}
à appeler sur l'événement onload de la balise body

on touche à rien d'autre
suffit de se connecter comme ceci:
http://www.mondomaine.net/?jeuskel=test
et hop on utiliseras le répertoire test comme jeu de squelettes

etc...

et si votre hébergeur vous permet de créer de ssous-domaines
dans le répertoire d'accueil du sous domaine (par ex.test.mondomaine.net)
vous créez un fichier index.php qui contient
<?php
header("location:http://www.mondomaine.net/?jeuskel=test");
?>
(sans ligne blanche avant <?php)

et hop on peut utiliser http://test.mondomaine.net pour se connecter sur le jeu de squelette "test"

Faut raffiner l'idée,
et peaufiner la modif des adresses href dans les balises <a>
(et étudier la question des appels de pages via des gestionnaires javascript ou des événements onclick, ainsi que des action="" des formulaires ... mais avec jquery ... c'est pas compliqué)

Le multisquelettage est à portée de doigts

Bien à vous tous
RB

c'est mieux quand on corrige son code ...

$(document).ready(function() {
  $("a").each(function(i){
    $(this).attr("href",this.href+"&jeuskel=test")
  })
}

tout le code d'ailleurs

function circalinks(){
  var link, list, i ;
  list = document.getElementsByTagName('a') ;
  for(i=0; i<list.length; i++) {
    link = list.item(i) ;
    if (link.getAttribute('href')) {
      var circahref=link.href;
      var strurl=circahref;
      link.href=strurl+"&jeuskel=test";
    }
  }
}

je dois arrêter de coder la nuit

function circalinks(){
  var link, list, i ;
  list = document.getElementsByTagName('a') ;
  for(i=0; i<list.length; i++) {
    link = list.item(i) ;
    if (link.getAttribute('href')) {
      link.href=link.href+"&jeuskel=test";
    }
  }
}

voilà c'est plus propre sans deux variables inutiles

RB a écrit :

je dois arrêter de coder la nuit

function circalinks(){
var link, list, i ;
list = document.getElementsByTagName('a') ;
for(i=0; i<list.length; i++) {
  link = list.item(i) ;
  if (link.getAttribute('href')) {
    link.href=link.href+"&jeuskel=test";
  }
}

voilà c'est plus propre sans deux variables inutiles

Hum...

sinon, ta la plugin switcher de squelette...

--
Maïeul
http://maieul.ouvaton.org

Bonjour

certes je l'avais oublié...
Excuse aux développeurs de ce très bel outil
... malheureusement je dois m'occuper de 1000 personnes dont on a désactiver les cookies sur leur navigateur de bureau !
et j'ai tendance à zapper chaque fois que je vois cookie
c'est chiant mais c'est pas moi qui ai la main sur la sécurité :slight_smile:

Merci de ce rappel
RB