Les liens automatiques

Ceci est une ARCHIVE, peut-être périmée. Vérifiez bien les compatibilités !

Cette contribution vous permettra de définir une série de mots qui se transformeront automatiquement en liens sur toutes les pages de votre site et ce via l’espace d’administration.

Cela peut s’avérer fort utile pour monter facilement un glossaire ou proposer à l’instar des actualités de Yahoo, certains liens relatifs (vers des images, rubriques ou fiches disponibles ailleurs sur le site, par exemple).

Mise en place

Installation de la table mysql

A l’aide de phpmyadmin par exemple, créez la table suivante sur votre base SPIP :

CREATE TABLE <span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+c3BpcF9hdXRvbGlua3M8L2NvZGU+"></span> (
  <span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+aWQ8L2NvZGU+"></span> int(11) NOT NULL auto_increment,
  <span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+bW90PC9jb2RlPg=="></span> varchar(50) NOT NULL default '',
  <span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+dXJsPC9jb2RlPg=="></span> varchar(255) NOT NULL default '',
  KEY <span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+aWQ8L2NvZGU+"></span> (<span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+aWQ8L2NvZGU+"></span>)
) TYPE=MyISAM AUTO_INCREMENT=0 ;

Interface d’administration

Créez le fichier autolinks.php3 avec le code suivant ou téléchargez le ici :

<?php

//GPL LINAGORA SSLL 2004

include ("inc.php3");
debut_page("Liens automatiques", "documents", "autolinks");
echo "<br><br><br>";
gros_titre("Les liens automatiques");

debut_gauche();

echo "<FONT SIZE=2 FACE='Georgia,Garamond,Times,serif'>";

if ($connect_statut != "0minirezo" OR !$connect_toutes_rubriques) {
	echo "<B>Vous n'avez pas acc&egrave;s &agrave; cette page.</B>";
	exit;
}

$a = $_POST['a'];
if($a){
	if($a == "manage_post"){
		$delete = $_POST['delete'];
		if($delete){
			$msg = $_POST['msg'];
				foreach ($msg as $id => $val) {
					spip_query("DELETE FROM spip_autolinks WHERE id='$id'"); 
				}
		}
	}
	if($a == "new"){
		$mot = $_POST['mot'];
		if($mot){
			$mot = addslashes($mot);
			$url = addslashes($url);
				spip_query("INSERT into spip_autolinks VALUES('',  '$mot', '$url')");
		}
	}	
}

echo '<b>Nouveau lien automatique</b><br><br>'
.'<table cellpading="3" cellspacing="1">'
.'<form method="post" action="autolinks.php3">'
.'<tr><td>Mot: <input type="text" name="mot" size="50" maxlength="50"></td></tr>'
.'<tr><td>URL: <input type="text" name="url" size="50" maxlength="255"></td></tr>'
.'<td><input type="submit" value="Poster"></td></tr><input type="hidden" name="a" value="new"></form></table>';
echo '<br><br><b>Liens actifs</b><br><br>'
.'<table width="500" cellpading="3" cellspacing="1">'
.'<form method="post" action="autolinks.php3">';
$result = spip_query("SELECT id, mot, url FROM spip_autolinks order by id DESC");
while(list($id, $mot, $url) = spip_fetch_row($result)){
	$mot = stripslashes(htmlentities($mot));
	$url = stripslashes(htmlentities($url));
	echo "<tr><td><input type=\"checkbox\" name=\"msg[$id]\"></td><td>$mot => $url</td></tr>";
}
echo '<tr><td></td><td><input type="hidden" name="a" value="manage_post"><input type="submit" name="delete" value="Effacer la selection"></td>';
echo '</form></tr></table>';
echo "</FONT>";
fin_page();

?>

Puis placez-le dans votre répertoire ecrire/

Edition du fichier mes_fonctions.php3

Ajoutez dans votre fichier mes_fonctions.php3, présent à la racine de votre site, la fonction PHP suivante :

function autolinks ($texte) {
	$result = spip_query("select mot, url FROM spip_autolinks order by id");
	while (list($word, $val) = spip_fetch_row($result)) { 
		$mot[] = " $word ";
		$recherche[] = " <a href=\"$val\" class=\"spip_auto\">$word</a> ";
	}
	$texte = str_replace ($mot, $recherche, $texte);
	return $texte;
}

Définition des liens automatiques

Connectez-vous à votre espace d’administration, puis accédez à la page d’administration en vous rendant sur le fichier http://www.votresite.tld/ecrire/autolinks.php3

Renseignez le formulaire en indiquant le mot à recherché et l’url correspondante.

Le nombre de liens est illimités. Vous pouvez mettre des liens relatifs ou absolus. A noter egalement que les mots recherchés sont sensibles à la casse et doivent être isolés d’un espace de chaque coté.

Vous pouvez mettre très facilement un raccourci dans votre barre de navigation vers cette page d’administration, en suivant notre astuce présente sur cette page.

Edition de vos squelettes

Enfin, éditez vos squelettes en spécifiant pour chaque élément affichés s’ils doivent être traités ou non.

Exemple :

- [(#DESCRIPTIF|autolinks)]
- [(#TEXTE|autolinks)]
- [(#PS|autolinks)]

Discussion

Aucune discussion

Ajouter un commentaire

Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :

  • Désactiver tous les plugins que vous ne voulez pas tester afin de vous assurer que le bug vient bien du plugin X. Cela vous évitera d’écrire sur le forum d’une contribution qui n’est finalement pas en cause.
  • Cherchez et notez les numéros de version de tout ce qui est en place au moment du test :
    • version de SPIP, en bas de la partie privée
    • version du plugin testé et des éventuels plugins nécessités
    • version de PHP (exec=info en partie privée)
    • version de MySQL / SQLite
  • Si votre problème concerne la partie publique de votre site, donnez une URL où le bug est visible, pour que les gens puissent voir par eux-mêmes.
  • En cas de page blanche, merci d’activer l’affichage des erreurs, et d’indiquer ensuite l’erreur qui apparaît.

Merci d’avance pour les personnes qui vous aideront !

Par ailleurs, n’oubliez pas que les contributeurs et contributrices ont une vie en dehors de SPIP.

Qui êtes-vous ?
[Se connecter]

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici

Ce champ accepte les raccourcis SPIP {{gras}} {italique} -*liste [texte->url] <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.

Ajouter un document

Suivre les commentaires : RSS 2.0 | Atom