Die Installation von vpNewsticker ist ganz einfach: lediglich ein neues Modul anlegen und den Code hier in den Outputbereich einfügen:
- Code: Alles auswählen
<?php
/***********************************************
* CONTENIDO MODUL - OUTPUT
*
* Modulname : vpNewsticker v1.2
* Author : Ingo van Peeren (ingo@van-peeren.de)
* Copyright : Ingo van Peeren (ingo@van-peeren.de)
* Created : 15-01-2005
* Modified : 07-04-2005
************************************************/
// in welcher Kategorie befinden sich die News
$cat = 41;
$startartikel = false; // möglich sind:
// true (Startartikel wird mit angezeigt)
// false (Startartikel wird nicht mit angezeigt)
// welche Sprache und welcher Mandant sollen genutzt werden
$sprache = $lang; // hier kann auch eine bestimmte Sprache als Zahl angegeben werden
$mandant = $client; // hier kann auch ein bestimmter Mandant als Zahl angegeben werden
// nach wie vielen Millisekunden soll eine neue Nachricht erscheinen
$delay = 4000;
// Titel, Sortierung usw.
$titel = "headline"; // möglich sind:
// headline (entspricht HTMLHEAD1)
// title (entspricht Artikeltitel)
$sortby = "created"; // möglich sind:
// titel (entspricht dem zuvor ausgewählten Titelfeld)
// created (entspricht Erstellungsdatum)
// lastmodified (entspricht Datum der letzten Änderung)
$sortorder = "desc"; // möglich sind:
// asc (aufsteigend)
// desc (absteigend)
// Texte
$newstitle = "News";
$noscripttext1 = "klicken Sie bitte";
$noscripttext2 = "hier";
$noscripttext3 = "!";
/* ab hier nichts mehr modifizieren */
// Funktionen
function ticker_feld () {
global $cat, $startartikel, $sprache, $mandant, $titel, $sortby, $sortorder;
if (($sortby == "created") || ($sortby == "lastmodified")) {
// Artikellisten Optionen einstellen
$articleListOptions = array("idcat" => $cat, // Idcat (Muss angegeben werden)
"lang" => $sprache, // Sprach id (optional), standard ist die aktive Sprache
"client"=> $mandant, // Mandant id (optional), standard ist der aktive Mandant
"start" => $startartikel, // Startartikel
"order" => $sortby, // Feldname nach dem sortier wird, siehe tabelle 'con_art_lang'
"direction" => $sortorder); // Ab- oder Aufsteigende sortierung ('asc', oder 'desc')
// Artikellisten Objekt erzeugen
$articleList = new ArticleCollection($articleListOptions);
$i = 0;
while ($article = $articleList->nextArticle()) {
if ($titel == "headline") $tickerfeld[]['titel'] = $article->getContent('htmlhead', 1);
else $tickerfeld[$i]['titel'] = $article->get("title");
$tickerfeld[$i]['idart'] = $article->get("idart");
$i++;
}
}
else {
// Artikellisten Optionen einstellen
$articleListOptions = array("idcat" => $cat, // Idcat (Muss angegeben werden)
"lang" => $sprache, // Sprach id (optional), standard ist die aktive Sprache
"client"=> $mandant, // Mandant id (optional), standard ist der aktive Mandant
"start" => $startartikel, // Startartikel
"order" => "idartlang", // Feldname nach dem sortier wird, siehe tabelle 'con_art_lang'
"direction" => "asc"); // Ab- oder Aufsteigende sortierung ('asc', oder 'desc')
// Artikellisten Objekt erzeugen
$articleList = new ArticleCollection($articleListOptions);
$i = 0;
while ($article = $articleList->nextArticle()) {
if ($titel == "headline") $htitel = $article->getContent('htmlhead', 1);
else $htitel = $article->get("title");
$tickerfeld[$i]['titel'] = $htitel;
$tickerfeld[$i]['idart'] = $article->get("idart");
$sort_value = trim(strip_tags(html_entity_decode(urldecode($htitel))));
$sortiert[$i] = strtr($sort_value, "ÄÖÜäöüß", "AOUaous");
$i++;
}
if ($sortorder == "asc") array_multisort($sortiert, SORT_ASC, $tickerfeld);
else array_multisort($sortiert, SORT_DESC, $tickerfeld);
}
return $tickerfeld;
}
// Funktionen Ende
?>
<div style="display: inline;" class="ticker">
<script type="text/javascript">
<!--
document.write('<a href="front_content.php?idcat=<?php echo $cat; ?>"><?php echo $newstitle; ?><\/a>: ')
//-->
</script>
<noscript>
<div style="display: inline;" class="ticker">
<?php echo $newstitle; ?>: <?php echo $noscripttext1; ?>
<a class="newsticker" href="front_content.php?idcat=<?php echo $cat; ?>"><?php echo $noscripttext2; ?></a>
<?php echo $noscripttext3; ?>
</div>
</noscript>
</div>
<div style="display: inline;" class="ticker">
<script type="text/javascript">
<!--
var tickercontents=new Array()
<?php
$tickerfeld = ticker_feld();
$i = 0;
foreach ($tickerfeld as $ticker) {
$link = "front_content.php?idcat=$cat&idart=" . $ticker['idart'] ;
$titel = trim(strip_tags($ticker['titel']));
echo "tickercontents[$i]='<a class=\"newsticker\" href=\"$link\">".urldecode($titel)."<\/a>'\n";
$i++;
}
?>
var tickdelay=<?php echo $delay; ?>
////Do not edit pass this line////////////////
var currentmessage=0
function changetickercontent(){
if (document.layers){
document.tickernsmain.document.tickernssub.document.write(tickercontents[currentmessage])
document.tickernsmain.document.tickernssub.document.close()
}
else
crosstick.innerHTML=tickercontents[currentmessage]
if (currentmessage==tickercontents.length-1) currentmessage=0
else currentmessage++
setTimeout("changetickercontent()",tickdelay)
}
function start_ticking(){
if (document.layers)
document.tickernsmain.visibility="show"
else
crosstick=document.getElementById? document.getElementById("tickerie") : document.all.tickerie
changetickercontent()
}
if (document.all||document.getElementById)
document.write('<div id="tickerie" style="display: inline;"><\/div>')
window.onload=start_ticking
//-->
</script>
</div>
Konfigurierbar sind:
- Kategorie, die ausgelesen werden soll
- Mandant (falls notwendig)
- Sprache (falls notwendig)
- ob Artikeltitel oder die 1. Headline als Linktitel dienen soll
- Sortierung nach Erstellungsdatum, Datum der letzten änderung oder nach Linktitel
- Sortierung auf- oder absteigend
- Texte
Durchgeführt werden muss die Konfiguration im Modulcode (Output) selbst bis "/* ab hier nichts mehr mofizieren */". Die einzelnen Punkte werden jeweils durch Kommentare erläutert.
Das Aussehen des Tickers kann per CSS formatiert werden (die Klasse "ticker" für die Texte, die Klasse "newsticker" für die Links).
Die stets aktuelle Version als TXT- und XML-Download (für die 4.5.x-Versionen) und eine Demonstration findet ihr hier:
www.contenido-tutorials.de/front_content.php?idcat=7
Gruß
Ingo