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>
- 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
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