query(" SELECT om.id, om_idiomas.id AS idioma_id, om_idiomas.idioma, om_idiomas.titulo, om_idiomas.subtitulo, om_idiomas.descripcion, om_idiomas.duracion, (SELECT serie_id FROM om_series WHERE om_id=om.id LIMIT 1) AS serie_id, perfiles.mimetype, perfiles.vancho, perfiles.valto, perfiles.acanales, ( SELECT CONCAT(nombre,' ',apellidos) FROM personas,om_personas WHERE om_id=om.id AND personas.id=persona_id AND tipo_id=(SELECT id FROM om_personas_tipos WHERE clasificacion='P') LIMIT 1 ) AS autor FROM om, om_idiomas, perfiles, videos WHERE fpublicacion<=NOW() AND om.id=om_idiomas.om_id AND perfiles.id=videos.perfil AND videos.idioma_id=om_idiomas.id AND om.tipo<>'".OM_TIPO_DIRECTO."' AND om_idiomas.id=( SELECT om_idiomas.id FROM idiomas, om_idiomas WHERE om_idiomas.om_id=om.id AND idiomas.id=om_idiomas.idioma ORDER BY idiomas.prioridad DESC, idiomas.idioma ASC LIMIT 1 ) AND 0=( SELECT COUNT(*) FROM om_categorias WHERE om_id=om.id AND ( categoria_cod LIKE 'a1b1c1d1' OR categoria_cod LIKE 'a1b1c1d1e%' ) ) GROUP BY serie_id ORDER BY falta DESC, titulo ASC LIMIT 20 ")) $db->err(); //$db->dump();exit; $recientes=$db->aquery(); $datos=Array( "titulo"=>"Universidad de Murcia - TV.UM.ES", "descripcion"=>"Material Audiovisual de la Universidad de Murcia", ); // extensión de la clase DOMDocument para que codifique valores de forma directa, // y evitar fallos XML por falta de escapado de valores de cadena por mikek (php.net) class XDOMElement extends DOMElement { function __construct($name, $value=null, $namespaceURI=null) { parent::__construct($name, null, $namespaceURI); } } class XDOMDocument extends DOMDocument { function __construct($version=null, $encoding=null) { parent::__construct($version, $encoding); $this->registerNodeClass('DOMElement', 'XDOMElement'); } function createElement($name, $value=null, $namespaceURI=null) { $element=new XDOMElement($name, $value, $namespaceURI); $element=$this->importNode($element); if (!empty($value)) $element->appendChild(new DOMText($value)); return $element; } } // documento RSS $xml=new XDOMdocument("1.0","UTF-8"); $rss=$xml->createElement("rss"); $rss->setAttribute("version","2.0"); /*$rss->setAttribute("xmlns:media","http://search.yahoo.com/mrss/"); $rss->setAttribute("xmlns:g","http://base.google.com/ns/1.0"); $rss->setAttribute("xmlns:itunes","http://www.itunes.com/dtds/podcast-1.0.dtd"); $rss->setAttribute("xmlns:arca","http://arca.uc3m.es/");*/ $channel=$xml->createElement("channel"); // general $i=$xml->createElement("title",$datos["titulo"]); $channel->appendChild($i); $i=$xml->createElement("description",$datos["descripcion"]); $channel->appendChild($i); $i=$xml->createElement("link","http://tv.um.es/"); $channel->appendChild($i); $i=$xml->createElement("copyright","(c)".date("Y")." Universidad de Murcia"); $channel->appendChild($i); $i=$xml->createElement("managingEditor","tv@um.es"); $channel->appendChild($i); $i=$xml->createElement("webMaster","tv@um.es"); $channel->appendChild($i); $i=$xml->createElement("category","universidad"); $i->setAttribute("domain","categoria_canal"); $channel->appendChild($i); $i=$xml->createElement("docs",$serverurl."rss"); $channel->appendChild($i); $i=$xml->createElement("generator",$sessionname); $channel->appendChild($i); $i=$xml->createElement("ttl",1800); $channel->appendChild($i); $i=$xml->createElement("language","es"); $channel->appendChild($i); $image=$xml->createElement("image"); $i=$xml->createElement("url",$serverurl."images/favicon.ico"); $image->appendChild($i); $i=$xml->createElement("link",$serverurl); $image->appendChild($i); $i=$xml->createElement("title",$titulo); $image->appendChild($i); $channel->appendChild($image); // generar items foreach ($recientes as $om) { $item=$xml->createElement("item"); $i=$xml->createElement("title",$om["titulo"]); $item->appendChild($i); $i=$xml->createElement("link",$serverurl."video?id=".$om["id"]."&lang=".$om["idioma"]); $item->appendChild($i); //echo $om["descripcion"];exit; //new DOMText($om["descripcion"]) //$i=$xml->createElement("description",htmlentities($om["descripcion"],ENT_COMPAT,"UTF-8")); $item->appendChild($i); $i=$xml->createElement("description",$om["descripcion"]); $item->appendChild($i); $dateTime=new DateTime($om["fpublicacion"]." 00:00:00"); $i=$xml->createElement("pubDate",$dateTime->format(DateTime::RSS)); $item->appendChild($i); $i=$xml->createElement("author",$om["autor"]); $item->appendChild($i); $i=$xml->createElement("category","99"); $i->setAttribute("domain","Unesco"); $item->appendChild($i); $media_group=$xml->createElement("media_group"); $media_content=$xml->createElement("media_content"); $media_content->setAttribute("url",$serverurl."video?id=".$om["id"]."&lang=".$om["idioma"]); $media_content->setAttribute("type",$om["mimetype"]); $media_content->setAttribute("medium","video"); $media_content->setAttribute("isDefault","true"); $media_content->setAttribute("expression","full"); $media_content->setAttribute("framerate","25"); $media_content->setAttribute("channels",$om["acanales"]); $media_content->setAttribute("duration",$om["duracion"]); $media_content->setAttribute("width",$om["vancho"]); $media_content->setAttribute("height",$om["valto"]); $media_content->setAttribute("lang",$om["idioma"]); $media_group->appendChild($media_content); $item->appendChild($media_group); $channel->appendChild($item); } /* */ $rss->appendChild($channel); $xml->appendChild($rss); header("Content-type: text/xml; charset: UTF-8"); //header("Content-type: application/rss+xml; charset: UTF-8"); // no //header("Content-type: text/plain; charset: UTF-8"); // debug echo $xml->saveXML();