vpNewsticker modifizieren

Gesperrt
mvf
Beiträge: 1758
Registriert: Mo 1. Aug 2005, 00:35
Wohnort: in der schönen Hallertau, mitten im Hopfen
Kontaktdaten:

vpNewsticker modifizieren

Beitrag von mvf »

hallo community
hallo ingo

ich bin immernoch auf der suche nach einem newsteaser mit headline-image-text

dazu habe ich ja bereits mit der artikelliste und dem newsmodul herumprobiert, ohne erfolg

jetzt bin ich auf den newsticker gestossen, und denke damit sollte es gehen. als erstes mal dank an Ingo, funzt prima auch in der V4.6.2 :) nachfolgend zum einen der outputcode, zum anderen mein versuch der modifikation :?

immerhin kann ich jetzt schon mal die headline und dentext aus dem artikel auslesen, allerdings hapert es mit dem bild :(

aussehen sollte das ganze dann
BILD
headline
text
...> mehr
hier nun also mein versuch:

Code: Alles auswählen

<?
/***********************************************
* 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 = 68;
$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 mofizieren */

// 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()) {
        $html_content = substr($article->getContent('html', 1),1,100);
        $tickerfeld[]['titel'] = ($article->getContent('htmlhead', 1)." ".$html_content);
    }
  }
  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>
und hier der originalcode:

Code: Alles auswählen

<?
/***********************************************
* 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 = 68;
$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 mofizieren */

// 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>
freu mich wie immer über jeden input ;)

@ingo: der download des xml für den output hat leider bei mir nicht funktioniert :(
Grüsse, Guido

"A common mistake that people make when trying to design something completely foolproof is to underestimate the ingenuity of complete fools."
Mostly Harmless - Douglas Adams
mvf
Beiträge: 1758
Registriert: Mo 1. Aug 2005, 00:35
Wohnort: in der schönen Hallertau, mitten im Hopfen
Kontaktdaten:

Beitrag von mvf »

hier noch ein link zur verduetlichung

http://dev1.elflein-kosmetik.de/cont46d ... p?idcat=68

den content rechts 'tickert' der vpNewsticker, sollte diesen dann aber korrekt darstellen wie rechts, image-headline-text

in der eigentlichen news kategorie wir diese box dann natürlich nicht eingeblendet, aber wenn man eben nicht in 'news' ist würden die super geteasert :)

allerdings hakts eben noch und mit substr worwrap und striptags etc. komme ich noch überhaupt nicht klar :(

please help ich denk über so ein modul würden sich sicher einige freuen
Grüsse, Guido

"A common mistake that people make when trying to design something completely foolproof is to underestimate the ingenuity of complete fools."
Mostly Harmless - Douglas Adams
Dodger77
Beiträge: 3626
Registriert: Di 12. Okt 2004, 20:00
Wohnort: Voerde (Niederrhein)
Kontaktdaten:

Beitrag von Dodger77 »

So. Bin gerade drübergestolpert. Sieht ja so aus, als würde es jetzt soweit klappen. Sonst hätte ich aber dazu geraten, dass du dir die Artikellisten-Module anschaust und den Thread:

http://www.contenido.org/forum/viewtopic.php?t=2087
Gesperrt