Code: Alles auswählen
Falls innerhalb des Textes Begriffe vorkommen die in anderen Artikeln als Keywords eingeben wurden, so wird der Begriff zum entsprechenden Artikel dynamisch verlinkt, sofern nur ein anderer eindeutiger Artikel vorhanden ist, der das Keyword hat. Keywords müssen mit Komma getrennt sein.
Ausgabe:
Code: Alles auswählen
<?php
/***********************************************
* CONTENIDO MODUL - OUTPUT
*
* Modulname : Text Hyperlinked Internally
* Author : Michael Gautschi
* Copyright : Michael Gautschi
* Created : 11.09.05
* Modified :
* Version : 0.1
************************************************/
// Zuerst herausfinden welcher Metatype "Keywords" sind; normalerweise 5
$sql = "SELECT * FROM ".$cfg["tab"]["meta_type"] . " AS A WHERE A.metatype=\"keywords\"";
$db->query($sql);
if ($db->num_rows()==0) {
echo "Konnte nicht bestimmen welche Metatags keywords sind";
}
else {
$db->next_record();
$keywordid=$db->f("idmetatype");
$sql = "SELECT
metavalue,
ARTLANG.idlang,
ARTLANG.title,
ARTLANG.idart,
CATART.idcat
FROM
".$cfg["tab"]["meta_tag"]." AS META,
".$cfg["tab"]["art_lang"]." AS ARTLANG,
".$cfg["tab"]["cat_art"]." AS CATART,
".$cfg["tab"]["cat"]." AS CAT
WHERE
META.idmetatype = $keywordid AND
META.idartlang = ARTLANG.idartlang AND
ARTLANG.idart = CATART.idart AND
CAT.idcat = CATART.idcat AND
CAT.idclient = $client AND
metavalue <> '' AND
ARTLANG.idart <> $idart";
$db->query($sql);
if ($db->num_rows() != 0) {
$entries=array();
for ($i=0; $i<$db->num_rows(); $i++) {
$db->next_record();
$metavalues=$db->f("metavalue");
$id_art=$db->f("idart");
$id_cat=$db->f("idcat");
$title=$db->f("title");
$tmp_keywords=split(",",$metavalues);
foreach ($tmp_keywords as $tmp_keyword) {
$tmp_keyword=trim($tmp_keyword);
$entry["idart"]=$id_art;
$entry["idcat"]=$id_cat;
$entry["title"]=$title;
if ( !(array_key_exists($tmp_keyword,$entries)))
$entries[$tmp_keyword]=array();
array_push($entries["$tmp_keyword"],$entry);
}
}
$search=array();
$replace=array();
foreach($entries as $keyword=>$items) {
if (count($items)==1) { // alle Begriffe die genau einmal vorkommen
$item=$items[0];
$search[]=$keyword;
$navmod_link ="front_content.php?client=$client&lang=$lang&idcat=". $item["idcat"] . "&idart=" . $item["idart"];
$replace[]='<a href="'.$sess->url("$navmod_link").'" id="font">'.$keyword.'</a>';
}
}
$subject="CMS_HTML[1]";
echo str_replace($search,$replace,$subject);
}
else
echo "CMS_HTML[1]";
}
?>