Titre du sujet : Mise en relation du module News avec le module Wordbook par patrickc80 sur 20/01/2008 06:51:54
Pour ceux qui seraient intessés, je me suis amusé à utiliser une adaptaion qui fonctionne pour le module Wordbook, afin de l'utiliser avec le module News, (en relation avec le module Wordbook). Suite à une discussion qui fonctionne avec Wordbook, je me suis dit pourquoi ne pas essayer de l'adapter pour le module News, afin que les lecteurs qui lisent un article sur votre site qui ne comprennent pas un terme technique, ou un mot spécifique, qui se trouve dans le texte, puissent avoir un lien qui pourrait les renseigner sur ce terme. Explication: l'adaptation concerne la création d'un lien automatique sur un mot qui se trouve dans le texte de l'article du module News et qui correspond à une définition qui se trouve dans le module Wordbook, le mot en question est surligné automatiquement en lien sur lequel le lecteur peut cliquer, et accéder ainsi directement sur la page du terme qui se trouve dans Wordbook.
Le code. Ouvrir le fichier: modules/News/article.php
Le code initial (à partir de la ligne 192):
$bodytext = $article->bodytext();
Le code transformé:
$bodytext = $article->bodytext();
//hack pour afficher les liens vers les définitions wordbook par Pat80 Le yorksire Terrier - http://yorkshire.dynalias.com
$parts = explode("|LIENTERME|", $bodytext);
// Rechercher tous les termes du glossaire Wordbook.
$allterms = $xoopsDB -> query( "SELECT entryID, term FROM " . $xoopsDB -> prefix( "wbentries" ));
while ( list( $entryID, $term ) = $xoopsDB -> fetchrow($allterms ))
{
foreach($parts as $key=>$part)
{
$realterm = $term;
// singulier -
$term2 = $realterm;
$term_q = preg_quote($term2, '/');
$search_term = "/b$term_qb/i";
$replace_term = "<span><b><a style='text-decoration: underline; 'href='".XOOPS_URL."/modules/wordbook/entry.php?entryID=".$entryID."' target='_blank'>".$term2."</a></b></span>";
$parts[$key] = preg_replace($search_term, $replace_term, $parts[$key]);
// pluriel -
$term2 = $realterm."s";
$term_q = preg_quote($term2, '/');
$search_term = "/b$term_qb/i";
$replace_term = "<span><b><a style='text-decoration: underline; 'href='".XOOPS_URL."/modules/wordbook/entry.php?entryID=".$entryID."' target='_blank'>".$term2."</a></b></span>";
$parts[$key] = preg_replace($search_term, $replace_term, $parts[$key]);
// pluriel avec un e
$term2 = $realterm."es";
$term_q = preg_quote($term2, '/');
$search_term = "/b$term_qb/i";
$replace_term = "<span><b><a style='text-decoration: underline; 'href='".XOOPS_URL."/modules/wordbook/entry.php?entryID=".$entryID."' target='_blank'>".$term2."</a></b></span>";
$parts[$key] = preg_replace($search_term, $replace_term, $parts[$key]);
// pluriel avec al pour langue francaise - hack aquaportail.com
if ( substr( $realterm, -2 ) == "al" )
{
$term2 = substr( $realterm, 0, strlen($realterm)-2 )."aux";
$term_q = preg_quote($term2, '/');
$search_term = "/b$term_qb/i";
$replace_term = "<span><b><a style='text-decoration: underline; 'href='".XOOPS_URL."/modules/wordbook/entry.php?entryID=".$entryID."' target='_blank'>".$term2."</a></b></span>";
$parts[$key] = preg_replace($search_term, $replace_term, $parts[$key]);
}
}
}
$bodytext = implode("|LIENTERME|", $parts);
// fin du hack
|