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.