Forum ZitePLUS

La communauté des utilisateurs du CMS ZitePLUS

Vous n'êtes pas identifié(e).

#1 06/03/2013 18:26:53

Stefpei
Membre
Lieu : Nantes
Inscription : 12/06/2009
Messages : 354
Site Web

Module "Template conditionnelle"

Je me suis lancé dans la création d'un "module" (merci JPG de l'aide) pour appeler un template autre (en fonction de la taille d'écran, du choix du visiteur, ou des besoins de la mise pages spécifique d'une rubrique...

Le but actuel est réussir à cibler un template : on ne parlera donc pas du look des essais actuels, ni de ResponsiveDesign, ni de Skin... !
--> ça se passe ici : http://www.c-too.com/cms/zite-multi-template-mobile/

Ca fonctionne !
Le site s'affiche avec son template de base par défaut.
Le site s'affiche avec le template "mobile" si on arrive dessus avec un petit écran.
Le site s'affiche avec le template "mobile" si on clique le lien correspondant (pour tester).
Le site s'affiche avec un 3eme (et plus) template si on clique un lien spécifique.
--> ces 3 liens sont en haut du site...

Problème (temporaire) :
--> mais ça ne reste pas en "mémoire" pour les autres page, pour le reste de la visite...
--> mettre ça dans un Coockie ?

A fignoler :
--> faire un fichier de conf/ini... pour configurer (variable =  template), ou autre

Dernière modification par Stefpei (06/03/2013 18:46:10)


Stéphane
Webdesign AvantageWeb

Hors ligne

#2 07/03/2013 01:38:56

snypi
Moderateurs
Inscription : 11/03/2008
Messages : 1 235
Site Web

Re : Module "Template conditionnelle"

salut
une suggestion
est ce qu'un javascript ne ferait pas l'affaire ??
on détecte la taille de l'écran et en fonction cela choisi un template ?


un zite+ associatif http://asso.gard.a.toi.free.fr
création de site internet dans le Gard et Ardèche http://www.creation-site-internet-gard.com/

Hors ligne

#3 07/03/2013 11:02:07

Stefpei
Membre
Lieu : Nantes
Inscription : 12/06/2009
Messages : 354
Site Web

Re : Module "Template conditionnelle"

un JavaScript.... c'est exactement ce qu'il y-a dans le template par défaut actuellement :

<script type="text/javascript">
    if(window.innerWidth<800)
    location="?w=sma";
</script>

il renvoie à la page ou l'on se trouve en ajoutant une variable (que le module attends)...
... mais quelque soit l'endroit ou l'on se trouve, on est renvoyé en page d'accueil !

--> peut-etre dans "location" insérer l'URL en cours ?


Stéphane
Webdesign AvantageWeb

Hors ligne

#4 07/03/2013 12:45:09

snypi
Moderateurs
Inscription : 11/03/2008
Messages : 1 235
Site Web

Re : Module "Template conditionnelle"

si tu veut appelé un template spécialisé il faut que le javascript soit en amont
genre un index.php !! ou dans ziteplus.php

mais si le javascript est dans le template
on peut joué avec le php du template et dire
si affichage <800 alors cette combinaison
si affichage >800 alors cette combinaison

[== Indéfini ==]
<script type="text/javascript">
    if(window.innerWidth<800)
   <div id="page">
    <div id="top"><?php echo $this->content['pnl5'] ?></div>  .....;
 if(window.innerWidth>800)
   <div id="page_bis">
    <div id="top_bis"><?php echo $this->content['pnl5'] ?></div> .....;
</script>

à mon avis le code n'est pas bon mais voila l'idée


un zite+ associatif http://asso.gard.a.toi.free.fr
création de site internet dans le Gard et Ardèche http://www.creation-site-internet-gard.com/

Hors ligne

#5 07/03/2013 15:00:44

Stefpei
Membre
Lieu : Nantes
Inscription : 12/06/2009
Messages : 354
Site Web

Re : Module "Template conditionnelle"

snypi a écrit :

il faut que le javascript soit en amont
genre un index.php !! ou dans ziteplus.php

peut-etre une bonne idée... mais je ne veux pas intervenir dans les fichiers de Ziteplus !
A moins que le Module puisse le faire...

snypi a écrit :

<script type="text/javascript">
    if(window.innerWidth<800)
   <div id="page".....<?php echo $this->content['pnl5'] ?></div>  .....;

Là on reste dans le même template ! je sais faire, par Php, ou Mediaqueries...
Non le but est d'aller choisir un autre Template.


Stéphane
Webdesign AvantageWeb

Hors ligne

#6 07/03/2013 15:21:04

snypi
Moderateurs
Inscription : 11/03/2008
Messages : 1 235
Site Web

Re : Module "Template conditionnelle"

salut ta une idée en tête et pas ailleurs smile
alors j'ai fait un test rapide si tu change dans le fichier zdata/config.ini la ligne 8 files_template = "template.php"
par un autre template cela fonctionne !!
il faut donc que ce soit cette variable ou ce fichier qui soit modifier !!


un zite+ associatif http://asso.gard.a.toi.free.fr
création de site internet dans le Gard et Ardèche http://www.creation-site-internet-gard.com/

Hors ligne

#7 09/03/2013 11:07:04

snypi
Moderateurs
Inscription : 11/03/2008
Messages : 1 235
Site Web

Re : Module "Template conditionnelle"

salut à tu évolué dans ton module ??
ps : je ne suis pas doué en php mais
en me penchant sur le fichier config.ini je suis tombé sur la fonction php parse_ini_file
du coup je pensais pouvoir modifier ce fichier mais cela ne fonctionne pas
voici mon code qui affiche un tableau du fichier config.ini
et je pensais que define : me permettrais de changer la valeur => mais non smile

[== PHP ==]
<?php 
define('template', 'templatesmartph');

// Analyse avec sections
$ini_array = parse_ini_file("zdata/config.ini", true);
print_r($ini_array);
?>

si quelqu'un à une soluc ?

edit : réflexion sur le module :

je me penche sur ton idée et de ce module peut en découlé plusieurs

  • le module dédect un type d'appareil et propose un template appropier

  • dans l'option page on choisis un template à appliqué à la page

  • etc etc ..

du coup le développement du module diffère de l'envie et du besoin smile


un zite+ associatif http://asso.gard.a.toi.free.fr
création de site internet dans le Gard et Ardèche http://www.creation-site-internet-gard.com/

Hors ligne

#8 09/03/2013 15:28:44

snypi
Moderateurs
Inscription : 11/03/2008
Messages : 1 235
Site Web

Re : Module "Template conditionnelle"

re
en faite j'avais casi toute les réponses à mes questions dans le module lui meme smile
(j'ai télécharger le ziteplus en questions avec le module)

l'idée est plaisante et je vois une grande utilité à ziteplus quand à la possibilité d'affecter un template pour un groupe de page !!
ceci avec une petite configuration simple que je vais tenté de bidouillé à mes heures perdu


un zite+ associatif http://asso.gard.a.toi.free.fr
création de site internet dans le Gard et Ardèche http://www.creation-site-internet-gard.com/

Hors ligne

#9 09/03/2013 20:12:59

jpg
Administrateurs
Inscription : 19/11/2008
Messages : 2 086
Site Web

Re : Module "Template conditionnelle"

Stefpei a écrit :

Je me suis lancé dans la création d'un "module" (merci JPG de l'aide) pour appeler un template autre (en fonction de la taille d'écran, du choix du visiteur, ou des besoins de la mise pages spécifique d'une rubrique...

Le but actuel est réussir à cibler un template : on ne parlera donc pas du look des essais actuels, ni de ResponsiveDesign, ni de Skin... !
--> ça se passe ici : http://www.c-too.com/cms/zite-multi-template-mobile/

Ca fonctionne !
Le site s'affiche avec son template de base par défaut.
Le site s'affiche avec le template "mobile" si on arrive dessus avec un petit écran.
Le site s'affiche avec le template "mobile" si on clique le lien correspondant (pour tester).
Le site s'affiche avec un 3eme (et plus) template si on clique un lien spécifique.
--> ces 3 liens sont en haut du site...

Problème (temporaire) :
--> mais ça ne reste pas en "mémoire" pour les autres page, pour le reste de la visite...
--> mettre ça dans un Coockie ?

Une variable de session devrait faire l'affaire.
C'est la procédure dojob() du module qui devrait faire cela.

Stefpei a écrit :

A fignoler :
--> faire un fichier de conf/ini... pour configurer (variable =  template), ou autre

un simple fichier de configuration pour le module et du prends la valeur par un getOption().

a+
Jean-Paul

ps: si tu as deux minutes, tu peux m'envoyer un zip de ta démo, je trouverai surement deux minutes aussi pour essayer le bout de code qui va bien  wink

Hors ligne

#10 11/03/2013 16:36:10

Stefpei
Membre
Lieu : Nantes
Inscription : 12/06/2009
Messages : 354
Site Web

Re : Module "Template conditionnelle"

Je pense que cette idée peut donner place à 2 modules :
- un module "Template conditionnel"
--> appelé "templatecondi"
--> un template est appelé si : taille ecran, couleurs, déficience visuelle, print, plein de conditions...
--> ce template est plutot de portée generale
 
- un module "Template spécifique"
--> appelé "templatespeci"
--> un template est appelé pour des besoins particuliers (rubrique différente, listing, Homepage, etc...
--> ce template est plutot restreint à 1 ou quelques pages
--> il est appelé dans une page, par exemple par le champ [cPageField1]... ou autre...

Jpg,
je te transmet en ZIP mes 2 modules en cours
--> le premier nécessite d'utiliser une session pour rester de page en page...
--> le second ne fonctionne si j'ecrit ma variable en dur, mais pas si j'essaie de recupérer [cPageField1]...


Stéphane
Webdesign AvantageWeb

Hors ligne

#11 13/03/2013 09:07:45

snypi
Moderateurs
Inscription : 11/03/2008
Messages : 1 235
Site Web

Re : Module "Template conditionnelle"

salutation
je serai bien intéressé par cette option
--> le premier nécessite d'utiliser une session pour rester de page en page...

tu m'avais déjà donné la soluce pour avoir un css personnalisé à l'admin


un zite+ associatif http://asso.gard.a.toi.free.fr
création de site internet dans le Gard et Ardèche http://www.creation-site-internet-gard.com/

Hors ligne

#12 13/03/2013 15:54:34

Stefpei
Membre
Lieu : Nantes
Inscription : 12/06/2009
Messages : 354
Site Web

Re : Module "Template conditionnelle"

j'ai mis en ligne la version un site Zite+ avec la version du module de JPG :
--> http://www.c-too.com/cms/ziteplusphone_site/

avec plusieurs liens vers templates de test : mobile1, mobile2, defaut, sombre...

Les templates pour mobiles ne sont visibles que sur petit ecran...
Les templates  defaut et sombre ne sont visibles que sur grand ecran...


Le code de JPG :

[== PHP ==]
<?php
/*
module:    Création d'un module pour changer facilement le template de ZitePlus
Copyright Jean-Paul GIAUSSERAND 2013
Site: http://www.giausserand.fr/index.php?perma=ziteplus
Licence : Creative Commons CC-BY-NC-SA
Historique:
v1.1 11/03/13 ajout variable de session + appel depuis toute page
v1.0 		création du module 
*/
class Tmultitemplate extends Tmodule {
	function dojob($opt="") {
	  parent::dojob();
		if (empty(self::$cms->args[1])) {
			unset($_SESSION['multitemplate']);
		} else $_SESSION['multitemplate']=self::$cms->args[1];
		$pageid = isset(self::$cms->args[2])?(int)self::$cms->args[2]:1;
		if ($pageid<=0 || $pageid>count(self::$cms->struct)) $pageid=1;
		header('Location: '.self::$cms->makeURL($pageid,true));
		return '';
	}
 	protected function Register() {self::$cms->register_event(eOutput,eBefore,$this->modulename);}
	function Event($event,$mode,&$out,$opt=null) {
	if ($event==eOutput && $mode==eBefore && isset($_SESSION['multitemplate'])){
		switch ($_SESSION['multitemplate']) {
			case 'sma' : self::$cms->config['files_template']='templatesmartph.php'; //sma = small sreen
				break;
			case 'aut' : self::$cms->config['files_template']='templateautre.php'; //aut = autre template
				break;
			default : ;
			}
  	}
	}
}
?>

Stéphane
Webdesign AvantageWeb

Hors ligne

#13 13/03/2013 23:35:35

jpg
Administrateurs
Inscription : 19/11/2008
Messages : 2 086
Site Web

Re : Module "Template conditionnelle"

Bonsoir,
une version un peu plus générale va suivre
a+
Jean-Paul

Hors ligne

#14 14/03/2013 07:21:51

snypi
Moderateurs
Inscription : 11/03/2008
Messages : 1 235
Site Web

Re : Module "Template conditionnelle"

salutation

un petit bug au module si je suis sur une page autre que la page d'accueil je ne peut changer de template  par les liens wink
mais je ne voie pas trop l'utilité de choisir un template par lien sauf pour faire une démo de skin de ziteplus smile
je ne me vois pas arriver avec mon smartphone et devoir cliqué sur j'ai un smartphone pour avoir un affichage adapté
l'auto détection marche et de la page d'accueil smartphone je peux passé au template sombre

je trouve intéressant l’auto détection de l'écran et d'afficher un template approprier au support tel, tablette, pc ..
la possibilité d'avoir un template pour l'admin
la possibilité de choisir un template pour un groupe de page (dans l'administration des pages)

sinon j'ai besoin de quelque petit éclaircissement
comment le css est chargé pour chaque template ?


un zite+ associatif http://asso.gard.a.toi.free.fr
création de site internet dans le Gard et Ardèche http://www.creation-site-internet-gard.com/

Hors ligne

Pied de page des forums