Dirk: Der Ticker funzt nicht ...

Hallo und guten Morgen zusammen,

wir haben uns ein Script bestellt, welches wir online gestellt haben, aber trotz der richtigen Farbangaben, ein vollkommen andere ausgibt. Wie kommt das?

Hier unser Script:

<?

error_reporting(E_ALL);
set_time_limit(0);

$rss_feed = "http://www.country.de/wordpress/feed/";
$show_description = 0;
$ticker_style = "background-color:#FFF7D6; border:0px solid #FFF7D6;";
$ticker_width = "780";
$ticker_height = "15";
$ticker_text_start = "";
$ticker_text_end =  " Updated at: ".date("h:s")." ET - U.S.";
$news_separator = " &#8226; &#8226; &#8226; ";
$ticker_speed = 1;

function show_news_ticker() {
  global $ticker_speed, $show_description, $rss_feed, $news_separator, $ticker_style, $ticker_content, $ticker_width, $ticker_height, $ticker_text_start, $ticker_text_end;

$ticker_style = str_replace("\n", "", $ticker_style);
  $ticker_width .= "px";
  $ticker_height .= "px";

//building ticker content ...
  $ticker_content = " <span class=ticker_text_start>$ticker_text_start</span> ";

$s = join("", file($rss_feed));

$s = substr($s, strpos($s, "<item"));

$i = 0;
  while(($j1 = strpos($s, "<item", $i)) !== FALSE) {
    if(!($j2 = strpos($s, "</item>", $j1))) {
      continue;
    }
    $item = substr($s, $j1, $j2-$j1);
    $title = jsticker_get_xml_item($item, "title");
    if(!$title) {
      $i = $j2;
      continue;
    }
    $link = jsticker_get_xml_item($item, "link");

$description = $show_description ? $news_separator.jsticker_get_xml_item($item, "description") : "";
    $ticker_content .= "<a target=_blank class=ticker_news href="$link">$title</a> $description $news_separator ";

$i = $j2;
  }
  $ticker_content .= " <span class=ticker_text_end>$ticker_text_end</span>";
  $ticker_content = "<nobr>$ticker_content</nobr>";
  //done building ticker content ...

echo <<<TICKER
<script language="JavaScript">

ticker_width = "$ticker_width";
ticker_height = "$ticker_height";
ticker_speed = $ticker_speed;
ticker_pause_onhover = 1;
marqueecontent = '<nobr><span class=ticker>$ticker_content</span></nobr>';

ticker_speed = (document.all) ? ticker_speed : Math.max(1, ticker_speed-1);
var copyspeed = ticker_speed;
var pausespeed = (ticker_pause_onhover == 0) ? copyspeed : 0;
var iedom = document.all || document.getElementById;
if (iedom) {
  document.write('<span id="temp" style="visibility:hidden;position:absolute;top:-200px;left:-100000px">'+marqueecontent+'</span>');
}

var actualwidth='';
var rh_ticker_iedom, rh_ticker_ns;

function populate() {
  if (iedom) {
    rh_ticker_iedom = document.getElementById? document.getElementById("ie_rh_ticker") : document.all.ie_rh_ticker;
    rh_ticker_iedom.style.left = parseInt(ticker_width)+8+"px";
    rh_ticker_iedom.innerHTML = marqueecontent;
    actualwidth = document.all ? temp.offsetWidth : document.getElementById("temp").offsetWidth;
  } else if (document.layers) {
    rh_ticker_ns=document.rh_ticker_ns.document.ns_marquee2;
    rh_ticker_ns.left=parseInt(ticker_width)+8;
    rh_ticker_ns.document.write(marqueecontent);
    rh_ticker_ns.document.close();
    actualwidth=rh_ticker_ns.document.width;
  }
  lefttime = setInterval("rh_ticker_scroll()",20);
}
window.onload=populate;

function rh_ticker_scroll(){
  if (iedom) {
    if (parseInt(rh_ticker_iedom.style.left) > (actualwidth*(-1)+8)) {
      rh_ticker_iedom.style.left=parseInt(rh_ticker_iedom.style.left)-copyspeed+"px"
    } else {
      rh_ticker_iedom.style.left=parseInt(ticker_width)+8+"px"
    }
  } else if(document.layers) {
    if(rh_ticker_ns.left > (actualwidth*(-1)+8)) {
      rh_ticker_ns.left -= copyspeed;
    } else {
      rh_ticker_ns.left=parseInt(ticker_width)+8
    }
  }
}

if (iedom||document.layers) {
  with (document) {
    document.write('<table border="0" cellspacing="0" cellpadding="0"><tr><td>');
    if (iedom) {
      write('<div style="position:relative;width:'+ticker_width+';height:'+ticker_height+';overflow:hidden;$ticker_style">')
      write('<div style="position:absolute;width:'+ticker_width+';height:'+ticker_height+';" onMouseover="copyspeed=pausespeed" onMouseout="copyspeed=ticker_speed">')
      write('<div id="ie_rh_ticker" style="position:absolute;left:0px;top:0px"></div>')
      write('</div></div>')
    } else if (document.layers) {
      write('<ilayer width='+ticker_width+' height='+ticker_height+' name="rh_ticker_ns" bgColor='+ss_marquee_color_bg+'>')
      write('<layer name="ns_marquee2" left=0 top=0 onMouseover="copyspeed=pausespeed" onMouseout="copyspeed=ticker_speed"></layer>')
      write('</ilayer>')
    }
    document.write('</td></tr></table>')
  }
}

</script>
TICKER;
}

function jsticker_get_xml_item($s, $item) {
  $i = strpos($s, "<$item>");
  if($i === FALSE) {
    $i = strpos($s, "<$item ");
    if($i === FALSE) {
      return "";
    }
  }
  $i = strpos($s, ">", $i) + 1;
  $j = strpos($s, "</$item>", $i);
  if($j === FALSE) {
    return "";
  }
  $ret = substr($s, $i, $j - $i);
  $ret = str_replace("<![CDATA[", "", $ret);
  $ret = str_replace("]]>", "", $ret);
  $ret = str_replace("&apos;", "'", $ret);
  $ret = str_replace("&amp;", "&", $ret);
  $ret = str_replace("'", "'", $ret);
  $ret = str_replace("\n", " ", $ret);
  $ret = str_replace("\r", " ", $ret);
  $ret = strip_tags($ret);
  return $ret;
}

?>

Hier der Link: www.country.de/Banner/sample-news.php

Wo dran kann's liegen?

Wir tüfteln uns einen heißen Kopf.

Gru´

Dirk

  1. Hallo!

    Wo dran kann's liegen?

    An deiner Problembeschreibung.
    http://forum.de.selfhtml.org/hilfe/charta.htm#tipps-fuer-fragende

    --
    LG,
    Snafu
  2. Ich nochmal:

    Wie gesagt, wir haben eine hexagonale Farbe angegeben, aber das Script - woher auch immer - zeigt sich fliederfarben! Warum?

    Gruß

    Dirk

    1. @@Dirk:

      Wie gesagt, wir haben eine hexagonale Farbe angegeben,

      Was ist eine sechseckige Farbe?

      Wie sieht der HTML-Quelltext aus (der beim Client ankommt)?

      Warum willst du die Nutzer deiner Seite mit digitalem Ungeziefer nerven?

      Live long and prosper,
      Gunnar

      --
      „Das Internet ist ein großer Misthaufen, in dem man allerdings auch kleine Schätze und Perlen finden kann.“ (Joseph Weizenbaum)
  3. Hier unser Script:

    Das Skript ist der horror!

    <?

    Für ein JS Problem ist dein serverseitiger Code absolut uninteressant, warum wirfst du den hier ab?
    allein der Code der im Browser ankommt ist für eine JS Frage relevant.

    <script language="JavaScript">

    Wo hast du dieses Attribut ausgegraben?
    language ist historisch und seit ca. 10 Jahren durch type abgelöst.

    ticker_speed = (document.all) ? ticker_speed : Math.max(1, ticker_speed-1);

    Das Skript scheint für den IE 4 programmiert zu sein, also mindestens 9 Jahre alt (was das language Attribut erklärt).

    if (iedom||document.layers) {
      with (document) {
        document.write('<table border="0" cellspacing="0" cellpadding="0"><tr><td>');

    Wozu soll diese Tabelle gut sein?

    if (iedom) {
          write('<div style="position:relative;width:'+ticker_width+';height:'+ticker_height+';overflow:hidden;$ticker_style">')
          write('<div style="position:absolute;width:'+ticker_width+';height:'+ticker_height+';" onMouseover="copyspeed=pausespeed" onMouseout="copyspeed=ticker_speed">')
          write('<div id="ie_rh_ticker" style="position:absolute;left:0px;top:0px"></div>')
          write('</div></div>')

    3 ineinander verschchtelte Div?

    Der Rest des quellcodes ist für dein Problem uninteressant, hier wird das DIV ausgegeben und die Hintergrundfarbe bestimmt. Und wenn du dir den Quellcode im Browser anschaust siehst du, dass die Farbe, die du angibst, background-color:#e0e0ff ist, das ist Flieder.

    Struppi.

    1. Besteht die Möglichkeit, dass Du mir das Script so änderst, dass es funzt?

      Wäre sehr nett. Wir haben das Script seit gestern Morgen und wir sind halt keine Experten auf diesem Gebiet.

      Gruß

      Dirk

      1. Besteht die Möglichkeit, dass Du mir das Script so änderst, dass es funzt?

        Ist die Person bzw. sind die Personen, die ihr für das Script beauftragt habt verstorben?
        Wenn ihr schon dafür bezahlt habt dann könnt ihr ja wenigstens verlangen, dass es auch wie verlangt funktionniert.

        --
        LG,
        Snafu
        1. Hi, Du hast vollkommen recht. Doch leider haben wir das Script (hätten wir's vorher geahnt, dass es so alt ist) von hier: http://www.jsticker.com

          Da gibt's keinen Support.

          Wenn Euch Kosten entstehen, bin ich natürlich bereit die zu tragen.

          Wer nur froh, wenn das blöde Ding endlich so laufen würde wie ich's gern hätte.

          Dirk

          1. @@Dirk:

            Wer nur froh, wenn das blöde Ding endlich so laufen würde wie ich's gern hätte.

            Das die Nutzer Eurer Seiten nicht froh sind, wenn das blöde Ding läuft, hat du aber schon zur Kenntnis genommen?

            Live long and prosper,
            Gunnar

            --
            „Das Internet ist ein großer Misthaufen, in dem man allerdings auch kleine Schätze und Perlen finden kann.“ (Joseph Weizenbaum)
            1. @Gunnar

              Warum sollte ein Info-Laufband - wie man es von NTV, Bloomberg, CNN, CNBC, N24, Bild Online und, und und - nerven? Gestern haben 688 unserer User News aus dem Ticker angeklickt. Recht ordentlich, nicht wahr?

              Dieser Ticker läuft jetzt schön rund, holpert und ruckelt nicht, ist auch nicht zu schnell. Und, das Wichtigste, er liefert top-aktuelle News für unsere Leserschaft, ohne das sie groß suchen müssen.

              Gruß

              Dirk

              1. @@Dirk:

                Warum sollte ein Info-Laufband - wie man es von NTV, Bloomberg, CNN, CNBC, N24, Bild Online und, und und - nerven?

                Fernsehen ist ein anderes Medium als das WWW. Da gelten natürlich andere Regeln. Siehe </archiv/2006/7/t133130/#m862586>.

                Auf Webseiten sollte ein Nutzer den Text in der ihm eigenen angemessenen Geschwindigkeit lesen können. Und auch nochmal zum Satzanfang zurückgehen können.

                Den bereits verlinkten Artikel hattest du gelesen?

                Gestern haben 688 unserer User News aus dem Ticker angeklickt.

                Vielleicht, weil es die einzige Möglichkeit ist, die Information in vernünftiger Form lesen zu können?

                Live long and prosper,
                Gunnar

                --
                „Das Internet ist ein großer Misthaufen, in dem man allerdings auch kleine Schätze und Perlen finden kann.“ (Joseph Weizenbaum)
                1. @Gunnar

                  Zitat: "Vielleicht, weil es die einzige Möglichkeit ist, die Information in vernünftiger Form lesen zu können?"

                  Nein lieber Gunnar,

                  die User sind generell "faul" - klickfaul. Und suchen möchten sie ebenso nicht. Wir haben - im Gegensatz zu vielen anderen Wenseiten - eine sehr gute Navigation. Trotzdem stellen wir fest - immerhin gibt's das Portal schon 8 Jahre, dass die User am liebsten kurze - sehr kurze Wege möchten und nutzen. Ist ein Erfahrungswert.

                  Ich denke, dass einige IHR Problem mit dem Netz versuchen zu dramatisieren. Unsere User nutzen diesen Weg, ohne dass sich welche beschwerten. Im Gegenteil, wir haben gestern 89 Mails bekommen, die den Ticker toll finden, da er in der Sekunde des onlinestellens (RSS Reader integriert) des Artikel, sofort die Information bereithält.

                  Ein Service für die User. Mag sein, dass es "Spezies" gibt, die Alles verteufeln, was manches Mal einen Nutzen hat. Aber sie verteufeln seit Jahren Frames, den IE, Ticker, Gifs und, und, und. Trotzdem entscheidet letztendlich der User, was er will.

                  In diesem Sinne und lieben Gruß

                  Dirk

      2. Besteht die Möglichkeit, dass Du mir das Script so änderst, dass es funzt?

        Was heißt funzt? Bei mir funktioniert es.

        Struppi.

  4. Hallo,

    Wo dran kann's liegen?

    vielleicht daran, dass Ticker meist nervig sind?
    Notfalls hier beim Lauftext schauen, oder auf CSS3 und marquee warten;)

    Ansonsten scheint das von dir erwähnte online-Beispiel ja zu laufen, es geht also
    wohl um die Farben bei .ticker_news auf CSS-Ebene oder beim Script anscheinend um
    die Variable $ticker_style.
    Nach dem geposteten Code scheint mir da JavaScript und PHP etwas eng verflochten.

    Grüsse

    Cyx23