File : test2237b.php
codice:
<?
class xItem {
var $xTitle;
var $xLink;
var $xDescription;
} // class xItem
//------------- Parametri del feed
class RssParameters {
//-------------- Default values
var $uFont = "Verdana, Arial, Helvetica, sans-serif";
var $uFontColor = "black"; // a color name or number
var $uFontSize = '8'; // a value in points
var $bDesc = true;
var $rssSize = 200; // in pixels
var $rssHeight = 100; // in pixels
var $rssBgColor = "white"; // a color name or number
var $rssSpeed = 2; // the higher the faster
var $rssNewsStyle = ""; // class per le news
var $rssLinkStyle = ""; // class per i links
var $rssRSSStyle = ""; // class per il feed
//-------------- Taglia
function setSize($size) {
$this->rssSize = $size;
} // function setSize($size)
//-------------- Altezza
function setHeight($height) {
$this->rssHeight = $height;
} // function setHeight($height)
//-------------- Velocità
function setSpeed($speed) {
$this->rssSpeed = $speed;
} // function setHeight($height)
//-------------- Sfondo
function setBackgroundColor($color) {
$this->rssBgColor = $color;
} // function setBackgroundColor($color)
//-------------- Fonts
function setFonts($fontList) {
$this->uFont = $fontList;
} // function setFonts($fontList)
//-------------- Font color
function setFontColor($color) {
$this->uFontColor = $color;
} // function setFontColor($color)
//-------------- Font Size
function setFontSize($size) {
$this->uFontSize = $size;
} // function setFontSize($size)
//-------------- News style
function setNewsClass($class) {
$this->rssNewsStyle = $class;
} // function setNewsClass($class)
//-------------- Links style
function setLinksClass($class) {
$this->rssLinkStyle = $class;
} // function setLinksClass($class)
//-------------- RSS style
function setRSSClass($class) {
$this->rssRSSStyle = $class;
} // function setRSSClass($class)
} // class RssParameters
class RssObjects {
//-------------- Array delle RSS
var $rss = array();
//-------------- Array del codice JS
var $rssJS = array();
//-------------- Array del codice HTML
var $rssHTML = array();
//-------------- Array del codice JS populate
var $rssPop = array();
//-------------- Array degli id degli elementi
var $place = array();
//-------------- Array degli items
var $arItems = array();
//-------------- Array dei parametri
var $arParams = array();
//-------------- Codice HTML
var $htmlCodeToProcess;
//-------------- Presenza dello stilo .news
var $isNewsStylePresent = true;
//-------------- Constructor
function RssObjects($htmlCodeToProcess) {
$this->htmlCodeToProcess = $htmlCodeToProcess;
} // function RssObjects($htmlCodeToProcess)
//-------------- Aggiunta delle RSS da trattare
function addRSS($rssName,$rssXMLURLFileName,$placeToSeeRSS) {
$this->rss[$rssName] = $rssXMLURLFileName;
$this->place[$rssName] = $placeToSeeRSS;
$this->arParams[$rssName] = new RssParameters;
return $this->getRSSByName($rssName);
} // function addRSS($rssName,$rssXMLURLFileName)
function getRSSByName($rssName) {
return $this->arParams[$rssName];
} // function getRSSByName($rssName)
//-------------- Parse all files
function parseXMLFiles() {
foreach($this->rss as $key => $value) {
$this->parseXMLFile($value);
$this->rssHTML[$key] = $this->createSingleHTML($key);
$this->rssJS[$key] = $this->createSingleJS($key);
$this->rssPop[$key] = $this->createSinglePopulate($key);
} // foreach($this->rss as $key => $value)
} // function parseXMLFiles()
//-------------- Parse a single files
function parseXMLFile($rssXMLURLFileName) {
global $keyProcessed, $itemCount;
$keyProcessed = 0;
$itemCount = 0;
$this->arItems = array();
$this->xml_parser = xml_parser_create();
xml_set_object($this->xml_parser,$this);
xml_set_element_handler($this->xml_parser,"startElement","endElement");
xml_set_character_data_handler($this->xml_parser,"characterData");
if (!($fp = fopen($rssXMLURLFileName,"r"))) {
die ("could not open RSS $rssXMLURLFileName for input");
} // if (!($fp = fopen($rssXMLURLFileName,"r")))
while ($data = fread($fp, 4096)) {
if (!xml_parse($this->xml_parser, $data, feof($fp))) {
die(sprintf("XML error: %s at line %d", xml_error_string(xml_get_error_code($this->xml_parser)),xml_get_current_line_number($this->xml_parser)));
} // if (!xml_parse($xml_parser, $data, feof($fp)))
} // while ($data = fread($fp, 4096))
xml_parser_free($this->xml_parser);
} // function parseXMLFile($rssXMLURLFileName)
//-------------- Codice HTML da stampare
function htmlResult() {
$jsCode = '';
$popCode = '';
foreach($this->rss as $key => $value) {
//------------- Concatenazione del codice JS
$jsCode .= $this->rssJS[$key]."\n";
$popCode .= $this->rssPop[$key];
//------------- Agganciamento del codice HTML generato al body
$this->htmlCodeToProcess = preg_replace("|(<body[^>]*>)|s","\\1\n".$this->rssHTML[$key],$this->htmlCodeToProcess);
} // foreach($this->rss as $key => $value)
//------------- Agganciamento del codice JS generato al head
$this->htmlCodeToProcess = preg_replace("|(<head[^>]*>)|s","\\1\n$jsCode",$this->htmlCodeToProcess);
//------------- Agganciamento del codice JS generato per l'esecuzione prima del /body
$this->htmlCodeToProcess = preg_replace("|(<[/]body[^>]*>)|s","\n$popCode\n\\1",$this->htmlCodeToProcess);
return $this->htmlCodeToProcess;
} // function htmlResult()
//-------------- Crea il codice HTML per un RSS
function createSingleHTML($rssName) {
ob_start();
//------------ Stilo del RSS
$rssStyle = "";
if ($this->arParams[$rssName]->rssRSSStyle != "") {
$rssStyle = "class=\"".$this->arParams[$rssName]->rssRSSStyle."\"";
} else {
$rssStyle = "width=\"".$this->arParams[$rssName]->rssSize."\" ";
$rssStyle .= "bgcolor=\"".$this->arParams[$rssName]->rssBgColor."\" ";
$rssStyle .= "style=\"color:".$this->arParams[$rssName]->uFontColor."\" ";
} // if ($this->arParams[$rssName]->rssRSSStyle != "")
?>
<textarea id="txta<? print $rssName ?>" style="position:absolute;top:-1000;left:-1000">
<table border="0" cellspacing="0" cellpadding="0" <? print $rssStyle ?>><?php
foreach($this->arItems as $key => $txItem ) {
//------------ Stilo del testo
$tdStyle = "";
if ($this->arParams[$rssName]->rssNewsStyle == "") {
$tdStyle = "font-family:".$this->arParams[$rssName]->uFont.";font-size:".$this->arParams[$rssName]->uFontSize."pt";
$tdStyle = "style=\"$tdStyle\"";
} else {
$tdStyle = "class=\"".$this->arParams[$rssName]->rssNewsStyle."\"";
} // iif ($this->arParams[$rssName]->rssNewsStyle == "")
//------------ Stilo del link
$aStyle = "";
if ($this->arParams[$rssName]->rssLinkStyle != "") {
$aStyle = "class=\"".$this->arParams[$rssName]->rssLinkStyle."\"";;
} // if ($this->arParams[$rssName]->rssLinkStyle != "")
?>
<tr>
<td <? print $tdStyle ?>> <?
if (! empty($txItem->xLink)){ ?>
<a <? print $aStyle ?> href = "<?php echo($txItem->xLink); ?>" target="_blank"><?php
echo($txItem->xTitle); ?>
</a>
<?php
} // if (! empty($txItem->xLink)){
if ($this->arParams[$rssName]->bDesc and !empty($txItem->xDescription)) {
echo ($txItem->xDescription."
");
} // if ($this->arParams[$rssName]->bDesc and !empty($txItem->xDescription)) ?>
</td>
</tr><?php
} // for ($i=0;$i<count($this->arItems);$i++) ?>
</table>
</textarea><?php
$code = ob_get_contents();
ob_end_clean();
return $code;
} // function createSingleHTML($rssName)
//-------------- Crea il codice HTML per un RSS
function createSingleJS($rssName) {
ob_start()?>
<script language="JavaScript" type="text/javascript">
<!--
//Specify the marquee's width (in pixels)
var marqueewidth<? print $rssName ?>="<? print $this->arParams[$rssName]->rssSize ?>px";
//Specify the marquee's height
var marqueeheight<? print $rssName ?>="<? print $this->arParams[$rssName]->rssHeight ?>px";
//Specify the marquee's marquee speed (larger is faster 1-10)
var marqueespeed<? print $rssName ?>=<? print $this->arParams[$rssName]->rssSpeed ?>;
//Pause marquee onMousever (0=no. 1=yes)?
var pauseit<? print $rssName ?> =1;
//slow speed down by 1 for NS
marqueespeed<? print $rssName ?> = (document.all)? marqueespeed<? print $rssName ?> : Math.max(1, marqueespeed<? print $rssName ?>-1);
var copyspeed<? print $rssName ?> = marqueespeed<? print $rssName ?>;
var pausespeed<? print $rssName ?> = (pauseit<? print $rssName ?>==0)? copyspeed<? print $rssName ?>: 0;
var actualheight<? print $rssName ?> = '';
var iedom=document.all||document.getElementById;
var cross_marquee<? print $rssName ?>, ns_marquee<? print $rssName ?>;
function populate<? print $rssName ?>(rssLocation){
//--------------- Creo qui il codice HTML e non più sotto
rssHTML = '';
if (iedom||document.layers){
if (iedom){
rssHTML += '<div style=" position:relative;width:'+marqueewidth<? print $rssName ?>+';height:'+marqueeheight<? print $rssName ?>+';overflow:hidden" onMouseover="copyspeed<? print $rssName ?>=pausespeed<? print $rssName ?>" onMouseout="copyspeed<? print $rssName ?>=marqueespeed<? print $rssName ?>">';
rssHTML += '<div id="iemarquee<? print $rssName ?>" style=" position:absolute;left:0px;top:0px;width:100%;">';
rssHTML += '</div></div>';
} else {
if (document.layers){
rssHTML += '<ilayer width='+marqueewidth<? print $rssName ?>+' height='+marqueeheight<? print $rssName ?>+' name="ns_marquee<? print $rssName ?>">';
rssHTML += '<layer name="ns_marquee2<? print $rssName ?>" width='+marqueewidth<? print $rssName ?>+' height='+marqueeheight<? print $rssName ?>+' left=0 top=0 onMouseover="copyspeed<? print $rssName ?>=pausespeed<? print $rssName ?>" onMouseout="copyspeed<? print $rssName ?>=marqueespeed<? print $rssName ?>"></layer>';
rssHTML += '</ilayer>';
} // if (document.layers)
} // if (iedom)
} // if (iedom||document.layers)
//------------ Assegnazione del codice HTML alla location
rssLocation.innerHTML = rssHTML;
if (iedom){
cross_marquee<? print $rssName ?> = document.getElementById? document.getElementById("iemarquee<? print $rssName ?>") : document.all.iemarquee<? print $rssName ?>;
cross_marquee<? print $rssName ?>.style.top = parseInt(marqueeheight<? print $rssName ?>)+8+"px";
cross_marquee<? print $rssName ?>.innerHTML = marqueecontent<? print $rssName ?>;
actualheight<? print $rssName ?> = cross_marquee<? print $rssName ?>.offsetHeight;
} else if (document.layers){
ns_marquee<? print $rssName ?> = document.ns_marquee<? print $rssName ?>.document.ns_marquee2<? print $rssName ?>;
ns_marquee<? print $rssName ?>.top = parseInt(marqueeheight<? print $rssName ?>)+8;
ns_marquee<? print $rssName ?>.document.write(marqueecontent<? print $rssName ?>);
ns_marquee<? print $rssName ?>.document.close();
actualheigh<? print $rssName ?> = ns_marquee<? print $rssName ?>.document.height;
} // if (iedom)
lefttime=setInterval("scrollmarquee<? print $rssName ?>()",20);
} // function populate<? print $rssName ?>(rssLocation)
function scrollmarquee<? print $rssName ?>(){
if (iedom){
if (parseInt(cross_marquee<? print $rssName ?>.style.top)>(actualheight<? print $rssName ?>*(-1)+8))
cross_marquee<? print $rssName ?>.style.top=parseInt(cross_marquee<? print $rssName ?>.style.top)-copyspeed<? print $rssName ?>+"px";
else
cross_marquee<? print $rssName ?>.style.top=parseInt(marqueeheight<? print $rssName ?>)+8+"px";
} else if (document.layers){
if (ns_marquee<? print $rssName ?>.top>(actualheight<? print $rssName ?>*(-1)+8))
ns_marquee<? print $rssName ?>.top-=copyspeed<? print $rssName ?>;
else
ns_marquee<? print $rssName ?>.top=parseInt(marqueeheight<? print $rssName ?>)+8;
} // if (iedom)
} // ffunction scrollmarquee<? print $rssName ?>()
//-->
</script><?
$jsCode = ob_get_contents();
ob_end_clean();
return $jsCode;
} // function createJSCode()
... segue