AW: Tag Cloud erstellen
falls jemand Interesse an Tag Clouds hat hier ne, zugegebenermaßen, schnelle Lösung (man weiss ja nie wann die 2.18 endlich rauskommt
):
Klasse wird natürlich noch erweitert! Für Upates bitte
PM an mich.
Geplant_
- verschiedene Schriftgrössen
- Anzahl Tage die zurückgezählt werden soll
- verschiedene Schriftarten
- Trenner für Tags
- etc.
Diese Datei 'class.TagCloud.php' ins classes Verzeichnis kopieren
Code:
<?php
class TagCloud {
var $KategorieID;
var $Anzahl;
var $DaysBack;
var $TagClouds;
var $TagText;
var $CountTags;
function TagCloud($KategorieID,$Anzahl,$DaysBack) {
$this->KategorieID = $KategorieID;
$this->Anzahl = $Anzahl;
$this->DaysBack = $DaysBack;
$this->TagText = '';
$this->CountTags = 0;
$this->GenerateTagCloud();
}
function GenerateTagCloud() {
$i = 0;
$this->TagClouds = $GLOBALS["DB"]->executeQuery("SELECT COUNT(b.cSuchanfrage), b.cSuchanfrage, c.cSEO
FROM tbesucherarchiv a, tbesuchersuchausdruecke b,
tartikel c, tkategorieartikel d, tkategorie e
WHERE a.kBesucher = b.kBesucher AND
SUBSTRING(a.cEinstiegsseite,2) = c.cSEO
AND d.kArtikel = c.kArtikel AND
d.kKategorie = e.kKategorie AND e.kKategorie = $this->KategorieID
GROUP BY b.cSuchanfrage ORDER BY
COUNT(b.cSuchanfrage) DESC LIMIT 0,$this->Anzahl",2);
foreach ($this->TagClouds as $Row) {
$this->TagText .= "- <b><a href='".$Row->cSEO."'>".$Row->cSuchanfrage."</a></b> <br> ";
$i++;
}
$this->CountTags = $i;
}
function GetText() {
return $this->TagText;
}
}
?>
Dann, je nach Bedarf folgende Dateien anpassen:
(für Kategoriebox) produkte.php
Code:
require_once(PFAD_CLASSES."class.TagCloud.php");
...
Code:
$MyTagCloud = new TagCloud($AktuelleKategorie->kKategorie,10,10);
$smarty->assign('TagCloudCount',$MyTagCloud->CountTags);
$smarty->assign('TagCloudText',$MyTagCloud->GetText());
z.B. temlates/tpl_inc/leftContainer.tpl
Code:
{if $TagCloudCount > 0}
<div id="subbox" style="margin-top:10px;">
<div id="subbox_header_hell">
<p class="boxheader">Top Kategorie-Tags</p>
</div>
<div id="subbox_content">
<table class="kategorien" cellpadding="0" cellspacing="0" width="100%" style="padding:0px;margin:0px;">
<P>{$TagCloudText}</P>
</table>
</div>
<div id="subbox_bottom_hell"></div>
</div>
{/if}
PS: Diese Lösung generiert Tag Clouds aus den Suchbegriffen, die über Suchmaschinen reinkamen.
Ich hoffe, dass diese Krücke ein paar Leuten hilft.
Bei Fragen schickt mir ne PM
Gruss
bartholetti