Artikelliste und aktiven Link kennzeichnen
Verfasst: Fr 22. Jun 2007, 18:18
Hallo zusammen,
ich nutze eine Artikelliste als Navigation.
Ich möchte gerne dass der Link der momentan aktiven Seite anders gekennzeichnet ist als die anderen Links.
Könnte mir bitte jemand helfen?
Danke im voraus
Hier der Output des verwendeten Moduls:
ich nutze eine Artikelliste als Navigation.
Ich möchte gerne dass der Link der momentan aktiven Seite anders gekennzeichnet ist als die anderen Links.
Könnte mir bitte jemand helfen?
Danke im voraus
Hier der Output des verwendeten Moduls:
Code: Alles auswählen
<?php
class articleList {
/**
* Konstruktor der Klasse.
* @param Integer Primärschlüssel der Artikelkategorie.
*/
function articleList($myIdCat) {
global $client, $lang, $idcat;
$this->myIdCat = $myIdCat;
$this->client = $client;
$this->lang = $lang;
$this->idcat = $idcat;
$this->db = new DB_Contenido();
}
/**
* Setzt den vor der Artikelliste auszugebenden HTML-Code.
* @param String HTML-Code, der vor der Artikelliste ausgegeben werden
* soll.
*/
function setBefore($before) {
$this->before = $before;
}
/**
* Setzt den nach der Artikelliste auszugebenden HTML-Code.
* @param String HTML-Code, der nach der Artikelliste ausgegeben werden
* soll.
*/
function setAfter($after) {
$this->after = $after;
}
/**
* Setzt das Template (respektive die Maske) für die Ausgabe eines Teasers.
* Für die Ausgabe wird der Titel sowie die Artikelbeschreibung verwendet.
* @param String Template für die Asugabe des Teasers. Folgende Platzhalter
* sind vorgesehen {title} für den Titel, {teaser} für die
* Artikelbeschreibung, {idcat} für die Artikelkategorie sowie {idart} für
* die Artikelidentifikation, {link} für die Artikelreferenzierung und
* {created} für das Erstellungsdatum.
*/
function setTeaserMask($mask) {
$this->mask = $mask;
}
/**
* Gibt die Artikelliste zurück. Die Ausgabe an den Browser muss dann über
* ein echo oder ein print erfolgen.
* @param String Sortierkriterium. Zur Auswahl stehen: 'created'
* (Erstellungsdatum), 'modified' (Aktualisierungsdatum), 'sorted'
* (Contenido-Sortierkriterium), 'alphabetical' (alphabetisch nach Titel).
* @param Boolean True für aufsteigende Sortierung, false für absteigend.
* @param Integer Maximale Anzahl Artikel, die angezeigt werden sollen.
* Wird 0 angegeben, werden alle Artikel ausgegeben.
*/
function getArticleList($sortOrder, $asc, $maxArticles = 0) {
/*
* Ordnungsprinzip fest legen
*/
$order = ($asc) ? ('ASC') : ('DESC');
/*
* Sortierkriterium fest legen
*/
switch ($sortOrder) {
case 'created':
$sortCriteria = 'b.created '.$order;
break;
case 'modified':
$sortCriteria = 'b.lastmodified '.$order;
break;
case 'sorted':
$sortCriteria = 'b.artsort '.$order.', b.title '.$order;
break;
case 'alphabetical':
$sortCriteria = 'b.title '.$order;
break;
default:
$sortCriteria = 'b.title '.$order;
}
/*
* Artikel aus der Datenbank lesen
*/
$articles = $this->getArticles($this->myIdCat, $this->lang, $sortCriteria, $maxArticles);
/*
* Rückgabewert initialisieren
*/
$returnValue = '';
if (!empty($articles)) {
$returnValue = $this->before;
foreach ($articles as $article) {
if ($article['online'] == 1) {
$mask = $this->mask;
if ($article['redirect'] != '0') {
$article['link'] = $article['redirect'];
}
foreach ($article as $part => $content) {
$mask = str_replace('{'.$part.'}',$content,$mask);
}
$returnValue .= $mask;
}
}
$returnValue .= $this->after;
}
return $returnValue;
}
function getArticles($idcat, $idlang, $sortCriteria, $limit) {
global $cfg;
/*
* Initialisierung des Rückgabewertes
*/
$returnValue = array();
/*
* Setzen der Abfragelimiten
*/
if ($limit != 0) {
$limit = "LIMIT 0, $limit";
} else {
$limit = '';
}
/*
* Absetzen des Queries.
*/
$this->db->query("" .
"SELECT " .
" b.idart, " .
" b.title, " .
" b.summary, " .
" b.created, " .
" b.lastmodified, " .
" b.artsort, " .
" b.redirect_url, " .
" b.online, " .
" DATE_FORMAT(b.created, '%d.%m.%y') as erstellungsdatum, " .
" DATE_FORMAT(b.lastmodified, '%d.%m.%y') as aktualisierungsdatum " .
"FROM {$cfg['tab']['cat_art']} as a " .
"LEFT JOIN {$cfg['tab']['art_lang']} as b ON a.idart = b.idart " .
"LEFT JOIN {$cfg['tab']['cat_lang']} as c ON a.idcat = c.idcat " .
"WHERE " .
" a.idcat = $idcat " .
" AND b.idlang = {$this->lang} " .
"ORDER BY " .
" $sortCriteria " .
"$limit" .
"");
while ($this->db->next_record()) {
$returnValue[] = array(
'teasertitle'=>$this->db->f('title'),
'teaser'=>$this->db->f('summary'),
'idcat'=>$idcat,
'idart'=>$this->db->f('idart'),
'link'=>'front_content.php?idcat='.$idcat.'&idart='.$this->db->f('idart'),
'redirect'=>$this->db->f('redirect_url'),
'online'=>$this->db->f('online'),
'created'=>$this->db->f('erstellungsdatum'));
}
return $returnValue;
}
}
$articleList = new articleList("CMS_VALUE[1]");
$articleList->setBefore('');
$articleList->setAfter('');
$articleList->setTeaserMask('
<a href="{link}" class="{klasse}">{teasertitle}</a>
');
echo $articleList->getArticleList('sorted', true);
?>