Annonce

Faites la différence entre le service WordPress.com et l'application libre WordPress.

Mettez-vous à jour ! WordPress 3.3.1 est disponible en français.

Annonce 1 : Le Codex en français a besoin de vous pour avancer !
Annonce 2 : Avant de poster, n'oubliez pas de faire une petite recherche et de lire les règles de ce forum.
Annonce 3 : Lisez notre blog, il regorge de bonnes informations.
Annonce 4 : Rejoignez-nous sur Facebook, Google + et sur Twitter

#1 10-03-2010 17:30:28

Magic-Micky
Membre WP
Date d'inscription: 10-03-2010
Messages: 1

Petite question d'optimisation pour mon plugin

Salut à tous !
Voilà, je suis en train de devellopper mon premier plugin pour wordpress. Meme si ca fait un petit moment que j'ai pas codé, j'ai quelques experiences en php derrière moi, mais j'ai un petit soucis d'optimisation. Dans mon code, je vais recuperer des liens vers des vidéos youtube (entre autres), pour au final, sortir une sorte de gallerie de vidéos. Sauf que je laisse a l'utilisateur le choix d'afficher ou nom les images des vidéos, ou juste les titres.
Et la j'ai un petit soucis. J'utilise donc une boucle pour traiter les différente vidéos. Pour le moment, je vérifie dans la boucle, si l'utilisateur souhaite afficher les images des vidéos ou pas. Et je me suis dit que c'était pas le top, parce que du coup, on le verifie pour chaque vidéo, alors pour alleger la charge du plugin, j'imaginait mettre la verification avant la boucle. Mais j'ai l'impression que ca fait un code moins propre !
Comme un bon gros morceau de code vaut mieu qu'un long discours, voilà mon code en ce moment (vérification dans la boucle)

Code: html

<?php
function youtubeonapage($atts) {

	function get_youtube($username, $limit, $thumb) {

		require_once(ABSPATH . WPINC . '/class-snoopy.php'); //snoopy class is required here

		$url = "http://gdata.youtube.com/feeds/api/users/$username/uploads?max-results=$limit&alt=json"; //json file

		  $snoopy = new Snoopy;

		$output="";

		$result = $snoopy->fetch($url);// fetch $url with snoopy class

		//if : no error returned, by the fetching, AND no error returned by youtube

		if($result == 1  && $snoopy->results != 'User not found' && $snoopy->results != "Invalid max-results") {

			$ydata = json_decode($snoopy->results); // then, json_decode the results
			$maxreturn = $ydata->feed->{'openSearch$totalResults'}->{'$t'};
				for ($n=0;$n < $maxreturn;$n++) {
					$ytitle = $ydata->feed->entry[$n]->title->{'$t'}; //define video title

					$ylink = $ydata->feed->entry[$n]->link[0]->href; // video link

					$ydate = strtotime($ydata->feed->entry[$n]->published->{'$t'}); // video time

					$yminiature = $ydata->feed->entry[$n]->{'media$group'}->{'media$thumbnail'}[0]->url; //generating thumbs
					$output_start = "";
					$output_end= "";
					

					if($thumb==1) { // If thumbs enabled

						$output .= '<span class="youtube_text"><a href="' . $ylink . '"><img src="' . $yminiature . '" alt="thumb" class="youtube_image"/></a> <span class="youtube_title"><a href="' . $ylink . '">' . $ytitle . '</a></span>, <span class="youtube_ago">' . ago($ydate) . ' ago</span> </span><br class="youtube_br"/>';

					}

					else { // if thumbs disabled

						$output .= $output .= '<span class="youtube_text"><span class="youtube_title"><a href="' . $ylink . '">' . $ytitle . '</a></span>, <span class="youtube_ago">' . ago($ydate) . ' ago</span> </span><br />';

					}
				}
			}
			else { //traitement des erreurs, pas interessant ici }
			//tout le reste de la fonction get_youtube
		}
	}
?>

Et voilà comment je pensais l'optimiser (verification avant la boucle - juste la partie qui change, a partir dufor)

Code: html

				if($thumb==1)
					for ($n=0;$n < $maxreturn;$n++) {
						$ytitle = $ydata->feed->entry[$n]->title->{'$t'}; //define video title

						$ylink = $ydata->feed->entry[$n]->link[0]->href; // video link

						$ydate = strtotime($ydata->feed->entry[$n]->published->{'$t'}); // video time

						$yminiature = $ydata->feed->entry[$n]->{'media$group'}->{'media$thumbnail'}[0]->url; //generating thumbs

						$output .= '<span class="youtube_text"><a href="' . $ylink . '"><img src="' . $yminiature . '" alt="thumb" class="youtube_image"/></a> <span class="youtube_title"><a href="' . $ylink . '">' . $ytitle . '</a></span>, <span class="youtube_ago">' . ago($ydate) . ' ago</span> </span><br class="youtube_br"/>';

					}
				}

					else { // if thumbs disabled
						for ($n=0;$n < $maxreturn;$n++) {
							$ytitle = $ydata->feed->entry[$n]->title->{'$t'}; //define video title

							$ylink = $ydata->feed->entry[$n]->link[0]->href; // video link

							$ydate = strtotime($ydata->feed->entry[$n]->published->{'$t'}); // video time

							$yminiature = $ydata->feed->entry[$n]->{'media$group'}->{'media$thumbnail'}[0]->url; //generating thumbs

							$output .= '<span class="youtube_text"><span class="youtube_title"><a href="' . $ylink . '">' . $ytitle . '</a></span>, <span class="youtube_ago">' . ago($ydate) . ' ago</span> </span><br />';

					}
				}

Donc j'aimerais savoir quel version du code vous trouvez la plus propre ? Je penche vers la deuxième version, mais comme je suis pas sur, je préfère demander !

Merci beaucoup de votre aide

PS : ceci est mon premier message sur le forum d'entraide wordpress, alors bonjour ! smile

Hors ligne

 

Pied de page des forums

Propulsé par PunBB 1.2.23
© Copyright 2005-2006 WordPress France

[ Generated in 9.347 seconds, 11 queries executed ]