Bonjour à toutes et à tous,

voilà, je suis en train de finir le design de mon site portfolio pour le concours du CSSR 2007, j'en ai d'ailleurs profité pour le faire motoriser par WordPress (excellent outil au demeurant). Puisque j'ai une page de news (qui se sert donc du système "blog" de WordPress pour fonctionner), je la mets un peu en évidence grâce au plugin "Fuzzy Recent Posts" qui me permet de faire afficher dynamiquement et automatiquement une petite liste des titres des dernières news, le tout est inséré dans une une sidebar.

Jusque là, aucun problème, tout s'affiche correctement. Là où ça devient un peu plus problèmatique, c'est que hier, je me suis attelé à proposer mon code au validateur du W3C, j'ai examiné les erreurs qu'il me présentait pour les corriger.
Dans les erreurs en question, il y avait des trucs pas nets venant justement du code produit par Fuzzy Recent Posts.

Je dois dire que je suis un peu handicapé car je ne connais pas encore beaucoup le php (pour ainsi dire pas), donc je ne sais pas très bien comment fonctionne ce plugin pour générer le html, mais ce qu'il me semble, c'est qu'il le ferait de manière assez bordelique. Il y a des balises <ul> et <li> dans tous les sens et d'ailleurs, j'ai franchement l'impression que ça donne quelque chose qui n'est pas sémantique du tout.

voici apparemment le code concerné que l'on retrouve dans le code de la sidebar :
		<ul id="sidebarright">
<?php if ( function_exists('dynamic_sidebar') && dynamic_sidebar(2) ) : else : ?>
<ul>
<li><?php wp_meta(); ?></li>

<?php endif; ?>

</ul>


Et voici le code l'on peut récupérer par le navigateur et qui serait généré par le plugin :
	  		<ul id="sidebarright">
<ul>
<li></ul></li><div class="tile sem_recent"><div class="tile_header"><h2>Les derni&egrave;res news</h2>
</div><div class="tile_body"><ul>
<li><a href="http://www.xxxxxxxxxxx/">article 3</a></li>
<li><a href="http://www.xxxxxxxxxxx"></a></li>
<li><a href="http://www.xxxxxxxxxxx/">essai 3</a></li>
<li><a href="http://www.xxxxxxxxxxx</a></li>
</ul>
</div></div><li><ul></li>

</ul>


J'avoues que je me prends la tête depuis un certain temps sur ce truc. J'ai essayé de différentes manières en supprimant, ajoutant ou modifiant plusieurs de ces balises <ul> et <li> sans succès.

Merci d'avance pour votre précieuse aide. Smiley cligne
Modifié par touvert (31 Jul 2007 - 19:52)
Salut touvert ! peux-tu donner le code entier de ton sidebar.php, parce que apparemment tu n'a donnée que le début, là.

Les petits problèmes de validations occasionnés par les plugins WP sont généralement simplement réparables... Pour les ul et li dans la sidebar, sache que certaines fonctions php de WP affichent automatiquement les informations sous forme de liste (liste de catégorie directement entourée de balises li-ul par exemple). Donc au début le code peut paraitre un peu zarb mais en fait c'est en général plutot valide..

Bon ben sinon je vois qu'on va être concurrents directs puisque nous participons tous deux au concours avec des sites sous WP Smiley lol
..Ba t'inquiét' t'as toutes tes chances Smiley lol Smiley lol Smiley lol
Salut audrasjb Smiley smile ,

voici le code brut, donc celui qu'on retrouve dans le système de modification en ligne de WP :

		<ul id="sidebarright">
<?php if ( function_exists('dynamic_sidebar') && dynamic_sidebar(2) ) : else : ?>
<ul>
<li><?php wp_meta(); ?></li>

<?php endif; ?>

<div id="encart-telechargements">
<h2>téléchargements</h2>
<ul>
<li><a href="#" title="Pressbook">Pressbook</a></li>
<li><a href="#" title="Acrobat Reader">Acrobat Reader</a></li>
</ul>
</div>
<div id="encart-contact">
<h2>Contact</h2>
<p><strong>Steve Pereaux</strong><br />rue du calvaire 1A2/2<br />6060 Gilly (B)<br />Téléphone :</p>
</div>
<div id="encart-alsacreations">
<h2>Alsacreations.com</h2>
<a href="http://www.alsacreations.com" title="communauté centrée sur les standards du web et l'accessibilité des sites"><img src="http://www.xxxxx" alt="communauté centrée sur les standards du web et l'accessibilité des sites"/></a>
<p><a href="http://www.alsacreations.com">Alsacréations</a> communauté centrée sur les standards du web et l'accessibilité des sites</p></div>

<div id="adsense"></div>

</ul>


et voici la source que j'obtiens à partir du navigateur :
<div id="rightnav">

	  		<ul id="sidebarright">
<ul>
<li></ul></li><div class="tile sem_recent"><div class="tile_header"><h2>Les dernières news</h2>
</div><div class="tile_body"><ul>
<li><a href="http://www.xxxxxxxxx/">article 3</a></li>
<li><a href="http://www.xxxxxxxxx/">essai 3</a></li>
<li><a href="http://www.xxxxxxxxx/">News 1</a></li>
</ul>
</div></div><li><ul></li>


<div id="encart-telechargements">
<h2>téléchargements</h2>
<ul>
<li><a href="#" title="Pressbook">Pressbook</a></li>
<li><a href="#" title="Acrobat Reader">Acrobat Reader</a></li>
</ul>
</div>
<div id="encart-contact">
<h2>Contact</h2>
<p><strong>Steve Pereaux</strong><br />rue du calvaire 1A2/2<br />6060 Gilly (B)<br />Téléphone :</p>

</div>
<div id="encart-alsacreations">
<h2>Alsacreations.com</h2>
<a href="http://www.alsacreations.com" title="communauté centrée sur les standards du web et l'accessibilité des sites"><img src="http://www.xxxxxxxxx" alt="communauté centrée sur les standards du web et l'accessibilité des sites"/></a>
<p><a href="http://www.alsacreations.com">Alsacréations</a> communauté centrée sur les standards du web et l'accessibilité des sites</p></div>

<div id="adsense"></div>

</ul></div>


En fait, pour essayer d'isoler le problème, j'avais retiré tout ce qui était présent en dessous de ce morceau de code php : "<?php endif; ?>" et en laissant la balise ul de fermeture en dessous.
A ce moment là, le validateur me donnait un minimum de 10 erreurs.

A ben sinon, c'est chouette qu'il y ait des concurrents qui vont participer avec la même base au niveau de l'outil. Smiley ravi Smiley cligne .

Merci beaucoup pour ton aide. Smiley cligne
Ben déja t'as des div dans ton ul principale de la sidebar (id="sidebarright"). Je pense que tes erreurs de validation viennent de là. Le reste me semble correct, non ? enfin j'ai pas regardé vraiment en détail, mais ça à l'air.

Bon je retourne au taf (ça va être dur de finir avant vendredÿ prochain Smiley langue )
audrasjb a écrit :
t'as des div dans ton ul principale de la sidebar (id="sidebarright"). Je pense que tes erreurs de validation viennent de là. Le reste me semble correct, non ? enfin j'ai pas regardé vraiment en détail, mais ça à l'air.


Ah mais en fait, quand je disais auparavant que j'avais retiré une partie du code pour essayer d'isoler le problème, j'avais justement retiré tous les div pour ne laisser que ce qui suit :
		<ul id="sidebarright">

<?php if ( function_exists('dynamic_sidebar') && dynamic_sidebar(2) ) : else : ?>

<ul>

<li><?php wp_meta(); ?></li>

<?php endif; ?>

</ul>


Et c'est donc avec ceci que j'ai eu un minimum de 10 erreurs.

Par contre (merci au passage de me l'avoir fait remarquer), j'ai retiré les div de la zone des balises <ul> et visiblement, ça s'affiche bien. Mais j'ai toujours actuellement 15 erreurs de validation.

Voilà, je ne saurais malheureusement en dire beaucoup plus Smiley ohwell

Merci pour ton aide et bon courage pour la fin de semaine. Smiley cligne
quand je parlais de vendredÿ prochain, je parlais évidemment du vendredÿ 10 août, date de cloture du concours !!!

Comme par hasard : un vendredÿ Smiley biggol
Juste comme ça : essaye d'aller voir dans les fichiers de ton plugin. C'est la fonction wp_meta qui génére peut etre tes erreurs.
audrasjb a écrit :
essaye d'aller voir dans les fichiers de ton plugin. C'est la fonction wp_meta qui génére peut etre tes erreurs.


Bon, j'ai ouvert le fichier (visiblement, je peux pas me tromper de fichier puisqu'il n'y en a qu'un seul) contenant la fameuse fonction wp_meta.

voici le bloc de code (oui, mine de rien c'est un peu conséquent pour une petite fonction comme ça) dans lequel l'appellation "wp_meta"( elle est située dans le bas du code, je l'ai mis en gras) est présente, la voici :
function sem_recent_posts()
	{
		$this->cache_file = sem_cache_path . 'sem-recent-posts'
			. isset($GLOBALS['site_id']) ? ( '-' . $GLOBALS['site_id'] ) : '';

		$params = get_settings('sem_recent_posts_params');

		if ( $params )
		{
			foreach ( $params as $key => $value )
			{
				$this->params[$key] = $value;
			}
		}
		else
		{
			update_option('sem_recent_posts_params', $this->params);
		}

		if ( isset($_GET['action'])
			&& in_array($_GET['action'], array('flush', 'flush_cache'))
			)
		{
			$this->flush_cache();
		}

		add_action('admin_menu', array(&$this, 'add2admin_menu'));

		add_action('publish_post', array(&$this, 'flush_cache'), 0);
		add_action('save_post', array(&$this, 'flush_cache'), 0);
		add_action('edit_post', array(&$this, 'flush_cache'), 0);
		add_action('delete_post', array(&$this, 'flush_cache'), 0);
		add_action('publish_phone', array(&$this, 'flush_cache'), 0);
		#add_action('generate_rewrite_rules', array(&$this, 'flush_cache'), 0);
		add_action('init', array(&$this, 'init'));

		add_action('plugins_loaded', array(&$this, 'widgetize'));

		$this->displayed = false;
		add_action('[b]wp_meta[/b]', array(&$this, 'auto_display'));
	} # end sem_recent_posts()


Sinon, ben, ici, n'y comprenant quasi rien au php, je suis complètement paumé Smiley rolleyes

Merci Smiley smile