Seite 1 von 1

modul: anhand keywords passenden (vergleichbaren) art. finde

Verfasst: Do 20. Jan 2005, 23:24
von master111
hallo tüftler,

ich habe ein modul gefunden, das keywords auslesen und in sortiert in eine liste schreiben kann.

nun bräuchtenwir aber ein modul, dass

1) die keywords ausliest (alle und die des aktuellen artikels)
2) nach häufigkeit sortiert
3) die 5 besten möglichkeiten in form auf des zu verweisenden artikels anhand deren überschriften auflistet.

klar geworden? soll einfach in einen artikel über äpfel auf ähnliche artikel verweisen. - bringt sicher nicht nur uns was!!!!

besten dank
DoMi


Code: Alles auswählen

<?php
/***********************************************
* CONTENIDO MODUL - OUTPUT
*
* Modulname   :     Stichwortindex
* Author          :     Michael Gautschi
* Copyright     :     Michael Gautschi
* Created     :     15.1.04
* 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 
               WHERE META.idmetatype = $keywordid
               AND     META.idartlang = ARTLANG.idartlang
               AND     ARTLANG.idart = CATART.idart
               AND     metavalue<>\"\"";

  $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");
       $idart=$db->f("idart");
       $idcat=$db->f("idcat");
       $title=$db->f("title");
       $tmp_keywords=split(",",$metavalues);
       foreach ($tmp_keywords as $tmp_keyword) {
         $tmp_keyword=trim($tmp_keyword);
         $entry["idart"]=$idart;
         $entry["idcat"]=$idcat;
         $entry["title"]=$title;
         if ( !(array_key_exists($tmp_keyword,$entries)))  $entries[$tmp_keyword]=array();
         array_push($entries["$tmp_keyword"],$entry);
         }     
       }
     ksort($entries);
     foreach($entries as $keyword=>$items) {
       echo "$keyword<ul>";
       foreach ($items as $item) {
          $navmod_link ="front_content.php?client=$client&lang=$lang&idcat=". $item["idcat"] . "&idart=" . $item["idart"];
          echo ' <li><a href="'.$sess->url("$navmod_link").'" id="font">'.$item["title"].'</a><br> ';
          }
       echo "</ul>";
       }  
     }
   else {
     echo "keine Stichworte gefunden";
     }
  }
?>

Verfasst: Fr 21. Jan 2005, 00:37
von imu
meinst du

Es gibt einen Artikel, der hat eins, zwei, drei, viele Keywords. Anhand dieser Keywords sucht das Modul Artikel, die die gleichen Keywords haben und listet diese auf (jeweils Headline 1 als Link).
Und das Ganze als Top5 - Liste.

... Und das Modul soll nur in den Keywords der anderen Artikel suchen, nicht in Überschriften undTexten?

Verfasst: Fr 21. Jan 2005, 00:44
von master111
genau! :-)

läßt sich sowas machen?

Besten Dank!!
DoMi

Top5

Verfasst: Fr 21. Jan 2005, 01:11
von imu
Hi, ich habe dir eine Nachricht geschrieben. Ich brauche da doch einige Infos ...