loadXML ($data);
$xml->xinclude();
$xml = simplexml_import_dom($xml);
//print_r($xml);
return $xml;
}
/****************** functions for MEDIA COLLECTIONS ****************/
function getCollectionTitle($simpleXML)
{
return preg_replace("#sms collection\:#i","",$simpleXML->channel->title);
}
function getCollectionDescription($simpleXML)
{
return $simpleXML->channel->description;
}
function getCollectionTTL($simpleXML)
{
return $simpleXML->channel->ttl;
}
/* can derive these */
function getCollectionImageURL($simpleXML)
{
global $imageCollectionBaseURL;
return $imageCollectionBaseURL.getCollectionId($simpleXML);
}
function getCollectionId($simpleXML)
{
$ids=split('_', (string) $simpleXML->channel->item->guid);
return (string) $ids[2];
}
/********** these functions [getCollectionItemXXXX()] work on fields available per media item
in collection level RSS feeds, or ones which can be derived,
and expect to be fed just the simpleXML Object for an item from the collection level feed
e.g.
foreach($collectionxml->channel->item as $item)
{
getCollectionItemTitle($item)
// etc
)
*/
function getCollectionItemTitle($simpleXML)
{
return (string) $simpleXML->title;
}
function getCollectionItemRSSLink($simpleXML)
{
return $simpleXML->link;
}
function getCollectionItemGUID($simpleXML)
{
return $simpleXML->guid;
}
function getCollectionItemDescription($simpleXML)
{
return $simpleXML->description;
}
/* can derive theses */
function getCollectionItemImageURL($simpleXML)
{
global $imageItemBaseURL;
return $imageItemBaseURL.getCollectionItemId($simpleXML).'.jpg';
}
function getCollectionItemId($simpleXML)
{
$ids=split('_', (string) $simpleXML->guid);
return (string) $ids[3];
}
/*
* array = getCollectionArray(Simple XML Object $simpleXML)
*
* returns a neat associative array keyed by timestamp for each item.
* each item in turn contains an associative array of values keyed by name.
*
*/
function getCollectionArray($simpleXML)
{
global $imageItemBaseURL;
$itemsarray=array();
foreach ($simpleXML->channel->item as $item) {
$itemSimpleXML = getSmsRssSimpleXML($item->link);
// get a data time group stamp so we can build array based on it
$dtg=strtotime(getMediaItemPubDate($itemSimpleXML));
// store everything into array keyed by timestamp ($dtg) */
$itemsarray[$dtg]['title']=(string) $item->title;
$itemsarray[$dtg]['description']= (string) $item->description;
$itemsarray[$dtg]['pubdate']=getMediaItemPubDate($itemSimpleXML);
$itemsarray[$dtg]['duration']=getMediaItemDuration($itemSimpleXML);
$itemsarray[$dtg]['itemrss']=(string) $item->link;
$itemsarray[$dtg]['mediaid']= getMediaItemId($itemSimpleXML);
$itemsarray[$dtg]['guid']=getMediaItemGUID($itemSimpleXML);
$itemsarray[$dtg]['collectionid']= getCollectionId($itemSimpleXML);
$itemsarray[$dtg]['imageurl']= $imageItemBaseURL.getMediaItemId($itemSimpleXML);
}
/* reverse sort based on $dtg*/
krsort($itemsarray);
return $itemsarray;
}
/********** Functions for Media ITEMS **********************/
function getMediaItemFormatsArray($simpleXML)
{
$mediaFormats = array();
foreach($simpleXML->channel->item as $entry)
{
// get nodes in media: namespace for media information
$media = $entry->children('http://search.yahoo.com/mrss/');
foreach ($media->group->content as $content) {
$attrs = $content->attributes();
#push data into array
//print_r($attrs);
$key = (string) $attrs['type']."-".$attrs['fileSize'];
$mediaFormats[$key]['channels'] = (string) $attrs['channels'];
$mediaFormats[$key]['duration'] = (string) $attrs['duration'];
$mediaFormats[$key]['framerate'] = (string) $attrs['framerate'];
$mediaFormats[$key]['height'] = (string) $attrs['height'];
$mediaFormats[$key]['width'] = (string) $attrs['width'];
$mediaFormats[$key]['samplingrate'] = (string) $attrs['samplingrate'];
$mediaFormats[$key]['expression'] = (string) $attrs['expression'];
$mediaFormats[$key]['isdefault'] = (string) $attrs['isDefault'];
$mediaFormats[$key]['lang'] = (string) $attrs['lang'];
$mediaFormats[$key]['type'] = (string) $attrs['type'];
switch($attrs['type'])
{
case 'video/mpeg':
$mediaFormats[$key]['extension'] = '.mp3';
break;
case 'video/x-flv':
$mediaFormats[$key]['extension'] = '.flv';
break;
case 'video/quicktime':
$mediaFormats[$key]['extension'] = '.mov';
break;
case 'video/x-ms-wmv':
$mediaFormats[$key]['extension'] = '.wmv';
break;
case 'video/x-m4v':
$mediaFormats[$key]['extension'] = '.m4v';
break;
case 'video/':
$mediaFormats[$key]['extension'] = 'none';
break;
default:
$mediaFormats[$key]['extension'] = 'none';
break;
}
$mediaFormats[$key]['bitrate'] = (string) $attrs['bitrate'];
$mediaFormats[$key]['url'] = (string) $attrs['url'];
$mediaFormats[$key]['filesize'] = (string) number_format($attrs['fileSize']/1048576,1);
//$mediaFormats[$key]['3gp5MPEG4'] = (string) $attrs['3gp5MPEG4'];
}
}
ksort($mediaFormats,SORT_STRING);
//print_r($mediaFormats);
return ($mediaFormats);
}
function getMediaItemFormatsArrayHTML($mediaFormats,$class='offsite')
{
$output = '';
foreach ($mediaFormats as $mediaTypeEntry) {
//print_r($mediaTypeEntry)."
";
switch($mediaTypeEntry['extension']){
case '.mp3':
$text = 'MP3 Audio file for mp3 players and iPods ';
break;
case 'flv':
$text = '';
#echo "