Vous n'êtes pas identifié(e).
13 février 2024 Sortie de Dotclear 2.29
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
Tu as bien échappé les deux occurrences ?
Hors ligne
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
@ 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
C'est "propre" ça ? :)
Tout à fait :)
Hors ligne
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
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
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
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
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
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
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
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
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
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
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
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
Tu déclares deux fois la même classe. Regroupe toutes les fonctions dans une seule instance de tplMyPrettyTheme ;)
Hors ligne
Ç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
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
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
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
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).