Celine Posté 18 Septembre 2007 Partager Posté 18 Septembre 2007 Bonjour je suis débutante dans le php(je connais un peu mieux c#). Si quelqu'un peut m'aider a interpréter ce bout de code: function show_me_the_way_clic($root, $url_r = true){ global $lang; $title_chemin = ''; $cm =& get_manager("category"); $re =& MyRewriteEngine::getInstance(); while ($root!= 0) { $criteria = new Criteria("id",$root); $criteria->setLimit(1); $cols = array('id','name','root'); $category =& $cm->get($root,$cols); $root = $category->getVar('root'); $title_chemin='><ahref="'.$re->buildUrl('category',array('name'=>$category->getVar('name'),'id'=>$category->getVar('id'))).'">'.$category->getVar('name').'</a>'.$title_chemin;} $title_chemin = "<a href='./' title='".$lang['home']."'>".$lang['home'].'</a>'.$title_chemin; return $title_chemin;} La fonction renvoie une variable:"title_chemin" qui contient le chemin de la catégorie. le site Lorsque que l'on clique sur une catégorie ,la page s'ouvre avec son chemin en titre. Exemple:Accueil>Assurance de même si on clique sur une sous-catégorie: Accueil>Assurance>Assurance Voiture Mon problème c'est que je ne veux que le nom de ma page dans des balises h1 Accueil > <h1>Assurance </h1> ou Accueil > Assurance > <h1>Assurance Voiture</h1> et comme pour le moment dans mon code j'ai <{if isset($smarty.get.dir) }> <h1 ><{$way_to_cat}></h1> <br /><{/if}> $title_chemin etant assigné à $way_to_cat Il faut donc que je modifie cette fonction pour récupérer chaque mot dans une variable et non l'ensemble dans une variable globale. Si vous avez des idéés ou des explications elles sont les bienvenues.Merci à tous. Lien vers le commentaire Partager sur d’autres sites More sharing options...
rdd Posté 18 Septembre 2007 Partager Posté 18 Septembre 2007 Salut, Je ne suis pas un fan de l'objet, c'est pour cela que ma reponse pourra paraitre "old school" (je codais en C avant de passer a PHP il y a quelques annees). Je te propose donc une petite fonction qui te permettra d'ajouter les h1 sur la derniere categorie generee par ta fonction. function put_h1($link){ $new_link = str_replace(substr(strrchr($link, "\">"), 2), "<h1>".substr(strrchr($link, "\">"), 2)."</h1>", $link); return $new_link;} Il te suffira donc d'appeler cette fonction avec ton $title_chemin en parametre, ou simplement d'integrer ce code dans le tiens sans faire appel a la fonction (je n'ai pas le temps de tester cette solution): $title_chemin = "<a href='./' title='".$lang['home']."'>".$lang['home'].'</a>'.$title_chemin;$title_chemin = str_replace(substr(strrchr($title_chemin, "\">"), 2), "<h1>".substr(strrchr($title_chemin, "\">"), 2)."</h1>", $title_chemin);return $title_chemin; Voila, en esperant que cela t'aide, bon courage. Lien vers le commentaire Partager sur d’autres sites More sharing options...
marcb Posté 18 Septembre 2007 Partager Posté 18 Septembre 2007 Bonjour, Je te propose cette version pour ta fonction : function show_me_the_way_clic($root, $url_r = true){global $lang;$title_chemin = '';$cm =& get_manager("category");$re =& MyRewriteEngine::getInstance();while ($root!= 0) {$criteria = new Criteria("id",$root);$criteria->setLimit(1);$cols = array('id','name','root');$category =& $cm->get($root,$cols);$root = $category->getVar('root');// La petite modif est dans ce bloc-làif ($title_chemin == '') { $title_chemin='><h1><ahref="'.$re->buildUrl('category',array('name'=>$category->getVar('name'),'id'=>$category->getVar('id'))).'">'.$category->getVar('name').'</a></h1>';} else { $title_chemin='><ahref="'.$re->buildUrl('category',array('name'=>$category->getVar('name'),'id'=>$category->getVar('id'))).'">'.$category->getVar('name').'</a>'.$title_chemin;}$title_chemin = "<a href='./' title='".$lang['home']."'>".$lang['home'].'</a>'.$title_chemin;return $title_chemin;} Elle te retourne (a priori, je n'ai pas pu tester) la variable $title_chemin incluant le <h1></h1> uniquement pour le dernier élément. Du coup, dans ton code il faudra supprimer les balises <h1> : <{if isset($smarty.get.dir) }> <{$way_to_cat}> <br /><{/if}> Attention, si la fonction est appelée d'un autre endroit, ça peut pertuber... Marc Lien vers le commentaire Partager sur d’autres sites More sharing options...
pluriels Posté 18 Septembre 2007 Partager Posté 18 Septembre 2007 (modifié) eIl me semble que ta boucle fonctionne comme ça : Element n > Element n-1 > ... > Element 2 > Element 1 Il faudrait donc ajouter <h1> </h1> au premier élément de ta boucle. Cela éviterait aussi d'avoir un lien de la page vers elle-même. Edit : Je dois taper trop lentement. Je ne voulais pas donner la correction dès le départ, mais Marc m'a grillé la politesse ! Bon courage pour la suite. Au fait, quelle technologie utilises-tu ? $cm =& get_manager("category"); $re =& MyRewriteEngine::getInstance(); Cela ressemble à du framework, mais lequel ? Modifié 18 Septembre 2007 par pluriels Lien vers le commentaire Partager sur d’autres sites More sharing options...
Celine Posté 18 Septembre 2007 Auteur Partager Posté 18 Septembre 2007 Je te propose cette version pour ta fonction : merci marcb ca marche! c'est vraiment simple en fait ,mais je n'y aurait pas penser! merci encore Lien vers le commentaire Partager sur d’autres sites More sharing options...
Celine Posté 18 Septembre 2007 Auteur Partager Posté 18 Septembre 2007 Au fait, quelle technologie utilises-tu ? $cm =& get_manager("category"); $re =& MyRewriteEngine::getInstance(); Cela ressemble à du framework, mais lequel ? ce n'ai pas exactement un framework mais ca fonctionne un peu pareil d'apres ce que j'ai compris c'est la technologie de freeglobes. tu trouveras de plus ample explications par là: aller voir le site Lien vers le commentaire Partager sur d’autres sites More sharing options...
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant