Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5

ma "Balise utilisateur" ne me prend pas la balise {title} ?
#1

Citation :#~~~~~ NE PAS SUPPRIMER CE BLOC ~~~~~
#~ Version du CMS : 1.6.6
#~ Version du MLE si existante :
#~ Informations Système :
#~ hebergement : OVH; CMS MS 1.6.6
#~~~~~ NE PAS SUPPRIMER CE BLOC ~~~~~
Bonjour tout le monde, après avoir déjà trouvé des réponses sur ce forum j'en pose maintenant une dont je n'est toujours pas la solution.

J'ai créer une "Balise utilisateur" dont voici le code :

$titre= {title};

$accueil="accueil";
$profil="profil";
$portofolio="portofolio";
$contact="contact";
$liens="liens";

if ($titre == $accueil) {echo "class=\"menuactive_accueil\"";}
if ($titre == $profil) {echo "class=\"menuactive_profil\"";}
if ($titre == $portofolio) {echo "class=\"menuactive_portofolio\"";}
if ($titre == $contact) {echo "class=\"menuactive_contact\"";}
if ($titre == $liens) {echo "class=\"menuactive_liens\"";}

Mon problème c'est que lors de la validation il me fait une erreur : "Parse error: syntax error,..."
En fait il ne veux pas de l'acolade de la balise "{title}" et par conséquent il ne veux pas de cette balise.

J'ai lu dans la documentation que l'on pouvait utiliser n'importe quel code PHP dans un Tag utilisateur, alors pourquoi cet erreur ?

Merci d'avance.
Répondre
#2

Citation :J'ai lu dans la documentation que l'on pouvait utiliser n'importe quel code PHP dans un Tag utilisateur, alors pourquoi cet erreur ?
T'es sûr que le problème ne viendrait pas de ton code ?
Répondre
#3

re,

pourquoi créer une balise title alors quelle existe ??

Que fait cette Balise ?
Affiche le titre de la page.
Comment l'utiliser ?
Insérer la balise dans votre page ou votre gabarit : {title}

J-C Etiemble v 2.2.xx
Répondre
#4

J'ai simplifié mon code minimum pour chercher l'erreur :

$profil="profil";
if ({title} == $profil) {echo "class=\"menuactive_profil\"";}

Voici l'explication, je veux que lorsque le titre de la page est égal à "profil", il écrive dans le code HTML "class="menuactive"

Vu de mes yeux de débutant je pense que l'erreur de code doit venir de l'intégration de {title} dans le code balise.

j'ai donc changé {title} par $pageinfo->content_title mais j'ai toujours un problème de crochet.

Voici le nouveau code avec le changement trouvé sur le forum

$pageinfo = PageInfoOperations::LoadPageInfoByContentAlias('52');
$profil="profil";

if ($pageinfo->content_title == $profil) {echo "class=\"menuactive_profil\"";}

d'ailleurs il me dit dans l'erreur que c'est dans la ligne 1 mais la il n'y en pas dans la ligne 1, franchement là je sais pas comment faire.

Jespere avoir répondu a vos questions et avoir été le plus clair possible.
Répondre
#5

{echo "class=\"menuactive_profil\"";}
ça n'existe pas les accolades utilisées de cette manière.
Comme ceci, ce sera déjà plus "php" Wink
echo "class=\"menuactive_profil\"";
Répondre
#6

Code :
$titre=params['title'];

$accueil="accueil";
$profil="profil";
$portofolio="portofolio";
$contact="contact";
$liens="liens";

if ($titre == $accueil) echo 'class="menuactive_accueil"';
if ($titre == $profil) echo 'class="menuactive_profil"';
if ($titre == $portofolio) echo 'class="menuactive_portofolio";
if ($titre == $contact) echo 'class="menuactive_contact"';
if ($titre == $liens) echo 'class='"menuactive_liens"';
appel dans cms : {mabalise title=$title}

Mais a ta place, je ferai ca directement dans le template de mon menu, en utilisant {$node->alias}.

ex avant:
Code :
{if $node->parent == true or ($node->current == true and $node->haschildren == true)}
<li class="menuactive menuparent"><a class="menuactive menuparent" href="{$node->url}"><span>{$node->menutext}</span></a>
ex apres :
Code :
{if $node->parent == true or ($node->current == true and $node->haschildren == true)}
<li class="menuactive menuparent {$node->alias}"><a class="menuactive menuparent" href="{$node->url}"><span>{$node->menutext}</span></a>
utilisation css:
Code :
.menuactive.menuparent.alias_de_ma_page{ /* une regle css */}
Youpi ?
Répondre
#7

Je vous remercie de votre participation mais rien ne marche, je comprend pas, avant de venir sur le forum j'ai tout essayé et maintenant ca ne marche toujours pas. J'ai l'impression que ça par dans tout les sens le PHP sur internet. un coup on voit un code avec des accolades puis après il faut pas en mettre; les condition s'écrive {if condition}parametre;{/if} ou bien if(condition){parametre;} ou encore if(condition)parametre ???

Si vous pouvez juste au final me dire a quel moment on utilise tel ou tel façon d'écrire sans passé par des petit a petit mais de façon claire ca m'arrangerai ?

Je suis tout a fait conscient que le petit a petit est pour motiver la recherche personnelle et je trouve ca très bien mais franchement là, plus je cherche plus ça ce contredit donc si vous pouvez clairement m'éclaircir ca serai bien.

Merci d'avance.
Répondre
#8

c'est une règle élémentaire de php. donc je pense que la première chose à faire est de te former à php

sauf erreur de ma part

Code :
if(condition)
{
traitement1;
} else {
traitement2;
}
traitement3;
Code :
if(condition)
traitement1;
else
traitement2;
traitement3;
Code :
if(condition) traitement1; else traitement2;
traitement3;
ces 3 codes font la même chose.

soit traitement 1 suivit de traitement 3
soit traitement 2 suivit de traitement 3

seule la première écriture est une écriture correcte d'un point de vu best-practice car les accolades permettent visuellement de repérer correctement les traitements (contrairement à mon second exemple ou on a l'impression que le traitement3 est inclue dans la partie Else

Smarty est basée sur PHP. du coup il a hérité de beaucoup de ses principes

Citation :les condition s'écrive {if condition}parametre;{/if} ou bien if(condition){parametre;} ou encore if(condition)parametre ???
ta question étant spécifique à smarty je te conseil donc de voir directement sur la doc de smarty. Ca devrait pas être complexe si tu as déjà l'habitude de php

http://www.smarty.net/manual/fr/language...ion.if.php
Répondre
#9

je te remercie beaucoup pour cette explication au moins maintenant je sais clairement que une même conditions on peut l'écrire de 3 façons différentes. Et pour le reste je vais aller voir ton lien mais je vais prendre le temps. je crois que je me suis fatigué pour pas grand chose à force de rester tête baissé à foncé dedant. merci encore et à bientôt.
Répondre
#10

wip a écrit :... J'ai l'impression que ça par dans tout les sens le PHP sur internet. un coup on voit un code avec des accolades ...
"Le PHP" il part dans le sens que tu lui donne. Si tu veux savoir comment fonctionne et s'écrit du code en PHP, la référence reste php.net.
Répondre


Atteindre :


Utilisateur(s) parcourant ce sujet : 2 visiteur(s)