Wikini

MattRixxBacklinks

PagePrincipale :: DerniersChangements :: DerniersCommentaires :: ParametresUtilisateur :: Vous êtes ec2-54-196-208-187.compute-1.amazonaws.com

Modification de l'action {{backlinks}}


Voici les modifications que j'ai effectué:

fichiers modifiés:

Vous pouvez voir des exemples sur DotArtWork:ActionBacklinks (en bas)

dans /wakka.php:
function LoadPagesLinkingTo($tag) {
	return $this->LoadAll("SELECT w1.from_tag as tag, count(w2.from_tag) as nbr, pages.time as time
				FROM ".$this->config["table_prefix"]."links AS w1, ".$this->config["table_prefix"]."pages AS pages
				LEFT JOIN ".$this->config["table_prefix"]."links AS w2 on w1.from_tag=w2.to_tag
				WHERE w1.to_tag='".mysql_escape_string($tag)."' AND pages.tag =  w1.from_tag AND pages.latest = 'Y'
				GROUP BY w1.from_tag");
}


dans /actions/backlinks.php: (MAJ du 16/01/2004 à 17h02)
<?php

	/*
	Action "backlinks 1.0beta1".
	Développé par Patrick PAUL.
 	Licence GPL.
	Modifié par Matt.Rixx
	*/

	if ($this->GetParameter("title"))
	{
		if ($this->GetParameter("page"))
		{
			$page = $this->GetParameter("page");
		}
		else
		{
			$page = $this->getPageTag();
		}
		$title = $this->GetParameter("title");
	}
	elseif ($this->GetParameter("page"))
	{
		$page = $this->GetParameter("page");
		$title = "Pages ayant un lien vers ".$this->ComposeLinkToPage($page)."&nbsp;:";
	}
	else
	{
		$page = $this->getPageTag();
		$title = "Pages ayant un lien vers la page courante&nbsp;:";
	}

	$pages = $this->LoadPagesLinkingTo($page);
	echo $title."<br />\n";

	if ($pages)
	{
		if (!$exclude = $this->GetParameter("exclude"))
		{
			echo '<table style="border: 0px">';
			foreach ($pages as $page)
			{
				echo "\n<tr>\n";
				$nbr = $this->GetParameter("nbr") == 'true' ? $page["nbr"] : '&nbsp;';
				$date = $this->GetParameter("date") == 'true' ? 'modifié le '.date('d/m/Y H\hi', strtotime($page["time"])) : '&nbsp;';
				echo '<td>'.$this->ComposeLinkToPage($page["tag"])."</td>\n";
				echo '<td style="text-align: right; font-style: italic;">'."$nbr</td>\n";
				echo '<td style="font-style: italic;">'."$date</td>\n";
				echo '</tr>';
			}
			echo "\n</table>\n";
		}
		else
		{
			echo '<table style="border: 0px">';
			foreach ($pages as $page)
			{				
				$nbr = $this->GetParameter("nbr") == 'true' ? $page["nbr"] : '&nbsp;';
				$date = $this->GetParameter("date") == 'true' ? 'modifié le '.date('d/m/Y H\hi', strtotime($page["time"])) : '&nbsp;';
				// Show link if it isn't an excluded link
				if (!preg_match("/".$page["tag"]."(;|$)/", $exclude)) {
					echo "\n<tr>\n";
					echo '<td>'.$this->ComposeLinkToPage($page["tag"])."</td>\n";
					if ($nbr)	echo '<td style="text-align: right; font-style: italic;">'."$nbr</td>\n";
					if ($date)	echo '<td style="font-style: italic;">'."$date</td>\n";
					echo '</tr>';
				}
			}
			echo "\n</table>\n";
		}
	}
	else
	{
		echo "<i>Aucune page n'a de lien vers ", $this->ComposeLinkToPage($page), ".</i>";
	}
?>


Je trouve tes propositions très intéressantes, en particulier les paramètres "title" et "nbr". Je serais assez pour les intégrer à WikiNi. Quelques remarques cependant :
-- CharlesNepote

La différence entre les guillements simples et doubles en PHP est minime, surtout au niveau des performances. Dans une chaine entre guillement simple, aucune variable n'est remplacée par sa valeur, c'est à dire qu'un echo '$foo'; affichera $foo. C'est tout.
Sinon, tant qu'a enlever le <td>, autant enlever aussi le <tr> non ? [euh, non, on ne supprime pas le <td> c'est une erreur de formatage de ma part. -- CharlesNepote]
-- GeoffreyBachelet

Et au niveau des performances, l'avantage est à qui : guillemets simples ou guillemets doubles ? As-tu des références sur ce point ? -- CharlesNepote

Pour les performances, c'est forcemment à l'avantage des simples quotes car ca ne fait pas une évaluation de la chaine de caractère, ca l'écrit bêtement. En revanche 'blabla '.$var.' blabla' est plus long que "blabla $var blabla" car la concaténation est plus longue que l'évaluation de la chaine. Je n'ai aucune référence, mais je me souviens l'avoir lu. Bon, de toute facon, ca se compte en millième de secondes, hein? Donc, c'est pas bien grave.. c'est juste une habitude que j'ai pris d'utiliser les simple quotes plutot que les doubles
Par contre, je viens de lire que tu as écris '</td>\n', là il y a une erreur car '\n' ne fera pas un retour chariot car \n n'est pas évalué puisque c'est des simples quotes. Cela affichera \n dans la page html.
Pour le test sur $nbr et $date, tu as raison, j'y ai pensé aussi mais je n'ai pas encore eu le temps de faire la modification :) -- MattRixx

"il faudrait numéroter l'action : backlinks 1.0beta1" <<< heu... je fais ca ou et comment ? -- MattRixx

Question que je me pose: Devrais-je faire une classe pour la table, pour les résultats (MotWiki), pour les nombre et pour la date afin de personnaliser ce tableau facilement? Ou alors je laisse avec ces styles écrit en dur ? -- MattRixx

J'aime aussi le paramètre "title" sauf que je l'appelerais plutôt "message" ou "msg" -- EveLaFee
Il n'y a pas de commentaire sur cette page. [Afficher commentaires/formulaire]