neues Modul : Text (HTML) hyperlinked internally

Gesperrt
mgautschi
Beiträge: 1
Registriert: So 11. Sep 2005, 16:21
Kontaktdaten:

neues Modul : Text (HTML) hyperlinked internally

Beitrag von mgautschi »

Beschreibung:

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.
Eingabe: (leer)
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]";
  }
?>
emergence
Beiträge: 10653
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence »

gibts ein demo zum ansehen ?
*** make your own tools (wishlist :: thx)
Gesperrt