Dotclear

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

Annonce

13 février 2024 Sortie de Dotclear 2.29

#51 2012-03-23 18:18:14

Mathieu M.
Membre
Lieu : Rhône-Alpes
Inscription : 2009-09-14

Re : Réaliser un configurateur de thème

Ca me donne une nouvelle boulette :p

Parse error: syntax error, unexpected T_STRING, expecting ',' or ';' in /cache/cbtpl/d9/60/d9606340f8980b514c3ff5af48c2f082.php on line 50

La ligne 50 c'est le : public static function MyPrettyThemeStructure($attr)

Hors ligne

#52 2012-03-23 18:23:00

Philippe
Stagiaire
Lieu : Toulon
Inscription : 2004-06-13
Site Web

Re : Réaliser un configurateur de thème

Tu as bien échappé les deux occurrences ?

Hors ligne

#53 2012-03-23 18:38:16

Mathieu M.
Membre
Lieu : Rhône-Alpes
Inscription : 2009-09-14

Re : Réaliser un configurateur de thème

Ouep. Alors j'ai réussi à trouver un code qui ne provoque pas d'erreurs :

$core->tpl->addValue('MyPrettyThemeStructure',array('tplMyPrettyTheme','MyPrettyThemeStructure'));
$core->tpl->addValue('MyPrettyThemeStyle',array('tplMyPrettyTheme','MyPrettyThemeStyle'));

class tplMyPrettyTheme
{
	// {{tpl:MyPrettyThemeStructure}} markup
	public static function MyPrettyThemeStructure($attr)
	{
		return "<?php echo ('".$GLOBALS['core']->blog->settings->themes->MyPrettyThemeStructure_style."'); ?>";
	}

	// {{tpl:MyPrettyThemeStyle}} markup
	public static function MyPrettyThemeStyle($attr)
	{
		return "<?php echo ('".$GLOBALS['core']->blog->settings->themes->MyPrettyThemeStyle_style."'); ?>";
	}
}

C'est "propre" ça ? :)

Hors ligne

#54 2012-03-23 19:16:47

Jean-Michel
Modérateur à ailes d'ange
Lieu : Paris
Inscription : 2006-08-22
Site Web

Re : Réaliser un configurateur de thème

Mathieu M. a écrit :

@ Jean-Michel, les codes en #26 sont-ils "stables" avec la dernière version de Dotclear ? Est-ce que tu as trouvé une réponse pour ta question en #27 ?

Bonsoir,

J'ai été interrompu par la réalisations de prestations payantes et en ce moment, mes journées (et semaines) sont particulièrement chargées, ça devrait se calme fin avril.

De tête, il me semble que le code #26 fonctionne. Puisque je crois l'avoir utilisé sur la dernière mise à jour du thème "Japonisant" et c'est aussi le cas sur un thème que je pourrai distribué (celui que j'utilise sur mon blog actuellement).

Hors ligne

#55 2012-03-23 20:33:52

Philippe
Stagiaire
Lieu : Toulon
Inscription : 2004-06-13
Site Web

Re : Réaliser un configurateur de thème

Mathieu M. a écrit :

C'est "propre" ça ? :)

Tout à fait :)

Hors ligne

#56 2012-03-23 20:40:07

Mathieu M.
Membre
Lieu : Rhône-Alpes
Inscription : 2009-09-14

Re : Réaliser un configurateur de thème

Parfait !

[ mode profiteur ]
Est-ce que ça botte quelqu'un de réaliser un bô configurateur pour un thème (très) flexible ? J'ai prévu une todo list, je pique quelques codes par-ci par-là mais je bloque... :)
[ /mode profiteur ]

Hors ligne

#57 2012-03-23 20:43:29

Philippe
Stagiaire
Lieu : Toulon
Inscription : 2004-06-13
Site Web

Re : Réaliser un configurateur de thème

Mathieu M. a écrit :

J'ai prévu une todo list, je pique quelques codes par-ci par-là mais je bloque... :)

Tu bloques de temps en temps, mais tu apprends beaucoup de choses... ça commence comme ça, et un jour tu trouves tout seul les réponses, et là tu es très content, non ?

Hors ligne

#58 2012-03-23 20:58:33

Mathieu M.
Membre
Lieu : Rhône-Alpes
Inscription : 2009-09-14

Re : Réaliser un configurateur de thème

Je me dis ça depuis 7-8 ans que je touche au développement de sites web, et le php ne veut vraiment pas faire copain-copain avec moi... C'est bien dommage car ça me ferait gagner bien du temps :p

Hors ligne

#59 2012-03-23 21:21:13

Jean-Michel
Modérateur à ailes d'ange
Lieu : Paris
Inscription : 2006-08-22
Site Web

Re : Réaliser un configurateur de thème

Suite à ce que je disais en #54 :
- le thème "Japonisant" se sert bien du code déposé en #26 (qui utilise une zone de personnalisation - feuille de style css - et une liste déroulante pour choisir la structure).
- C'est aussi le cas sur mon thème "Stone" (lui aura en +, le choix des styles alternatives).

Par rapport à ce que tu dis en #56 et si tu relis le déroulé de ce topic, le but du jeu serait d'avoir un tips qui permette facilement d'intégrer tel ou tel besoin dans un configurateur de thème même si c'est pas des notions que l'on maitrise (à un niveau expert). Un peu comme un jeu de lego. Ce qui n'est pas le cas actuellement, si on cherche à s'inspirer de thèmes déjà existants embarquant un configurateur.

Je ne suis pas spécialement convaincu par les configurateurs ayant une multitude d'options. Au final, ça pourrait avoir des limitations. Enfin ce n'est que mon avis.

Hors ligne

#60 2012-03-23 21:46:58

Mathieu M.
Membre
Lieu : Rhône-Alpes
Inscription : 2009-09-14

Re : Réaliser un configurateur de thème

Comment utilise-tu le choix de la structure concrètement ? Un jeu de position/float dans chaque fichier CSS appelé par le code en #26 ?

Au cas où, je poste la todo list que je me suis fixé si ça peut intéresser quelqu'un pour ce projet :

Layout
- Choix de la largeur du thème (1 simple champ pour indiquer son choix + 1 liste déroulante pour choisir si on veut une largeur en pixel ou en pourcentage).
- Couleur dominante du thème [ça c'est bon]
- Choix de la structure [ça c'est bon]
- Couleur des liens + liens:visited + liens:hover + liens:active

Header
- Cacher le titre.
- Taille de la police du titre.
- Alignement du titre.
- Ajout d'une image comme logo.
- Cacher le prélude.

Hors ligne

#61 2012-03-23 21:52:52

pierrevg
Membre
Inscription : 2005-04-13
Site Web

Re : Réaliser un configurateur de thème

Moi aussi je cherche une bonne âme pour coder mon configurateur pour breathe qui sortira un jour...
Hein ? Quoi ? Personne n'est intéressé ?!
Pfff...

Hors ligne

#62 2012-03-23 22:37:20

Jean-Michel
Modérateur à ailes d'ange
Lieu : Paris
Inscription : 2006-08-22
Site Web

Re : Réaliser un configurateur de thème

Mathieu M. a écrit :

Comment utilise-tu le choix de la structure concrètement ? Un jeu de position/float dans chaque fichier CSS appelé par le code en #26 ?

Je t'ai transmis par mail certains de mes fichiers. De souvenir, il me semble être parti des Aorakit pour les structures avec quelques adaptations.

Hors ligne

#63 2012-03-24 09:40:47

Mathieu M.
Membre
Lieu : Rhône-Alpes
Inscription : 2009-09-14

Re : Réaliser un configurateur de thème

Merci Jean-Michel, j'ai reçu.

Sinon, par rapport à ce code pour afficher {{tpl:MyPrettyThemeStructure}} et {{tpl:MyPrettryThemeStyle}} :

$core->tpl->addValue('MyPrettyThemeStructure',array('tplMyPrettyTheme','MyPrettyThemeStructure'));
$core->tpl->addValue('MyPrettyThemeStyle',array('tplMyPrettyTheme','MyPrettyThemeStyle'));

class tplMyPrettyTheme
{
	// {{tpl:MyPrettyThemeStructure}} markup
	public static function MyPrettyThemeStructure($attr)
	{
		return "<?php echo ('".$GLOBALS['core']->blog->settings->themes->MyPrettyThemeStructure_style."'); ?>";
	}

	// {{tpl:MyPrettyThemeStyle}} markup
	public static function MyPrettyThemeStyle($attr)
	{
		return "<?php echo ('".$GLOBALS['core']->blog->settings->themes->MyPrettyThemeStyle_style."'); ?>";
	}
}

Existerait-il la possibilité de créer une balise <tpl:MyPrettyThemeStructure structure="nom de la structure"> ... </tpl:MyPrettyThemeStructure> et <tpl:MyPrettyThemeStyle style="nom du style"> ... </tpl:MyPrettyThemeStyle> qui permettrait d'afficher certains contenus selon les options structure/style sélectionnées ?


Merci :)

Hors ligne

#64 2012-03-24 09:58:05

annso
Responsable de la machine à Twix
Lieu : Lyon
Inscription : 2006-03-05
Site Web

Re : Réaliser un configurateur de thème

Hello,

les paramètres sont dans la variable $attr.

Par exemple :

public static function MyPrettyThemeStructure($attr)
	{
                $structure = isset($attr['structure']) ? trim($attr['structure']) : '';
		if($structure == "2-colonnes") { 
                    return "<?php echo ('".$GLOBALS['core']->blog->settings->themes->MyPrettyThemeStructure_style."'); ?>";
                } else {
                      ....
                }
	}

Hors ligne

#65 2012-03-24 10:44:52

Mathieu M.
Membre
Lieu : Rhône-Alpes
Inscription : 2009-09-14

Re : Réaliser un configurateur de thème

Merci annso.

Alors en tentant de lire la doc. sur les balises de template, j'ai essayé ce code :

$core->tpl->addBlock('MyPrettyThemeStructure',array('tplMyPrettyTheme','tplMyPrettyThemeStructure'));
 
class tplMyPrettyTheme
{
	public static function MyPrettyThemeStructure($attr,$content)
	{
        $structure = isset($attr['structure']) ? trim($attr['structure']) : '';
		if($structure == "fixed-2col-right") { 
			return "<?php echo ('".$GLOBALS['core']->blog->settings->themes->MyPrettyThemeStructure_style."'); ?>";
		} else {
			return "";
		}
	}
}

Ce qui me renvoie un beau : "Fatal error: Uncaught exception 'Exception' with message 'No valid callback for MyPrettyThemeStructure'".

Hors ligne

#66 2012-03-24 15:55:18

patidou
Membre
Inscription : 2004-11-14
Site Web

Re : Réaliser un configurateur de thème

Normalement ça doit être comme ça :

$core->tpl->addBlock('MyPrettyThemeStructure',array('tplMyPrettyTheme','MyPrettyThemeStructure'));

«Quand j'étais petit, je voulais être maître du monde. Maintenant que je suis grand, j'arrive à peine à être maître de moi-même.» Le Chat/Philippe Geluk.
Dotclear a besoin de vous

Hors ligne

#67 2012-03-24 17:26:01

Philippe
Stagiaire
Lieu : Toulon
Inscription : 2004-06-13
Site Web

Re : Réaliser un configurateur de thème

Bien vu ;)

En effet, les noms doivent correspondre. Le premier est celui de la balise de template, le second celui de la classe, le troisième celui de la fonction.

Hors ligne

#68 2012-03-25 22:57:17

Mathieu M.
Membre
Lieu : Rhône-Alpes
Inscription : 2009-09-14

Re : Réaliser un configurateur de thème

Alors, en suivant vos conseils, j'ai : Fatal error: Cannot redeclare class tplMyPrettyTheme.

Il faut "concentrer" les balises {{tpl:MyPrettyThemeStructure}} et <tpl:MyPrettyThemeStructure structure="nom de la structure"> dans la même "boucle" ?

Pour le moment j'ai :

// --------- We want {{tpl:MyPrettyThemeStructure}} and {{tpl:MyPrettyThemeStyle}}
$core->tpl->addValue('MyPrettyThemeStructure',array('tplMyPrettyTheme','MyPrettyThemeStructure'));
$core->tpl->addValue('MyPrettyThemeStyle',array('tplMyPrettyTheme','MyPrettyThemeStyle'));

class tplMyPrettyTheme
{
	// {{tpl:MyPrettyThemeStructure}} markup
	public static function MyPrettyThemeStructure($attr)
	{
		return "<?php echo ('".$GLOBALS['core']->blog->settings->themes->MyPrettyThemeStructure_style."'); ?>";
	}
	// {{tpl:MyPrettyThemeStyle}} markup
	public static function MyPrettyThemeStyle($attr)
	{
		return "<?php echo ('".$GLOBALS['core']->blog->settings->themes->MyPrettyThemeStyle_style."'); ?>";
	}
}

// --------- We want <tpl:MyPrettyThemeStructure structure=""> and <tpl:MyPrettyThemeStyle style="">
$core->tpl->addBlock('MyPrettyThemeStructure',array('tplMyPrettyTheme','MyPrettyThemeStructure'));
//$core->tpl->addBlock('MyPrettyThemeStyle',array('tplMyPrettyTheme','tplMyPrettyThemeStyle'));
 
class tplMyPrettyTheme
{
	public static function MyPrettyThemeStructure($attr,$content)
	{
        $structure = isset($attr['structure']) ? trim($attr['structure']) : '';
		if($structure == "fixed-2col-right") { 
			return "<?php echo ('".$GLOBALS['core']->blog->settings->themes->MyPrettyThemeStructure_style."'); ?>";
		} else {
			return "";
		}
	}
}

Hors ligne

#69 2012-03-26 05:47:12

Philippe
Stagiaire
Lieu : Toulon
Inscription : 2004-06-13
Site Web

Re : Réaliser un configurateur de thème

Tu déclares deux fois la même classe. Regroupe toutes les fonctions dans une seule instance de tplMyPrettyTheme ;)

Hors ligne

#70 2012-03-26 08:48:11

Mathieu M.
Membre
Lieu : Rhône-Alpes
Inscription : 2009-09-14

Re : Réaliser un configurateur de thème

Ça progresse, ça progresse :)

Alors, en regroupant tout dans la même class, il n'apparait plus d'erreurs, par contre les balises <tpl:MyPrettyThemeStructure structure="nom de la structure"> ne semblent pas fonctionner.

Code _public.php :

// --------- We want {{tpl:MyPrettyThemeStructure}} and {{tpl:MyPrettyThemeStyle}}
$core->tpl->addValue('MyPrettyThemeStructure',array('tplMyPrettyTheme','MyPrettyThemeStructure'));
$core->tpl->addValue('MyPrettyThemeStyle',array('tplMyPrettyTheme','MyPrettyThemeStyle'));

// --------- We want <tpl:MyPrettyThemeStructure structure=""> and <tpl:MyPrettyThemeStyle style="">
$core->tpl->addBlock('MyPrettyThemeStructure',array('tplMyPrettyTheme','MyPrettyThemeStructure'));
//$core->tpl->addBlock('MyPrettyThemeStyle',array('tplMyPrettyTheme','tplMyPrettyThemeStyle'));

class tplMyPrettyTheme
{
	// <tpl:MyPrettyThemeStructure structure=""> and {{tpl:MyPrettyThemeStructure}} tags
	public static function MyPrettyThemeStructure($attr,$content)
	{
		return "<?php echo ('".$GLOBALS['core']->blog->settings->themes->MyPrettyThemeStructure_style."'); ?>";
		
		$structure = isset($attr['structure']) ? trim($attr['structure']) : '';
		if($structure == "fixed-2col-right") { 
			return "<?php echo ('".$GLOBALS['core']->blog->settings->themes->MyPrettyThemeStructure_style."'); ?>";
		}
		if($structure == "fixed-2col-left") { 
			return "<?php echo ('".$GLOBALS['core']->blog->settings->themes->MyPrettyThemeStructure_style."'); ?>";
		}
		//else {
		//	return "";
		//}
	}
	// {{tpl:MyPrettyThemeStyle}} tag
	public static function MyPrettyThemeStyle($attr)
	{
		return "<?php echo ('".$GLOBALS['core']->blog->settings->themes->MyPrettyThemeStyle_style."'); ?>";
	}
}

Et côté html, j'ai pour l'instant tenté :

	<tpl:MyPrettyThemeStructure structure="fixed-2col-right">
	  <p> Quel est le nom de ma structure ?? {{tpl:MyPrettyThemeStructure}} </p>
	  <p> Un texte spécifique à la structure concernée : Lorem ipsum blablatum on the right ... </p>
	</tpl:MyPrettyThemeStructure>
	
	<tpl:MyPrettyThemeStructure structure="fixed-2col-left">
	  <p> Idem ici : {{tpl:MyPrettyThemeStructure}} </p>
	  <p> Et puis là : Lorem ipsum blablatum on the left ... </p>
	</tpl:MyPrettyThemeStructure>

Ce qui me retourne... 2 fois le nom de ma structure utilisée (fixed-2col-right ) :-/

Dernière modification par Mathieu M. (2012-03-26 08:49:06)

Hors ligne

#71 2012-03-26 08:54:50

annso
Responsable de la machine à Twix
Lieu : Lyon
Inscription : 2006-03-05
Site Web

Re : Réaliser un configurateur de thème

La première ligne de ta fonction est un return. Le code qui suit n'est donc jamais exécuté ;)

Hors ligne

#72 2012-03-26 09:02:33

Mathieu M.
Membre
Lieu : Rhône-Alpes
Inscription : 2009-09-14

Re : Réaliser un configurateur de thème

Cela me retourne exactement la même chose en plaçant la ligne à la fin de la class :

// <tpl:MyPrettyThemeStructure structure=""> and {{tpl:MyPrettyThemeStructure}} tags
	public static function MyPrettyThemeStructure($attr,$content)
	{
		$structure = isset($attr['structure']) ? trim($attr['structure']) : '';
		if($structure == "fixed-2col-right") { 
			return "<?php echo ('".$GLOBALS['core']->blog->settings->themes->MyPrettyThemeStructure_style."'); ?>";
		}
		if($structure == "fixed-2col-left") { 
			return "<?php echo ('".$GLOBALS['core']->blog->settings->themes->MyPrettyThemeStructure_style."'); ?>";
		}
		//else {
		//	return "";
		//}
		
		return "<?php echo ('".$GLOBALS['core']->blog->settings->themes->MyPrettyThemeStructure_style."'); ?>";
	}

Hors ligne

#73 2012-03-26 09:12:33

annso
Responsable de la machine à Twix
Lieu : Lyon
Inscription : 2006-03-05
Site Web

Re : Réaliser un configurateur de thème

Je ne comprends pas ce que tu cherche à faire. Dans ta version du code, dans tous les cas, tu affiche le paramètre renseigné dans les settings.

Là, j'affiche le paramètre renseigné, ou le setting si le paramètre n'est pas renseigné

	// <tpl:MyPrettyThemeStructure structure="">
	public static function MyPrettyThemeStructure($attr,$content)
	{
		// Si il n'y a pas d'attribut structure, on va lire le setting enregistré en base 
		$structure = isset($attr['structure']) ? trim($attr['structure']) : $GLOBALS['core']->blog->settings->themes->MyPrettyThemeStructure_style."');

		return "<?php echo '".$structure."'; ?>";

	}

Hors ligne

#74 2012-03-26 09:47:19

Mathieu M.
Membre
Lieu : Rhône-Alpes
Inscription : 2009-09-14

Re : Réaliser un configurateur de thème

Alors il faut que je précise mieux mon besoin ;)

Je cherche à afficher, côté template (home.html, category.html, etc...), différents "codes" ou contenus selon la structure sélectionnée. Le but du thème est de proposer à l'utilisateur final plusieurs types d'affichage (ex: un affichage typé "site d'actualités", ou "blog", ou "wiki", ou "forum", ou... etc :p les possibilités seront multiples, le genre de thème tout-terrain. C'est mon défi !).

Par exemple, je souhaite créer un fichier home.html avec ce genre de code :

	<tpl:MyPrettyThemeStructure structure="blog">
	  < code pour un affichage des billets identiques à un Dotclear de base >
	</tpl:MyPrettyThemeStructure>
	
	<tpl:MyPrettyThemeStructure structure="forum">
	  < code pour un affichage typé forum, merci au plugin Agora ! ;) >
	</tpl:MyPrettyThemeStructure>

	<tpl:MyPrettyThemeStructure structure="wiki">
	  < code pour un affichage typé wiki, merci Agora bis ! >
	</tpl:MyPrettyThemeStructure>

	<tpl:MyPrettyThemeStructure structure="archive-like">
	  < code pour un affichage des billets sous forme de liste sans contenu >
	</tpl:MyPrettyThemeStructure>

En quelque sorte, je souhaiterais un fonctionnement semblable à la balise <tpl:EntryIf category="nom de ma catégorie"> ;)

En espérant que mon charabia ne soit pas illisible :p

Hors ligne

#75 2012-03-26 09:59:34

Jean-Michel
Modérateur à ailes d'ange
Lieu : Paris
Inscription : 2006-08-22
Site Web

Re : Réaliser un configurateur de thème

Mathieu M. a écrit :

Je cherche à afficher, côté template (home.html, category.html, etc...), différents "codes" ou contenus selon la structure sélectionnée. Le but du thème est de proposer à l'utilisateur final plusieurs types d'affichage (ex: un affichage typé "site d'actualités", ou "blog", ou "wiki", ou "forum", ou... etc :p les possibilités seront multiples, le genre de thème tout-terrain. C'est mon défi !).

"Ductile" le propose (enfin dans l'idée).

Hors ligne

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

Pied de page des forums

Sites map