Software >> Redaxo


Tag Cloud


Basierend auf mein Redaxo Modul "Ähnliche Artikel", habe ich ein Template zum ausgeben einer Tag Cloud erstellt. Es fehlt allerdings noch die Möglichkeit das man auf den jeweiligen Tag klickt und anschließend eine Auflistung der dazugehörigen Dokumente bekommt.

 

 

<h3>Tags</h3>
<div class="cloud">

<?php


// Uebergebener Tag um die Artikel anzuzeigen welche diesen Tag beinhalten
$tag rex_request("tag",string);

// Nur auswerten wenn es ein Artikel ist, und wir uns nicht im Backend befinden
if ($REX['ARTICLE'] && !$tag) {       

  
// Auslesen aller Tag
  
$sqlRef = new rex_sql();
  
$sqlRef->setQuery("select art_tags from rex_article where status = 1");


  
// haeufigkeit aber der ein tag angezeit werden soll
  
$tmin 1;

  
//hoechste anzahl eines tags
  
$tmax 0;
  
// maximale schriftgroesse
  
$fmax 20;

  foreach(
$sqlRef->getArray() as $value) {
    
$value str_replace(' ','',$value);
    
$tagArray preg_split("/,/",$value["art_tags"]);
    foreach (
$tagArray as $tag) {
      
$tag strtolower($tag);
      if (
$double[$tag] >= 1) {
        
$double[$tag] = $double[$tag] + 2;
      } else { 
        
$double[$tag] = 1;
      }
      if (
$double[$tag] > $tmax)
        
$tmax $double[$tag];
    }
  }

  
// sortieren der tags
  
ksort($double);

  
// tags ausgeben
  
foreach ($double as $key => $value) {

    
// errechnen der schriftgroesse
    
$size $fmax * (($value $tmin) / ($tmax $tmin));

    if (
$value $tmin) {
      print 
'<a href="?tag='.$key.'" style="font-size:'.round($size+7).'pt;">'.$key.'</a> &nbsp;';
    }
  }  
} else {

  
$sqlRef = new rex_sql();
  
$sqlRef->setQuery("select id, name from rex_article where status = 1 and art_tags like '%".htmlspecialchars($tag)."%'");

  print 
'<ul>';
  foreach(
$sqlRef->getArray() as $value) {
    print 
'<li><a href="'.rex_getUrl($value["id"]).'">'.$value["name"].'</a></li>';
  }
  print 
'</ul>';
 }
?>
</div>


Ähnliche Artikel

  • Ähnliche Artikel
    Ich habe ein kleines REDAXO Modul erstellt welches zu einem Artikel "Ähnliche Artikel" ausgibt.
  • Tag Cloud
    Basierend auf mein Redaxo Modul "Ähnliche Artikel", habe ich ein Template zum ausgeben einer Tag Cloud erstellt.
  • Google Friend Connect Anbindung an REDAXO
    Ich habe mir nun ein Template erstellt, welche über die OpenSocial API GoogleFriendConnect (kurz GFC) direkt in meine Homepage integriert. Das Template ist noch sehr simple gehalten und liest derzeit lediglich den Usernamen und das Profilphoto aus.
  • PHP5 Problem unter Apache2
  • PHP5 Memcache Testen
 
Tags: redaxo   template   php  
Erstellt: 29.07.10

Kommentare

Noch keine Kommentare für diesen Eintrag vorhanden

Bitte Melden Sie sich an um ein Kommentar zu schreiben

comment_rank Kommentar-AddOn für RedaxoCMS von franz007