Ähnliche Artikel
Ich habe ein kleines REDAXO Modul erstellt welches zu einem Artikel "Ähnliche Artikel" ausgibt.
Zu diesem Modul wird eine neue Spalte in der Tabelle "rex_article" benötigt. Diese erstellen wir wie im Bild angezeigt, über das Backend unter "Meta Infos".
Nun sind wir in der Lage zu jedem Artikel "Tags" zu vergeben um den Artikel zu Kategorisieren. Mehrere "Tags" können wir mit "," (Kommata) separieren.
Um das ganze auszuwerten, erstellen wir ein neues Modul mit dem nachfolgenden Code.
<div class="aehnliche_article">
<h3>Ähnliche Artikel</h3>
<ul>
<?php
$tagEnv = rex_request("tag",string);
// Nur auswerten wenn es ein Artikel ist, und wir uns nicht im Backend befinden
if ($REX['ARTICLE'] && $REX['ARTICLE']->getValue('art_tags') <> "") {
// Auslesen der Tags des aktuelles Artikels
$tag = $REX['ARTICLE']->getValue('art_tags');
// Spliten der Tags und für jeden einzelnen anfragen ob es dazugehoerige Artikel gibt.
$sqlRef = new rex_sql();
$i = 0;
$tagArray = preg_split("/,/",$tag);
$size = sizeof($tagArray);
foreach ($tagArray as $key) {
$i++;
$articleTag .= " art_tags like '%$key%'";
if ($i < $size)
$articleTag .= " or";
}
$sqlRef->setQuery("select id, name, art_description from rex_article where status = 1 and $articleTag order by rand() limit 5");
foreach($sqlRef->getArray() as $value) {
print '<li><a href="'.rex_getUrl($value["id"]).'">'.$value["name"].'</a><br/><div class="description">'.$value["art_description"].'</div></li>';
}
} else {
echo "Keine ähnlichen Artikel vorhanden";
}
?>
</ul>
</div>
<a name="tags"> </a>
<div class="tags_auflistung">
<?php
if ($REX['ARTICLE']) {
$tag = $REX['ARTICLE']->getValue('art_tags');
$tagArray = preg_split("/,/",$tag);
echo 'Tags: <span class="tags">';
foreach ($tagArray as $key) {
print '<a href="?tag='.$key.'#tags">'.$key.'</a> ';
}
echo '</span><br/>';
echo 'Erstellt: '.date("d.m.y",$this->getValue("createdate")).'';
// Ausgeben aller Artikel welche zu dem ausgewaehlten tag gehoeren
if ($tagEnv) {
$sqlRef = new rex_sql();
$sqlRef->setQuery("select id, name from rex_article where status = 1 and art_tags like '%".htmlspecialchars($tagEnv)."%'");
print '<br/><ul>';
foreach($sqlRef->getArray() as $value) {
print '<li><a href="'.rex_getUrl($value["id"]).'">'.$value["name"].'</a></li>';
}
print '</ul>';
}
}
?>
</div>
Zu guter Letzt muss man lediglich dieses Modul in die Artikel hinzufügen. Fertig!
Ähnliche Artikel
- Coin BezahlsystemIch erstelle derzeit aus Interesse ein Coin Bezahlsystem Addon für Redaxo. Dieses System bietet die Möglichkeiten Produkte unterschiedlicher Art (aber Digitaler Form) zu Verwalten.
- PHP5 Problem unter Apache2
- Tag CloudBasierend auf mein Redaxo Modul "Ähnliche Artikel", habe ich ein Template zum ausgeben einer Tag Cloud erstellt.
- Ähnliche ArtikelIch habe ein kleines REDAXO Modul erstellt welches zu einem Artikel "Ähnliche Artikel" ausgibt.
- PHP5 Memcache Testen



Kommentare
Noch keine Kommentare für diesen Eintrag vorhanden