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