Jump to content
Sign in to follow this  
240eric

Changement de Theme ( Utilisateur )

Recommended Posts

Y a t il une Smarty ou exemple pour changer de Theme

coté Client ?

 

avec ou sans cookies .

Share this post


Link to post
Share on other sites

Bonsoir,

 

Je ne comprends pas votre question.

Pour changer de thème vous pouvez aller dans "Préférences" dans le Back Office.

Par contre le client ne peut pas changer de thème lui-même (très peu d'intérêt).

 

Merci

Share this post


Link to post
Share on other sites

Bonjour et Merci !

 

Un exemple ,

deux thèmes ,

l'un 1000px de large , l'autre 800px ,

en fonction de la résolution écran du client ,

il choisi !

 

( il peut aussi , changer d'écran ! )

Share this post


Link to post
Share on other sites

Bonjour Eric

 

Comme le dis Bruno, le client ne peut changer de theme par lui meme.

De meme, le choix du theme par defaut etant stoke dans le fichier de settings, vous ne pouvez en selectionner un dynamiquement.

Mais cela peut etre une bonne idee de contribution :D

Share this post


Link to post
Share on other sites
deux thèmes ,

l'un 1000px de large , l'autre 800px ,

en fonction de la résolution écran du client ,

 

La détection de résolution n'est possible qu'avec le navigateur du client.

 

Une première solution serait un script JS de  détection de la résolution du navigateur client qui exécuterait finalement une sélection automatique de la bonne CSS.

 

Pas besoin donc d'un template différent par résolution mais simplement d'une feuille de style pour chacune d'entre elles.

 

Une autre solution serait l'utilisation de feuille de style adaptable à la résolution (utilisation de % pour les valeurs), mais en pratique c'est asses complexe...

Share this post


Link to post
Share on other sites

Bonjour et Bon Dimanche , tout le Monde ..

 

J'ai essayer de cette manière , mais ca ne fonctionne pas ici !

peut etre un conflit Ajax / .js ?

 

Nom de header.tpl et appel du fichier JS :

 

<link href="{$css_dir}style.css" rel="stylesheet" type="text/css" title="style1"/><!-- Nom de la Css 1 -->

<script type="text/javascript" src="{$base_dir}js/stylewitcher.js"></script><!-- JS changement Css  -->

<script type="text/javascript" src="{$js_dir}layer.js"></script>

<script type="text/javascript" src="{$base_dir}js/attributesFront.js"></script>

<link rel="alternate stylesheet" href="{$css_dir}style2.css" type="text/css" title="style2"><!-- Nom de la Css 2 -->

 

En suite , un lien classique vers la feuille css 2 :

 

<a href="#" onclick="setActiveStyleSheet('style2'); return false;">Activer la skin "NOM 2"</a>

 

Une erreur ou d autres solutions ?

le contenu de stylewitcher.js en dessous

 

Share this post


Link to post
Share on other sites

function setActiveStyleSheet(title) {

  var i, a, main;

  for(i=0; (a = document.getElementsByTagName("link")); i++) {

    if(a.getAttribute("rel").indexOf("style") != -1 && a.getAttribute("title")) {

      a.disabled = true;

      if(a.getAttribute("title") == title) a.disabled = false;

    }

  }

}

 

function getActiveStyleSheet() {

  var i, a;

  for(i=0; (a = document.getElementsByTagName("link")); i++) {

    if(a.getAttribute("rel").indexOf("style") != -1 && a.getAttribute("title") && !a.disabled) return a.getAttribute("title");

  }

  return null;

}

 

function getPreferredStyleSheet() {

  var i, a;

  for(i=0; (a = document.getElementsByTagName("link")); i++) {

    if(a.getAttribute("rel").indexOf("style") != -1

      && a.getAttribute("rel").indexOf("alt") == -1

      && a.getAttribute("title")

      ) return a.getAttribute("title");

  }

  return null;

}

 

function createCookie(name,value,days) {

  if (days) {

    var date = new Date();

    date.setTime(date.getTime()+(days*24*60*60*1000));

    var expires = "; expires="+date.toGMTString();

  }

  else expires = "";

  document.cookie = name+"="+value+expires+"; path=/";

}

 

function readCookie(name) {

  var nameEQ = name + "=";

  var ca = document.cookie.split(';');

  for(var i=0;i < ca.length;i++) {

    var c = ca;

    while (c.charAt(0)==' ') c = c.substring(1,c.length);

    if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);

  }

  return null;

}

 

// hier eventueel cookiename veranderen in een andere naam voor het cookie.

window.onload = function(e) {

  var cookie = readCookie("cookiename");

  var title = cookie ? cookie : getPreferredStyleSheet();

  setActiveStyleSheet(title);

}

 

window.onunload = function(e) {

  var title = getActiveStyleSheet();

  createCookie("cookiename", title, 365);

}

 

var cookie = readCookie("cookiename");

var title = cookie ? cookie : getPreferredStyleSheet();

setActiveStyleSheet(title);

Share this post


Link to post
Share on other sites

Bonjour à toi,

 

Peux-tu décrire l'erreur ?

 

As-tu Firebug d'installé (Firefox uniquement) ? si oui, après un clic sur ton lien, vois-tu toujours une icône verte en bas à droite, ou cette erreur est-elle remplacée par un chiffre rouge (nb d'erreur JS détecté) ?

Share this post


Link to post
Share on other sites

Bonjour Mr Lucas !

 

J e vais refaire un essai lundi ,

 

j'ai aussi installé le sript Mootools ,

dans le haut de la page Header ,

il y a conflit , page blanche ....

 

les scripts eux meme fonctionne .

il y a un conlit de Nom ou , je sais pas !

 

Sous Xoops c'est pareil ,

depuis un theme , si on appel un script ajax et qu il ne fonctionne pas ,

il faut l'appeler avant ou apres un autre !

 

c'est un peut du hazard ....

 

J'ai vu que ,

pour changer un module de colonne ,

on change le nom ('rightColumn') dans son fichier php ?

 

ce serait bien de le faire dans l'admin !

Share this post


Link to post
Share on other sites

J'ai vu que ,

pour changer un module de colonne ,

on change le nom ('rightColumn') dans son fichier php ?

 

ce serait bien de le faire dans l'admin !

 

Bonjour Eric

 

C'est justement en voie de développement, et bientôt terminé. (release 0.8.6 ?)

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×
×
  • Create New...

Important Information

Cookies ensure the smooth running of our services. Using these, you accept the use of cookies. Learn More