[suggestion] $plxShow->artFeed() et $plxShow->comFeed()

danielsandanielsan Member
avril 2014 modifié dans Discussions générales
Je vous rassure, ce n'est pas énorme : juste rajouter une class dans le lien généré ...
Par ce que bon, entourer un simple lien d'une balise juste pour lui donner une class ... c'est un peu osé ! :D
Merciiiiiiii

dans class.plxShow.php
[== PHP ==]
	public function artFeed($type='rss', $categorie='') {
		# Hook Plugins
		if(eval($this->plxMotor->plxPlugins->callHook('plxShowArtFeed'))) return;

		if($categorie != '' AND is_numeric($categorie)) # Fil Rss des articles d'une catégorie
			echo '<a href="'.$this->plxMotor->urlRewrite('feed.php?rss/categorie'.$categorie).'" title="'.L_ARTFEED_RSS_CATEGORY.'">'.L_ARTFEED_RSS_CATEGORY.'</a>';
		else # Fil Rss des articles
			echo '<a href="'.$this->plxMotor->urlRewrite('feed.php?rss').'" title="'.L_ARTFEED_RSS.'">'.L_ARTFEED_RSS.'</a>';
	}

devient :
[== PHP ==]
	public function artFeed($type='rss', $categorie='') {
		# Hook Plugins
		if(eval($this->plxMotor->plxPlugins->callHook('plxShowArtFeed'))) return;

		if($categorie != '' AND is_numeric($categorie)) # Fil Rss des articles d'une catégorie
			echo '<a class="rss" href="'.$this->plxMotor->urlRewrite('feed.php?rss/categorie'.$categorie).'" title="'.L_ARTFEED_RSS_CATEGORY.'">'.L_ARTFEED_RSS_CATEGORY.'</a>';
		else # Fil Rss des articles
			echo '<a class="rss" href="'.$this->plxMotor->urlRewrite('feed.php?rss').'" title="'.L_ARTFEED_RSS.'">'.L_ARTFEED_RSS.'</a>';
	}

et la même pour $plxShow->comFeed() :
[== PHP ==]
	public function comFeed($type='rss', $article='') {
		# Hook Plugins
		if(eval($this->plxMotor->plxPlugins->callHook('plxShowComFeed'))) return;

		if($article != '' AND is_numeric($article)) # Fil Rss des commentaires d'un article
			echo '<a href="'.$this->plxMotor->urlRewrite('feed.php?rss/commentaires/article'.$article).'" title="'.L_COMFEED_RSS_ARTICLE.'">'.L_COMFEED_RSS_ARTICLE.'</a>';
		else # Fil Rss des commentaires global
			echo '<a href="'.$this->plxMotor->urlRewrite('feed.php?rss/commentaires').'" title="'.L_COMFEED_RSS.'">'.L_COMFEED_RSS.'</a>';
	}

devient :
[== PHP ==]
	public function comFeed($type='rss', $article='') {
		# Hook Plugins
		if(eval($this->plxMotor->plxPlugins->callHook('plxShowComFeed'))) return;

		if($article != '' AND is_numeric($article)) # Fil Rss des commentaires d'un article
			echo '<a class="rss" href="'.$this->plxMotor->urlRewrite('feed.php?rss/commentaires/article'.$article).'" title="'.L_COMFEED_RSS_ARTICLE.'">'.L_COMFEED_RSS_ARTICLE.'</a>';
		else # Fil Rss des commentaires global
			echo '<a class="rss" href="'.$this->plxMotor->urlRewrite('feed.php?rss/commentaires').'" title="'.L_COMFEED_RSS.'">'.L_COMFEED_RSS.'</a>';
	}


la modif de la mort qui tue du lundi à 1h du mat' ! :D :D :D

Réponses

  • StéphaneStéphane Member, Former PluXml Project Manager
    Salut
    Normalement avec la hiérarchie du css, il n'y a pas besoin de mettre de classe à la balise <a>
    Tu englobes tes liens dans un <p>, un <div>, une <section> et après tu accèdes à <a>
    <html>
    <head>
    <style>
    .div a { color: red }
    </style>
    </head>
    <body>
    <div class="div">
    	<a href="">test</a>
    </div>
    </body>
    </html>
    

    Consultant PluXml

    Ancien responsable et développeur de PluXml (2010 à 2018)

  • danielsandanielsan Member
    avril 2014 modifié
    oui ça je sais bien la hiérarchie du CSS ... mais là, le div ne sert qu'à attribuer une class pour atteindre le lien ?
    alors qu'on pourrait l'atteindre directement s'il avait une class, SANS la balise DIV
    <html>
    <head>
    <style>
    a.rss { color: red }
    </style>
    </head>
    <body>
    
    	<a class="rss" href="">test</a>
    
    </body>
    </html>
    

    Si quelqu'un veut le mettre dans une div pour rajouter d'autre truc il peut.
    Si quelqu'un n'a pas besoin de cette div, il ne peut pas ...
  • StéphaneStéphane Member, Former PluXml Project Manager
    sauf que tu as peu de chance d'avoir ton exemple comme ci-dessous, car si tu structures correctement d'un point de vue sémantique ta page tu auras forcément tes <a> englobés dans un conteneur
    <body>
    	<a class="rss" href="">test</a>
    </body>
    

    Consultant PluXml

    Ancien responsable et développeur de PluXml (2010 à 2018)

  • bien sûr qu'il sera dans un conteneur, mais pas nécessaire dans un bloc spécifiquement destiné à lui.
    Il peut être dans le footer d'une section, d'une aside etc ... mais je ne vois/comprends pas pourquoi il doit être dans un conteneur qui lui est spécifique.

    Si par exemple tu veux expliquer ce qu'est le rss, comment l'utiliser etc et ajouter le lien tu ferais
    [== HTML ==]
    <div class="rss">
    	<p>
    		RSS (sigle venant de l'anglais « Really Simple Syndication »)
    		est une famille de formats de données utilisés pour la syndication de contenu Web ...
    		<a href="wikipedia/rss">En savoir plus sur le rss</a>
    	</p>
    	<a href="#">Suivre le flux RSS</a>
    </div>
    

    Dans ce cas-là on est d'accord que la class au lien n'est pas utile SAUF si tu mets un autre lien dedans,
    par exemple le lien pointant vers la définition de wikipedia ...
    [== CSS ==]
    .rss a {color:red}
    
    Là tu as un pb ... il faudrait :
    [== CSS ==]
    .rss > a {color:red}
    .rss p a {font-weight:bold}
    


    Si par contre tu n'as besoin que d'afficher le lien du flux, tel quel, pourquoi utiliser un conteneur spécifique ?
    Avec l'approche actuelle on impose une contrainte, celle d'utiliser un bloc supplémentaire.
    En donnant une class au lien, on donne plus de liberté.

    Et rien n'empêche d'avoir, si on le souhaite :
    [== HTML ==]
    <div class="rss">
    <a class="rss" href="#">Suivre le flux RSS</a>
    </div>
    
    car avec le CSS on peut distinguer les blocs
    [== CSS ==]
    div.rss {border:1px solid}
    a.rss {color:red}
    

    et si vraiment la double class pose pb (je ne vois pas où), on peut donner une autre class au bloc parent du lien ...

    Tu vois ce que je veux dire ?
Connectez-vous ou Inscrivez-vous pour répondre.