WWWReader und Fernsehprogramm

Hallo Josch,

erst mal, das Script ist nicht von mir. Hab nur irgend wann mal eine Anpassung gemacht, da im ursprünglichen nach einer Änderung der xml keine Bilder mehr angezeigt wurden. Ich nutze das Script nicht, da mir die Inahlte nicht zusprechen. Habs nur getestet und damit rumgespielt um was zu lernen.

So jetzt zu Deiner Frage: Hab mir eine Integervariable (19001) angelegt. Siehe Screenshot 1. Dieser Variable ist ein ActionScript angehängt (Screenshot 2):

<?
// wählt die Anzeige fürs TV-Programm

$ValID    = 19001 /*[Test\WF\Diverse\TV-Programm\TVZ-Auswahl]*/ ;

setvalue ($ValID, $_IPS['VALUE']);

$Val        = GetValue($ValID);

Switch ($Val)
    {
    Case 0: // TVM 2015
        setvalue(40483 /*[Test\WF\Diverse\TV-Programm\URL]*/ , 'http://www.tvmovie.de/rss/tv2015.xml');
      Break;
    Case 1: // TVM 2200
      setvalue(40483 /*[Test\WF\Diverse\TV-Programm\URL]*/ , 'http://www.tvmovie.de/rss/tv2200.xml');
      Break;
    Case 2: // TVM Filme
        setvalue(40483 /*[Test\WF\Diverse\TV-Programm\URL]*/ , 'http://www.tvmovie.de/rss/tvtipps-spielfilm.xml');
      Break;
    Case 3: // TVS jetzt
      setvalue(40483 /*[Test\WF\Diverse\TV-Programm\URL]*/ , 'http://www.tvspielfilm.de/tv-programm/rss/jetzt.xml');
      Break;
    Case 4: // TVS 2015
      setvalue(40483 /*[Test\WF\Diverse\TV-Programm\URL]*/ , 'http://www.tvspielfilm.de/tv-programm/rss/heute2015.xml');
      Break;
    Case 5: // TVS 2200
      setvalue(40483 /*[Test\WF\Diverse\TV-Programm\URL]*/ , 'http://www.tvspielfilm.de/tv-programm/rss/heute2200.xml');
      Break;
    Case 6: // TVS Filme
      setvalue(40483 /*[Test\WF\Diverse\TV-Programm\URL]*/ , 'http://www.tvspielfilm.de/tv-programm/rss/filme.xml');
      Break;
    }
?>

Damit wird die URL der auszulesenden xml in eine nicht weiter konfigurierte Stringvariable geschrieben.
Das eigentliche Script, das letzten Endes die gewünschte URL/xml ausliest und in in eine html-Tabelle in einer weiteren String-Variable mit Profil ~htmlbox schreibt sieht so aus:

<?
// KONFIGURATION
$senderAnzahl = 20; // Anzahl der anzuzeigenden Sender festlegen, oder für alle so lassen
$ausgabeVariable = 31187 /*[Test\WF\Diverse\TV-Programm\TV-Programm]*/ ;  // Hier die ID der String-Variable mit HTMLBox Profil eintragen
$url = getvalue(40483 /*[Test\WF\Diverse\TV-Programm\URL]*/ );
$j = 0; // anzeigezähler

// TV-Movie
//$url='http://www.tvmovie.de/rss/tvjetzt.xml';              // TV Programm JETZT Zeiten stimmen nicht, kommt aber Feed
//$url='http://www.tvmovie.de/rss/tv2015.xml';               // TV Programm 20.15 Uhr
//$url='http://www.tvmovie.de/rss/tv2200.xml';               // TV Programm 22.00 Uhr
//$url='http://www.tvmovie.de/rss/tvtipps-spielfilm.xml';    // TV Programm SPIELFILME

// TV Spielfilm
//$url = 'http://www.tvspielfilm.de/tv-programm/rss/jetzt.xml';         // TV Programm JETZT
//$url = 'http://www.tvspielfilm.de/tv-programm/rss/heute2015.xml';    // TV Programm 20.15 Uhr
//$url = 'http://www.tvspielfilm.de/tv-programm/rss/heute2200.xml';  // TV Programm 22.00 Uhr
//$url = 'http://www.tvspielfilm.de/tv-programm/rss/filme.xml';      // TV Programm SPIELFILME
//$url = 'http://www.tvspielfilm.de/news/rss.xml';                   // TV News


//$simpleXMLElement = simplexml_load_file($url); // org zeile
$simpleXMLElement = simplexml_load_file($url,'SimpleXMLElement',LIBXML_NOCDATA);
$str =  "<table width='auto'>";

// Datenausgabe
for($i=0; $i<$senderAnzahl; $i++)
{
     $item = $simpleXMLElement->channel->item;
      $item = xmlToArray($item[$i]);
     if (is_string($item['title']))  {
      }
      else  {
          continue;
      }
      // Sender die nicht angezigt werden sollen. Teilstring reicht, nicht casesensitiv.
        if(stristr($item['title'], 'sky') == FALSE
            and stristr($item['title'], 'mgm') == FALSE
            and stristr($item['title'], 'disney') == FALSE
            and stristr($item['title'], 'kinowelt') == FALSE
            and stristr($item['title'], 'sony') == FALSE)
              {
            }
        else
            {
               continue;
            }
      $link = $item['link'];
     //$titel = "<b style=color:#C00000;>".$item['title']."</b>"; // org zeile
     $titel = "<b><a href=".$link." style='text-decoration:none; color:grey' target='_blank'>".$item['title']."</a> </b>";
        if (empty($item['description']))
           {$beschreibung = "";}
        else
            {$beschreibung = "<small>".$item['description']."</small>";}
      $j += 1;
     $text = $j .". ". $titel."<br>".$beschreibung."<br>";
     $text = utf8_decode($text);
     $searchArray = $item;

     // IF-Abfrage, wenn Array zu Ende, dann abbrechen
     if(isset($searchArray['title']) != true)  {
        break;
     }
     if(array_key_exists('enclosure', $searchArray))
     {
        $image = $item['enclosure']['@attributes']['url'];
        $str .= "<tr>";
        $str .= "<td width='auto'height='80px'><div><img src=$image alt='not Found'></div></td>";
        $str .= "<td width='980px'><div style='text-align:left; margin-left:10px;'>$text</div>";
        $str .= "</td></tr>
";
    }
    else
    {
        $str .= "<tr>";
        $str .= "<td></td><td width='980px'><div style='text-align:left; margin-left:10px;'>$text</div></td>";
        $str .= "</tr>
";
    }
}
$str .= "</table>
";

SetValue($ausgabeVariable, $str);

function xmlToArray($data)
{
    if(is_object($data))
    {
        $data = get_object_vars($data);
    }
      return (is_array($data)) ? array_map(__FUNCTION__,$data) : $data;
}

?>


Teile dieses Scripts hab ich nachvollzogen und verstanden, andere Teile nicht.
Ausgelöst wird das Script durch ein Ereignis bei Variablenänderung der Variable URL (40483)

Ins Webfront verlinkt ist nur die Integervar mit dem Variablenprofil und die Stringvar ind die das Ergebnis geschrieben wird.
Das Ergebnis sieht dann aus wie in Screenshot 3.

Hope it Helps.

edit: noch einen Screenshot der Scripts u Variablen in der Konsole angehängt. Die mit Test kannst Du ignorieren.

Zwischenablage-2.jpg

Hallo Wolfgang,
danke für die gute Anleitung. Ohne die Screenshot’s hätte ich es nicht hin bekommen.

Was ich in den anderen Anleitungen nicht gefunden und verstanden habe war die Variable 40483. Mit deinem Screenshot war der Zusammenhang klar. In die String/Html Variable wird der abgerufne Inhalt der XML reingeschrieben.

Viele Dank für die schnelle Antwort!!!

Josch