function createMediaObject ($pagename, $fname, $attribs=false) { if (trim($fname) == '') return false; $type = MediaObjectFactory::type($fname); $ext = strtolower(file_extension($fname)); // special case: RealAudio/-Video switch ($ext) { case 'smi' : case 'smil': case 'rm': if ($attribs->attribs['media'] == 'audio') return new RealAudioObject($pagename, $fname, $attribs); else return new RealVideoObject($pagename, $fname, $attribs); case 'htm' : case 'html': return new IFrameObject($pagename, $fname, $attribs); } switch ($type) { case 'image' : return MediaObjectFactory::createImageObject($pagename, $fname, $attribs); case 'audio' : return MediaObjectFactory::createAudioObject($pagename, $fname, $attribs); case 'video' : return MediaObjectFactory::createVideoObject($pagename, $fname, $attribs); } // try to create a ScriptObject if ($so = ScriptObjectFactory::createScriptObjectFromFilename($pagename, $fname, $attribs)) return $so; if (is_object($attribs)) { $attr = $attribs->getAttribs(); if (isset($attr['url'])) return new IFrameObject($pagename, $fname, $attribs); } $co = new CodeObject($pagename, $fname, $attribs); return $co->isBinary() ? false : $co; }