diff options
Diffstat (limited to 'simplepie/demo')
49 files changed, 1651 insertions, 0 deletions
diff --git a/simplepie/demo/cli_test.php b/simplepie/demo/cli_test.php new file mode 100755 index 000000000..ec933c5ad --- /dev/null +++ b/simplepie/demo/cli_test.php @@ -0,0 +1,23 @@ +#!/usr/bin/php +<?php +include_once('../simplepie.inc'); + +// Parse it +$feed = new SimplePie(); +if (isset($argv[1]) && $argv[1] !== '') +{ + $feed->set_feed_url($argv[1]); + $feed->enable_cache(false); + $feed->init(); +} + +$items = $feed->get_items(); + +foreach ($items as $item) +{ + echo $item->get_title() . "\n"; +} + +var_dump($feed->get_item_quantity()); + +?>
\ No newline at end of file diff --git a/simplepie/demo/for_the_demo/alternate_favicon.png b/simplepie/demo/for_the_demo/alternate_favicon.png Binary files differnew file mode 100644 index 000000000..063fb2805 --- /dev/null +++ b/simplepie/demo/for_the_demo/alternate_favicon.png diff --git a/simplepie/demo/for_the_demo/background_blockquote.png b/simplepie/demo/for_the_demo/background_blockquote.png Binary files differnew file mode 100644 index 000000000..8267e23a2 --- /dev/null +++ b/simplepie/demo/for_the_demo/background_blockquote.png diff --git a/simplepie/demo/for_the_demo/background_menuitem.gif b/simplepie/demo/for_the_demo/background_menuitem.gif Binary files differnew file mode 100644 index 000000000..fa765d670 --- /dev/null +++ b/simplepie/demo/for_the_demo/background_menuitem.gif diff --git a/simplepie/demo/for_the_demo/background_menuitem_off.gif b/simplepie/demo/for_the_demo/background_menuitem_off.gif Binary files differnew file mode 100644 index 000000000..236cf406d --- /dev/null +++ b/simplepie/demo/for_the_demo/background_menuitem_off.gif diff --git a/simplepie/demo/for_the_demo/background_menuitem_shadow.gif b/simplepie/demo/for_the_demo/background_menuitem_shadow.gif Binary files differnew file mode 100644 index 000000000..95cfb820d --- /dev/null +++ b/simplepie/demo/for_the_demo/background_menuitem_shadow.gif diff --git a/simplepie/demo/for_the_demo/favicons/alternate.png b/simplepie/demo/for_the_demo/favicons/alternate.png Binary files differnew file mode 100644 index 000000000..063fb2805 --- /dev/null +++ b/simplepie/demo/for_the_demo/favicons/alternate.png diff --git a/simplepie/demo/for_the_demo/favicons/blinklist.png b/simplepie/demo/for_the_demo/favicons/blinklist.png Binary files differnew file mode 100644 index 000000000..53200b3c6 --- /dev/null +++ b/simplepie/demo/for_the_demo/favicons/blinklist.png diff --git a/simplepie/demo/for_the_demo/favicons/blogmarks.png b/simplepie/demo/for_the_demo/favicons/blogmarks.png Binary files differnew file mode 100644 index 000000000..c5372614a --- /dev/null +++ b/simplepie/demo/for_the_demo/favicons/blogmarks.png diff --git a/simplepie/demo/for_the_demo/favicons/delicious.png b/simplepie/demo/for_the_demo/favicons/delicious.png Binary files differnew file mode 100644 index 000000000..2e6021d26 --- /dev/null +++ b/simplepie/demo/for_the_demo/favicons/delicious.png diff --git a/simplepie/demo/for_the_demo/favicons/digg.png b/simplepie/demo/for_the_demo/favicons/digg.png Binary files differnew file mode 100644 index 000000000..3aa96770e --- /dev/null +++ b/simplepie/demo/for_the_demo/favicons/digg.png diff --git a/simplepie/demo/for_the_demo/favicons/magnolia.png b/simplepie/demo/for_the_demo/favicons/magnolia.png Binary files differnew file mode 100644 index 000000000..da519f5ab --- /dev/null +++ b/simplepie/demo/for_the_demo/favicons/magnolia.png diff --git a/simplepie/demo/for_the_demo/favicons/myweb2.png b/simplepie/demo/for_the_demo/favicons/myweb2.png Binary files differnew file mode 100644 index 000000000..2a12968d5 --- /dev/null +++ b/simplepie/demo/for_the_demo/favicons/myweb2.png diff --git a/simplepie/demo/for_the_demo/favicons/newsvine.png b/simplepie/demo/for_the_demo/favicons/newsvine.png Binary files differnew file mode 100644 index 000000000..5cdbb31c6 --- /dev/null +++ b/simplepie/demo/for_the_demo/favicons/newsvine.png diff --git a/simplepie/demo/for_the_demo/favicons/reddit.png b/simplepie/demo/for_the_demo/favicons/reddit.png Binary files differnew file mode 100644 index 000000000..65c38867c --- /dev/null +++ b/simplepie/demo/for_the_demo/favicons/reddit.png diff --git a/simplepie/demo/for_the_demo/favicons/segnalo.png b/simplepie/demo/for_the_demo/favicons/segnalo.png Binary files differnew file mode 100644 index 000000000..748149b37 --- /dev/null +++ b/simplepie/demo/for_the_demo/favicons/segnalo.png diff --git a/simplepie/demo/for_the_demo/favicons/simpy.png b/simplepie/demo/for_the_demo/favicons/simpy.png Binary files differnew file mode 100644 index 000000000..30b23c1a5 --- /dev/null +++ b/simplepie/demo/for_the_demo/favicons/simpy.png diff --git a/simplepie/demo/for_the_demo/favicons/spurl.png b/simplepie/demo/for_the_demo/favicons/spurl.png Binary files differnew file mode 100644 index 000000000..f5be3963d --- /dev/null +++ b/simplepie/demo/for_the_demo/favicons/spurl.png diff --git a/simplepie/demo/for_the_demo/favicons/technorati.png b/simplepie/demo/for_the_demo/favicons/technorati.png Binary files differnew file mode 100644 index 000000000..0f19e824e --- /dev/null +++ b/simplepie/demo/for_the_demo/favicons/technorati.png diff --git a/simplepie/demo/for_the_demo/favicons/wists.png b/simplepie/demo/for_the_demo/favicons/wists.png Binary files differnew file mode 100644 index 000000000..2e2d294d1 --- /dev/null +++ b/simplepie/demo/for_the_demo/favicons/wists.png diff --git a/simplepie/demo/for_the_demo/feed.png b/simplepie/demo/for_the_demo/feed.png Binary files differnew file mode 100644 index 000000000..e23c50c85 --- /dev/null +++ b/simplepie/demo/for_the_demo/feed.png diff --git a/simplepie/demo/for_the_demo/logo_simplepie_demo.png b/simplepie/demo/for_the_demo/logo_simplepie_demo.png Binary files differnew file mode 100644 index 000000000..eda2d868b --- /dev/null +++ b/simplepie/demo/for_the_demo/logo_simplepie_demo.png diff --git a/simplepie/demo/for_the_demo/lucida-grande-bold.swf b/simplepie/demo/for_the_demo/lucida-grande-bold.swf Binary files differnew file mode 100644 index 000000000..0a41e15eb --- /dev/null +++ b/simplepie/demo/for_the_demo/lucida-grande-bold.swf diff --git a/simplepie/demo/for_the_demo/mediaplayer.swf b/simplepie/demo/for_the_demo/mediaplayer.swf Binary files differnew file mode 100644 index 000000000..bf78fd919 --- /dev/null +++ b/simplepie/demo/for_the_demo/mediaplayer.swf diff --git a/simplepie/demo/for_the_demo/mediaplayer_readme.htm b/simplepie/demo/for_the_demo/mediaplayer_readme.htm new file mode 100755 index 000000000..56e12c309 --- /dev/null +++ b/simplepie/demo/for_the_demo/mediaplayer_readme.htm @@ -0,0 +1,5 @@ +<html> +<head> +<meta http-equiv="refresh" content="0;url=http://www.jeroenwijering.com/extras/readme.html"> +</head> +</html>
\ No newline at end of file diff --git a/simplepie/demo/for_the_demo/mini_podcast.png b/simplepie/demo/for_the_demo/mini_podcast.png Binary files differnew file mode 100644 index 000000000..fd6faf2a3 --- /dev/null +++ b/simplepie/demo/for_the_demo/mini_podcast.png diff --git a/simplepie/demo/for_the_demo/place_audio.png b/simplepie/demo/for_the_demo/place_audio.png Binary files differnew file mode 100644 index 000000000..560ea0039 --- /dev/null +++ b/simplepie/demo/for_the_demo/place_audio.png diff --git a/simplepie/demo/for_the_demo/place_video.png b/simplepie/demo/for_the_demo/place_video.png Binary files differnew file mode 100644 index 000000000..be5ec8219 --- /dev/null +++ b/simplepie/demo/for_the_demo/place_video.png diff --git a/simplepie/demo/for_the_demo/sIFR-print.css b/simplepie/demo/for_the_demo/sIFR-print.css new file mode 100644 index 000000000..ec89b1961 --- /dev/null +++ b/simplepie/demo/for_the_demo/sIFR-print.css @@ -0,0 +1,35 @@ +/*=:project + scalable Inman Flash Replacement (sIFR) version 3. + + =:file + Copyright: 2006 Mark Wubben. + Author: Mark Wubben, <http://novemberborn.net/> + + =:history + * IFR: Shaun Inman + * sIFR 1: Mike Davidson, Shaun Inman and Tomas Jogin + * sIFR 2: Mike Davidson, Shaun Inman, Tomas Jogin and Mark Wubben + + =:license + This software is licensed and provided under the CC-GNU LGPL. + See <http://creativecommons.org/licenses/LGPL/2.1/> +*/ + + +/* This is the print stylesheet to hide the Flash headlines from the browser... regular browser text headlines will now print as normal */ + +.sIFR-flash { + display: none !important; + height: 0; + width: 0; + position: absolute; + overflow: hidden; +} + +.sIFR-alternate { + visibility: visible !important; + display: block !important; + position: static !important; + left: auto !important; + top: auto !important; +}
\ No newline at end of file diff --git a/simplepie/demo/for_the_demo/sIFR-screen.css b/simplepie/demo/for_the_demo/sIFR-screen.css new file mode 100644 index 000000000..778e09d2b --- /dev/null +++ b/simplepie/demo/for_the_demo/sIFR-screen.css @@ -0,0 +1,39 @@ +/*=:project + scalable Inman Flash Replacement (sIFR) version 3. + + =:file + Copyright: 2006 Mark Wubben. + Author: Mark Wubben, <http://novemberborn.net/> + + =:history + * IFR: Shaun Inman + * sIFR 1: Mike Davidson, Shaun Inman and Tomas Jogin + * sIFR 2: Mike Davidson, Shaun Inman, Tomas Jogin and Mark Wubben + + =:license + This software is licensed and provided under the CC-GNU LGPL. + See <http://creativecommons.org/licenses/LGPL/2.1/> +*/ + +/*---- sIFR ---*/ +.sIFR-flash { + visibility: visible !important; + margin: 0; + padding: 0; +} + +.sIFR-replaced { + visibility: visible !important; +} + +.sIFR-alternate { + position: absolute; + left: 0; + top: 0; + width: 0; + height: 0; + display: block; + overflow: hidden; +} + +/*---- Header styling ---*/ diff --git a/simplepie/demo/for_the_demo/sifr-config.js b/simplepie/demo/for_the_demo/sifr-config.js new file mode 100644 index 000000000..e7066b361 --- /dev/null +++ b/simplepie/demo/for_the_demo/sifr-config.js @@ -0,0 +1,40 @@ +var yanone_kaffeesatz = { + src: './for_the_demo/yanone-kaffeesatz-bold.swf' +}; + +var lucida_grande = { + src: './for_the_demo/lucida-grande-bold.swf' +}; + +sIFR.activate(yanone_kaffeesatz); +//sIFR.activate(lucida_grande); + +sIFR.replace(yanone_kaffeesatz, { +//sIFR.replace(lucida_grande, { + + selector: 'h3.header', + wmode: 'transparent', + css: { + '.sIFR-root': { + 'text-align': 'center', + 'color': '#000000', + 'font-weight': 'bold', + 'background-color': '#EEFFEE', + + 'font-size': '50px', // For Yanone Kaffeesatz + //'font-size': '40px', // For Lucida Grande + + 'letter-spacing': '0' // For Yanone Kaffeesatz + //'letter-spacing': '-4' // For Lucida Grande + + }, + 'a': { + 'text-decoration': 'none', + 'color': '#000000' + }, + 'a:hover': { + 'text-decoration': 'none', + 'color': '#666666' + } + } +}); diff --git a/simplepie/demo/for_the_demo/sifr.js b/simplepie/demo/for_the_demo/sifr.js new file mode 100644 index 000000000..0a8b1b6dc --- /dev/null +++ b/simplepie/demo/for_the_demo/sifr.js @@ -0,0 +1,19 @@ +/*=:project + scalable Inman Flash Replacement (sIFR) version 3, revision 245 + + =:file + Copyright: 2006 Mark Wubben. + Author: Mark Wubben, <http://novemberborn.net/> + + =:history + * IFR: Shaun Inman + * sIFR 1: Mike Davidson, Shaun Inman and Tomas Jogin + * sIFR 2: Mike Davidson, Shaun Inman, Tomas Jogin and Mark Wubben + + =:license + This software is licensed and provided under the CC-GNU LGPL. + See <http://creativecommons.org/licenses/LGPL/2.1/> +*/ + +var parseSelector=(function(){var _1=/\s*,\s*/;var _2=/\s*([\s>+~(),]|^|$)\s*/g;var _3=/([\s>+~,]|[^(]\+|^)([#.:@])/g;var _4=/^[^\s>+~]/;var _5=/[\s#.:>+~()@]|[^\s#.:>+~()@]+/g;function parseSelector(_6,_7){_7=_7||document.documentElement;var _8=_6.split(_1),_9=[];for(var i=0;i<_8.length;i++){var _b=[_7],_c=toStream(_8[i]);for(var j=0;j<_c.length;){var _e=_c[j++],_f=_c[j++],_10="";if(_c[j]=="("){while(_c[j++]!=")"&&j<_c.length){_10+=_c[j]}_10=_10.slice(0,-1)}_b=select(_b,_e,_f,_10)}_9=_9.concat(_b)}return _9}function toStream(_11){var _12=_11.replace(_2,"$1").replace(_3,"$1*$2");if(_4.test(_12)){_12=" "+_12}return _12.match(_5)||[]}function select(_13,_14,_15,_16){return (_17[_14])?_17[_14](_13,_15,_16):[]}var _18={toArray:function(_19){var a=[];for(var i=0;i<_19.length;i++){a.push(_19[i])}return a}};var dom={isTag:function(_1d,tag){return (tag=="*")||(tag.toLowerCase()==_1d.nodeName.toLowerCase())},previousSiblingElement:function(_1f){do{_1f=_1f.previousSibling}while(_1f&&_1f.nodeType!=1);return _1f},nextSiblingElement:function(_20){do{_20=_20.nextSibling}while(_20&&_20.nodeType!=1);return _20},hasClass:function(_21,_22){return (_22.className||"").match("(^|\\s)"+_21+"(\\s|$)")},getByTag:function(tag,_24){return _24.getElementsByTagName(tag)}};var _17={"#":function(_25,_26){for(var i=0;i<_25.length;i++){if(_25[i].getAttribute("id")==_26){return [_25[i]]}}return []}," ":function(_28,_29){var _2a=[];for(var i=0;i<_28.length;i++){_2a=_2a.concat(_18.toArray(dom.getByTag(_29,_28[i])))}return _2a},">":function(_2c,_2d){var _2e=[];for(var i=0,_30;i<_2c.length;i++){_30=_2c[i];for(var j=0,_32;j<_30.childNodes.length;j++){_32=_30.childNodes[j];if(_32.nodeType==1&&dom.isTag(_32,_2d)){_2e.push(_32)}}}return _2e},".":function(_33,_34){var _35=[];for(var i=0,_37;i<_33.length;i++){_37=_33[i];if(dom.hasClass([_34],_37)){_35.push(_37)}}return _35},":":function(_38,_39,_3a){return (pseudoClasses[_39])?pseudoClasses[_39](_38,_3a):[]}};parseSelector.selectors=_17;parseSelector.pseudoClasses={};parseSelector.util=_18;parseSelector.dom=dom;return parseSelector})(); +var sIFR=new function(){var _3b=this;var _3c="sIFR-active";var _3d="sIFR-replaced";var _3e="sIFR-replacing";var _3f="sIFR-flash";var _40="sIFR-ignore";var _41="sIFR-alternate";var _42="sIFR-class";var _43="sIFR-layout";var _44=6;var _45=126;var _46=8;var _47="SIFR-PREFETCHED";var _48=[10,1.55,19,1.45,32,1.35,71,1.3,1.25];var _49=5;this.isActive=false;this.isEnabled=true;this.hideElements=true;this.preserveSingleWhitespace=false;this.fixWrap=true;this.fixHover=true;this.registerEvents=true;this.setPrefetchCookie=true;this.cookiePath="/";this.domains=[];this.fromLocal=true;this.forceClear=false;this.forceWidth=false;this.fitExactly=false;this.forceTextTransform=true;this.useDomContentLoaded=true;this.debugMode=false;this.hasFlashClassSet=false;this.delayCss=false;this.callbacks=[];var _4a=0;var _4b=false,_4c=false;var dom=new function(){var _4e="http://www.w3.org/1999/xhtml";this.getBody=function(){var _4f=document.getElementsByTagName("body");if(_4f.length==1){return _4f[0]}return null};this.addClass=function(_50,_51){if(_51){_51.className=((_51.className||"")==""?"":_51.className+" ")+_50}};this.removeClass=function(_52,_53){if(_53){_53.className=_53.className.replace(new RegExp("(^|\\s)"+_52+"(\\s|$)"),"").replace(/^\s+|(\s)\s+/g,"$1")}};this.hasClass=function(_54,_55){return new RegExp("(^|\\s)"+_54+"(\\s|$)").test(_55.className)};this.hasOneOfClassses=function(_56,_57){for(var i=0;i<_56.length;i++){if(this.hasClass(_56[i],_57)){return true}}return false};this.create=function(_59){if(document.createElementNS){return document.createElementNS(_4e,_59)}return document.createElement(_59)};this.setInnerHtml=function(_5a,_5b){if(ua.innerHtmlSupport){_5a.innerHTML=_5b}else{if(ua.xhtmlSupport){_5b=["<root xmlns=\"",_4e,"\">",_5b,"</root>"].join("");var xml=(new DOMParser()).parseFromString(_5b,"text/xml");xml=document.importNode(xml.documentElement,true);while(_5a.firstChild){_5a.removeChild(_5a.firstChild)}while(xml.firstChild){_5a.appendChild(xml.firstChild)}}}};this.nodeFromHtml=function(_5d){var _5e=this.create("div");_5e.innerHTML=_5d;return _5e.firstChild};this.getComputedStyle=function(_5f,_60){var _61;if(document.defaultView&&document.defaultView.getComputedStyle){_61=document.defaultView.getComputedStyle(_5f,null)[_60]}else{if(_5f.currentStyle){_61=_5f.currentStyle[_60]}}return _61||""};this.getStyleAsInt=function(_62,_63,_64){var _65=this.getComputedStyle(_62,_63);if(_64&&!/px$/.test(_65)){return 0}_65=parseInt(_65);return isNaN(_65)?0:_65};this.getZoom=function(){return _66.zoom.getLatest()}};this.dom=dom;var ua=new function(){var ua=navigator.userAgent.toLowerCase();var _69=(navigator.product||"").toLowerCase();this.macintosh=ua.indexOf("mac")>-1;this.windows=ua.indexOf("windows")>-1;this.quicktime=false;this.opera=ua.indexOf("opera")>-1;this.konqueror=_69.indexOf("konqueror")>-1;this.ie=false/*@cc_on || true @*/;this.ieSupported=this.ie&&!/ppc|smartphone|iemobile|msie\s5\.5/.test(ua)/*@cc_on && @_jscript_version >= 5.5 @*/;this.ieWin=this.ie&&this.windows/*@cc_on && @_jscript_version >= 5.1 @*/;this.windows=this.windows&&(!this.ie||this.ieWin);this.ieMac=this.ie&&this.macintosh/*@cc_on && @_jscript_version < 5.1 @*/;this.macintosh=this.macintosh&&(!this.ie||this.ieMac);this.safari=ua.indexOf("safari")>-1;this.webkit=ua.indexOf("applewebkit")>-1&&!this.konqueror;this.khtml=this.webkit||this.konqueror;this.gecko=!this.webkit&&_69=="gecko";this.operaVersion=this.opera&&/.*opera(\s|\/)(\d+\.\d+)/.exec(ua)?parseInt(RegExp.$2):0;this.webkitVersion=this.webkit&&/.*applewebkit\/(\d+).*/.exec(ua)?parseInt(RegExp.$1):0;this.geckoBuildDate=this.gecko&&/.*gecko\/(\d{8}).*/.exec(ua)?parseInt(RegExp.$1):0;this.konquerorVersion=this.konqueror&&/.*konqueror\/(\d\.\d).*/.exec(ua)?parseInt(RegExp.$1):0;this.flashVersion=0;if(this.ieWin){var axo;var _6b=false;try{axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7")}catch(e){try{axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6");this.flashVersion=6;axo.AllowScriptAccess="always"}catch(e){_6b=this.flashVersion==6}if(!_6b){try{axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash")}catch(e){}}}if(!_6b&&axo){this.flashVersion=parseFloat(/([\d,?]+)/.exec(axo.GetVariable("$version"))[1].replace(/,/g,"."))}}else{if(navigator.plugins&&navigator.plugins["Shockwave Flash"]){var _6c=navigator.plugins["Shockwave Flash"];this.flashVersion=parseFloat(/(\d+\.?\d*)/.exec(_6c.description)[1]);var i=0;while(this.flashVersion>=_46&&i<navigator.mimeTypes.length){var _6e=navigator.mimeTypes[i];if(_6e.type=="application/x-shockwave-flash"&&_6e.enabledPlugin.description.toLowerCase().indexOf("quicktime")>-1){this.flashVersion=0;this.quicktime=true}i++}}}this.flash=this.flashVersion>=_46;this.transparencySupport=this.macintosh||this.windows;this.computedStyleSupport=this.ie||document.defaultView&&document.defaultView.getComputedStyle&&(!this.gecko||this.geckoBuildDate>=20030624);this.css=true;if(this.computedStyleSupport){try{var _6f=document.getElementsByTagName("head")[0];_6f.style.backgroundColor="#FF0000";var _70=dom.getComputedStyle(_6f,"backgroundColor");this.css=!_70||/\#F{2}0{4}|rgb\(255,\s?0,\s?0\)/i.test(_70);_6f.style.backgroundColor="";_6f=null}catch(e){}}this.xhtmlSupport=!!window.DOMParser&&!!document.importNode;try{var n=dom.create("span");if(!this.ieMac){n.innerHTML="x"}this.innerHtmlSupport=n.innerHTML=="x"}catch(e){this.innerHtmlSupport=false}this.zoomSupport=!!(this.opera&&document.documentElement);this.geckoXml=this.gecko&&(document.contentType||"").indexOf("xml")>-1;this.requiresPrefetch=this.ieWin||this.khtml;this.verifiedKonqueror=false;this.supported=this.flash&&this.css&&(!this.ie||this.ieSupported)&&(!this.opera||this.operaVersion>=8)&&(!this.webkit||this.webkitVersion>=412)&&(!this.konqueror||this.konquerorVersion>3.5)&&this.computedStyleSupport&&(this.innerHtmlSupport||!this.khtml&&this.xhtmlSupport)};this.ua=ua;var _72=new function(){var _73={leading:true,"margin-left":true,"margin-right":true,"text-indent":true};var _74=" ";function capitalize($){return $.toUpperCase()}this.normalize=function(str){if(_3b.preserveSingleWhitespace){return str.replace(/\s/g,_74)}return str.replace(/(\s)\s+/g,"$1").replace(/\xA0/,_74)};this.textTransform=function(_77,str){switch(_77){case "uppercase":str=str.toUpperCase();break;case "lowercase":str=str.toLowerCase();break;case "capitalize":var _79=str;str=str.replace(/^\w|\s\w/g,capitalize);if(str.indexOf("function capitalize")!=-1){var _7a=_79.replace(/(^|\s)(\w)/g,"$1$1$2$2").split(/^\w|\s\w/g);str="";for(var i=0;i<_7a.length;i++){str+=_7a[i].charAt(0).toUpperCase()+_7a[i].substring(1)}}break}return str};this.toHexString=function(str){if(typeof (str)!="string"||!str.charAt(0)=="#"||str.length!=4&&str.length!=7){return str}str=str.replace(/#/,"");if(str.length==3){str=str.replace(/(.)(.)(.)/,"$1$1$2$2$3$3")}return "0x"+str};this.toJson=function(obj){var _7e="";switch(typeof (obj)){case "string":_7e="\""+obj+"\"";break;case "number":case "boolean":_7e=obj.toString();break;case "object":_7e=[];for(var _7f in obj){if(obj[_7f]==Object.prototype[_7f]){continue}_7e.push("\""+_7f+"\":"+_72.toJson(obj[_7f]))}_7e="{"+_7e.join(",")+"}";break}return _7e};this.convertCssArg=function(arg){if(!arg){return {}}if(typeof (arg)=="object"){if(arg.constructor==Array){arg=arg.join("")}else{return arg}}var obj={};var _82=arg.split("}");for(var i=0;i<_82.length;i++){var $=_82[i].match(/([^\s{]+)\s*\{(.+)\s*;?\s*/);if(!$||$.length!=3){continue}if(!obj[$[1]]){obj[$[1]]={}}var _85=$[2].split(";");for(var j=0;j<_85.length;j++){var $2=_85[j].match(/\s*([^:\s]+)\s*\:\s*([^\s;]+)/);if(!$2||$2.length!=3){continue}obj[$[1]][$2[1]]=$2[2]}}return obj};this.extractFromCss=function(css,_89,_8a,_8b){var _8c=null;if(css&&css[_89]&&css[_89][_8a]){_8c=css[_89][_8a];if(_8b){delete css[_89][_8a]}}return _8c};this.cssToString=function(arg){var css=[];for(var _8f in arg){var _90=arg[_8f];if(_90==Object.prototype[_8f]){continue}css.push(_8f,"{");for(var _91 in _90){if(_90[_91]==Object.prototype[_91]){continue}var _92=_90[_91];if(_73[_91]){_92=parseInt(_92,10)}css.push(_91,":",_92,";")}css.push("}")}return escape(css.join(""))};this.bind=function(_93,_94){return function(){_93[_94].apply(_93,arguments)}}};this.util=_72;var _66={};_66.fragmentIdentifier=new function(){this.fix=true;var _95;this.cache=function(){_95=document.title};function doFix(){document.title=_95}this.restore=function(){if(this.fix){setTimeout(doFix,0)}}};_66.synchronizer=new function(){this.isBlocked=false;this.block=function(){this.isBlocked=true};this.unblock=function(){this.isBlocked=false;_96.replaceAll()}};_66.zoom=new function(){var _97=100;this.getLatest=function(){return _97};if(ua.zoomSupport&&ua.opera){var _98=document.createElement("div");_98.style.position="fixed";_98.style.left="-65536px";_98.style.top="0";_98.style.height="100%";_98.style.width="1px";_98.style.zIndex="-32";document.documentElement.appendChild(_98);function updateZoom(){if(!_98){return}var _99=window.innerHeight/_98.offsetHeight;var _9a=Math.round(_99*100)%10;if(_9a>5){_99=Math.round(_99*100)+10-_9a}else{_99=Math.round(_99*100)-_9a}_97=isNaN(_99)?100:_99;_66.synchronizer.unblock();document.documentElement.removeChild(_98);_98=null}_66.synchronizer.block();setTimeout(updateZoom,54)}};this.hacks=_66;var _9b={kwargs:[],replaceAll:function(){for(var i=0;i<this.kwargs.length;i++){_3b.replace(this.kwargs[i])}this.kwargs=[]}};var _96={kwargs:[],replaceAll:_9b.replaceAll};function isValidDomain(){if(_3b.domains.length==0){return true}var _9d="";try{_9d=document.domain}catch(e){}if(_3b.fromLocal&&sIFR.domains[0]!="localhost"){sIFR.domains.unshift("localhost")}for(var i=0;i<_3b.domains.length;i++){var _9f=_3b.domains[i];if(_9f=="*"||_9f==_9d){return true}var _a0=_9f.lastIndexOf("*");if(_a0>-1){_9f=_9f.substr(_a0+1);var _a1=_9d.lastIndexOf(_9f);if(_a1>-1&&(_a1+_9f.length)==_9d.length){return true}}}return false}this.activate=function(){if(!ua.supported||!this.isEnabled||this.isActive||!isValidDomain()){return}if(arguments.length>0){this.prefetch.apply(this,arguments)}this.isActive=true;if(this.hideElements){this.setFlashClass()}if(ua.ieWin&&_66.fragmentIdentifier.fix&&window.location.hash!=""){_66.fragmentIdentifier.cache()}else{_66.fragmentIdentifier.fix=false}if(!this.registerEvents){return}function handler(evt){_3b.initialize();if(evt&&evt.type=="load"){if(document.removeEventListener){document.removeEventListener("DOMContentLoaded",handler,false)}if(window.removeEventListener){window.removeEventListener("load",handler,false)}}}if(window.addEventListener){if(_3b.useDomContentLoaded&&ua.gecko){document.addEventListener("DOMContentLoaded",handler,false)}window.addEventListener("load",handler,false)}else{if(ua.ieWin){if(_3b.useDomContentLoaded){document.write("<scr"+"ipt id=__sifr_ie_onload defer src=//:></script>");document.getElementById("__sifr_ie_onload").onreadystatechange=function(){if(this.readyState=="complete"){handler();this.removeNode()}}}window.attachEvent("onload",handler)}}};this.setFlashClass=function(){if(this.hasFlashClassSet){return}dom.addClass(_3c,dom.getBody()||document.documentElement);this.hasFlashClassSet=true};this.removeFlashClass=function(){if(!this.hasFlashClassSet){return}dom.removeClass(_3c,dom.getBody());dom.removeClass(_3c,document.documentElement);this.hasFlashClassSet=false};this.initialize=function(){if(_4c||!this.isActive||!this.isEnabled){return}_4c=true;_9b.replaceAll();clearPrefetch()};function getSource(src){if(typeof (src)!="string"){if(src.src){src=src.src}if(typeof (src)!="string"){var _a4=[];for(var _a5 in src){if(src[_a5]!=Object.prototype[_a5]){_a4.push(_a5)}}_a4.sort().reverse();var _a6="";var i=-1;while(!_a6&&++i<_a4.length){if(parseFloat(_a4[i])<=ua.flashVersion){_a6=src[_a4[i]]}}src=_a6}}if(!src&&_3b.debugMode){throw new Error("sIFR: Could not determine appropriate source")}if(ua.ie&&src.charAt(0)=="/"){src=window.location.toString().replace(/([^:]+)(:\/?\/?)([^\/]+).*/,"$1$2$3")+src}return src}this.prefetch=function(){if(!ua.requiresPrefetch||!ua.supported||!this.isEnabled||!isValidDomain()){return}if(this.setPrefetchCookie&&new RegExp(";?"+_47+"=true;?").test(document.cookie)){return}try{_4b=true;if(ua.ieWin){prefetchIexplore(arguments)}else{prefetchLight(arguments)}if(this.setPrefetchCookie){document.cookie=_47+"=true;path="+this.cookiePath}}catch(e){if(_3b.debugMode){throw e}}};function prefetchIexplore(_a8){for(var i=0;i<_a8.length;i++){document.write("<script defer type=\"sifr/prefetch\" src=\""+getSource(_a8[i])+"\"></script>")}}function prefetchLight(_aa){for(var i=0;i<_aa.length;i++){new Image().src=getSource(_aa[i])}}function clearPrefetch(){if(!ua.ieWin||!_4b){return}try{var _ac=document.getElementsByTagName("script");for(var i=_ac.length-1;i>=0;i--){var _ae=_ac[i];if(_ae.type=="sifr/prefetch"){_ae.parentNode.removeChild(_ae)}}}catch(e){}}function getRatio(_af,_b0){for(var i=0;i<_b0.length;i+=2){if(_af<=_b0[i]){return _b0[i+1]}}return _b0[_b0.length-1]}function getFilters(obj){var _b3=[];for(var _b4 in obj){if(obj[_b4]==Object.prototype[_b4]){continue}var _b5=obj[_b4];_b4=[_b4.replace(/filter/i,"")+"Filter"];for(var _b6 in _b5){if(_b5[_b6]==Object.prototype[_b6]){continue}_b4.push(_b6+":"+escape(_72.toJson(_72.toHexString(_b5[_b6]))))}_b3.push(_b4.join(","))}return _b3.join(";")}function calculate(_b7){var _b8,_b9;if(!ua.ie){_b8=dom.getStyleAsInt(_b7,"lineHeight");_b9=Math.floor(dom.getStyleAsInt(_b7,"height")/_b8)}else{if(ua.ie){var _ba=_b7.innerHTML;_b7.style.visibility="visible";_b7.style.overflow="visible";_b7.style.position="static";_b7.style.zoom="normal";_b7.style.writingMode="lr-tb";_b7.style.width=_b7.style.height="auto";_b7.style.maxWidth=_b7.style.maxHeight=_b7.style.styleFloat="none";var _bb=_b7;var _bc=_b7.currentStyle.hasLayout;if(_bc){dom.setInnerHtml(_b7,"<div class=\""+_43+"\">X<br />X<br />X</div>");_bb=_b7.firstChild}else{dom.setInnerHtml(_b7,"X<br />X<br />X")}var _bd=_bb.getClientRects();_b8=_bd[1].bottom-_bd[1].top;_b8=Math.ceil(_b8*0.8);if(_bc){dom.setInnerHtml(_b7,"<div class=\""+_43+"\">"+_ba+"</div>");_bb=_b7.firstChild}else{dom.setInnerHtml(_b7,_ba)}_bd=_bb.getClientRects();_b9=_bd.length;if(_bc){dom.setInnerHtml(_b7,_ba)}_b7.style.visibility=_b7.style.width=_b7.style.height=_b7.style.maxWidth=_b7.style.maxHeight=_b7.style.overflow=_b7.style.styleFloat=_b7.style.position=_b7.style.zoom=_b7.style.writingMode=""}}return {lineHeight:_b8,lines:_b9}}this.replace=function(_be,_bf){if(!ua.supported){return}if(_bf){for(var _c0 in _be){if(typeof (_bf[_c0])=="undefined"){_bf[_c0]=_be[_c0]}}_be=_bf}if(!_4c){return _9b.kwargs.push(_be)}if(_66.synchronizer.isBlocked){return _96.kwargs.push(_be)}var _c1=_be.elements;if(!_c1&&parseSelector){_c1=parseSelector(_be.selector)}if(_c1.length==0){return}this.setFlashClass();var src=getSource(_be.src);var css=_72.convertCssArg(_be.css);var _c4=getFilters(_be.filters);var _c5=(_be.forceClear==null)?_3b.forceClear:_be.forceClear;var _c6=(_be.fitExactly==null)?_3b.fitExactly:_be.fitExactly;var _c7=_c6||(_be.forceWidth==null?_3b.forceWidth:_be.forceWidth);var _c8=parseInt(_72.extractFromCss(css,".sIFR-root","leading"))||0;var _c9=_72.extractFromCss(css,".sIFR-root","font-size",true)||0;var _ca=_72.extractFromCss(css,".sIFR-root","background-color",true)||"#FFFFFF";var _cb=_72.extractFromCss(css,".sIFR-root","kerning",true)||"";var _cc=_be.gridFitType||_72.extractFromCss(css,".sIFR-root","text-align")=="right"?"subpixel":"pixel";var _cd=_3b.forceTextTransform?_72.extractFromCss(css,".sIFR-root","text-transform",true)||"none":"none";var _ce=_72.extractFromCss(css,".sIFR-root","opacity",true)||"100";var _cf=_be.pixelFont||false;var _d0=_be.ratios||_48;if(parseInt(_c9).toString()!=_c9&&_c9.indexOf("px")==-1){_c9=0}else{_c9=parseInt(_c9)}if(parseFloat(_ce)<1){_ce=100*parseFloat(_ce)}var _d1=null;var _d2="";if(_c6){_72.extractFromCss(css,".sIFR-root","text-align",true)}if(!_be.modifyCss){_d2=_72.cssToString(css);_d1=_3b.fixHover&&_d2.indexOf("%3Ahover")>-1}var _d3=!ua.opera&&_3b.delayCss;var _d4=_be.wmode||"";if(!_d4){if(_be.transparent){_d4="transparent"}else{if(_be.opaque){_d4="opaque"}}}if(_d4=="transparent"){if(!ua.transparencySupport){_d4="opaque"}else{_ca="transparent"}}for(var i=0;i<_c1.length;i++){var _d6=_c1[i];if(!ua.verifiedKonqueror){if(dom.getComputedStyle(_d6,"lineHeight").match(/e\+08px/)){ua.supported=_3b.isEnabled=false;this.removeFlashClass();return}ua.verifiedKonqueror=true}if(dom.hasOneOfClassses([_3d,_3e,_40,_41],_d6)){continue}var _d7=_d6.offsetHeight;var _d8=_d6.offsetWidth;var _d9=dom.getComputedStyle(_d6,"display");if(!_d7||!_d8||_d9==null||_d9=="none"){continue}if(_c5&&ua.gecko){_d6.style.clear="both"}var _da=null;if(_3b.fixWrap&&ua.ie&&_d9=="block"){_da=_d6.innerHTML;dom.setInnerHtml(_d6,"X")}_d8=dom.getStyleAsInt(_d6,"width",ua.ie);if(_d8==0){var _db=dom.getStyleAsInt(_d6,"paddingRight",true);var _dc=dom.getStyleAsInt(_d6,"paddingLeft",true);var _dd=dom.getStyleAsInt(_d6,"borderRightWidth",true);var _de=dom.getStyleAsInt(_d6,"borderLeftWidth",true);_d8=_d6.offsetWidth-_dc-_db-_de-_dd}if(_da&&_3b.fixWrap&&ua.ie){dom.setInnerHtml(_d6,_da)}var _df,_e0;if(!_c9){var _e1=calculate(_d6);_df=Math.min(_45,Math.max(_44,_e1.lineHeight));if(_cf){_df=Math.max(8,8*Math.round(_df/8))}_e0=_e1.lines;if(isNaN(_e0)||!isFinite(_e0)||_e0==0){_e0=1}if(_e0>1&&_c8){_d7+=Math.round((_e0-1)*_c8)}}else{_df=_c9;_e0=1}_d7=Math.round(_e0*_df);if(_c5&&ua.gecko){_d6.style.clear=""}var _e2=dom.create("span");_e2.className=_41;var _e3=_d6.cloneNode(true);for(var j=0,l=_e3.childNodes.length;j<l;j++){_e2.appendChild(_e3.childNodes[j].cloneNode(true))}if(_be.modifyContent){_be.modifyContent(_e3,_be.selector)}if(_be.modifyCss){_d2=_be.modifyCss(css,_e3,_be.selector)}if(_d1==null){_d1=_3b.fixHover&&_d2.indexOf("%3Ahover")>-1}var _e6=handleContent(_e3,_cd);if(_be.modifyContentString){_e6=_be.modifyContentString(_e6,_be.selector)}if(_e6==""){continue}var _e7=["content="+_e6,"width="+_d8,"height="+_d7,"fitexactly="+(_c6?"true":""),"tunewidth="+(_be.tuneWidth||""),"tuneheight="+(_be.tuneHeight||""),"offsetleft="+(_be.offsetLeft||""),"offsettop="+(_be.offsetTop||""),"thickness="+(_be.thickness||""),"sharpness="+(_be.sharpness||""),"kerning="+_cb,"gridfittype="+_cc,"zoomsupport="+ua.zoomSupport,"flashfilters="+_c4,"opacity="+_ce,"blendmode="+(_be.blendMode||""),"size="+_df,"zoom="+dom.getZoom(),"css="+_d2,"selectable="+(_be.selectable==null?"true":_be.selectable),"lines="+_e0];var _e8=encodeURI(_e7.join("&"));var _e9="sIFR_callback_"+_4a++;var _ea=new CallbackInfo(_e9,_e7,_be.onReplacement,_d1);window[_e9+"_DoFSCommand"]=(function(_eb){return function(_ec,arg){_eb.handle(_ec,arg)}})(_ea);_d7=Math.round(_e0*getRatio(_df,_d0)*_df)+_49;var _ee=_c7?_d8:"100%";var _ef;if(ua.ie){_ef=["<object classid=\"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\" id=\"",_e9,"\" sifr=\"true\" width=\"",_ee,"\" height=\"",_d7,"\" class=\"",_3f,"\">","<param name=\"movie\" value=\"",src,"\"></param>","<param name=\"flashvars\" value=\"",_e8,"\"></param>","<param name=\"allowScriptAccess\" value=\"always\"></param>","<param name=\"quality\" value=\"best\"></param>","<param name=\"wmode\" value=\"",_d4,"\"></param>","<param name=\"bgcolor\" value=\"",_ca,"\"></param>","<param name=\"name\" value=\"",_e9,"\"></param>","</object>","<scr","ipt event=FSCommand(info,args) for=",_e9,">",_e9,"_DoFSCommand(info, args);","</","script>"].join("")}else{_ef=["<embed type=\"application/x-shockwave-flash\"",(_d3?" class=\""+_3f+"\"":"")," src=\"",src,"\" quality=\"best\" flashvars=\"",_e8,"\" width=\"",_ee,"\" height=\"",_d7,"\" wmode=\"",_d4,"\" bgcolor=\"",_ca,"\" name=\"",_e9,"\" id=\"",_e9,"\" allowScriptAccess=\"always\" sifr=\"true\"></embed>"].join("")}dom.setInnerHtml(_d6,_ef);_ea.flashNode=_d6.firstChild;_ea.html=_ef;_3b.callbacks.push(_ea);if(_be.selector){if(!_3b.callbacks[_be.selector]){_3b.callbacks[_be.selector]=[_ea]}else{_3b.callbacks[_be.selector].push(_ea)}}_d6.appendChild(_e2);dom.addClass(_d3?_3e:_3d,_d6);_ea.setupFixHover()}_66.fragmentIdentifier.restore()};this.getCallbackByFlashElement=function(_f0){for(var i=0;i<_3b.callbacks.length;i++){if(_3b.callbacks[i].id==_f0.getAttribute("id")){return _3b.callbacks[i]}}};function handleContent(_f2,_f3){var _f4=[],_f5=[];var _f6=_f2.childNodes;var i=0;while(i<_f6.length){var _f8=_f6[i];if(_f8.nodeType==3){var _f9=_72.normalize(_f8.nodeValue);_f9=_72.textTransform(_f3,_f9);_f5.push(_f9.replace(/\%/g,"%25").replace(/\&/g,"%26").replace(/\,/g,"%2C").replace(/\+/g,"%2B"))}if(_f8.nodeType==1){var _fa=[];var _fb=_f8.nodeName.toLowerCase();var _fc=_f8.className||"";if(/\s+/.test(_fc)){if(_fc.indexOf(_42)>-1){_fc=_fc.match("(\\s|^)"+_42+"-([^\\s$]*)(\\s|$)")[2]}else{_fc=_fc.match(/^([^\s]+)/)[1]}}if(_fc!=""){_fa.push("class=\""+_fc+"\"")}if(_fb=="a"){var _fd=_f8.getAttribute("href")||"";var _fe=_f8.getAttribute("target")||"";_fa.push("href=\""+_fd+"\"","target=\""+_fe+"\"")}_f5.push("<"+_fb+(_fa.length>0?" ":"")+escape(_fa.join(" "))+">");if(_f8.hasChildNodes()){_f4.push(i);i=0;_f6=_f8.childNodes;continue}else{if(!/^(br|img)$/i.test(_f8.nodeName)){_f5.push("</",_f8.nodeName.toLowerCase(),">")}}}if(_f4.length>0&&!_f8.nextSibling){do{i=_f4.pop();_f6=_f8.parentNode.parentNode.childNodes;_f8=_f6[i];if(_f8){_f5.push("</",_f8.nodeName.toLowerCase(),">")}}while(i==_f6.length-1&&_f4.length>0)}i++}return _f5.join("").replace(/\n|\r/g,"")}function CallbackInfo(id,vars,_101,_102){this.id=id;this.vars=vars;this._replacementHandler=_101;this._firedReplacementEvent=!(this._replacementHandler!=null);this._fixHover=_102;this._setClasses=!_3b.delayCss;this.html="";this._pings=0}CallbackInfo.prototype.getFlashElement=function(){return document.getElementById(this.id)};CallbackInfo.prototype.handle=function(info,arg){if(/(FSCommand\:)?resize/.test(info)){var _105=this.getFlashElement();var $=arg.split(/\:|,/);_105.setAttribute($[0],$[1]);if($.length>2){_105.setAttribute($[2],$[3])}if(!this._setClasses){if(!ua.ie&&!ua.opera){dom.addClass(_3f,_105)}dom.removeClass(_3e,_105.parentNode);dom.addClass(_3d,_105.parentNode);this._setClasses=true}if(ua.khtml){var _107=_105.offsetHeight}if(!this._firedReplacementEvent){this._replacementHandler(this);this._firedReplacementEvent=true}}else{if(/(FSCommand\:)?resetmovie/.test(info)){this.resetMovie()}else{if(/(FSCommand\:)?ping/.test(info)){if(this._pings>0){this.setupFixHover()}this._pings++}else{if(this.debugHandler&&/(FSCommand\:)?debug/.test(info)){this.debugHandler(info,arg)}}}}};CallbackInfo.prototype.call=function(type,_109){var _10a=this.getFlashElement();if(!_10a){return}_10a.SetVariable("callbackType",type);_10a.SetVariable("callbackValue",_109);_10a.SetVariable("callbackTrigger",true)};CallbackInfo.prototype.replaceText=function(_10b){_10b=escape(_10b);this.call("replacetext",_10b);this.vars[0]="content="+_10b;this.html=this.html.replace(/(flashvars(=|\"\svalue=)\")[^\"]+/,"$1"+encodeURI(this.vars.join("&")))};CallbackInfo.prototype.resetMovie=function(){var _10c=this.getFlashElement();var node=_10c.parentNode;node.replaceChild(dom.nodeFromHtml(this.html),_10c);this.setupFixHover()};CallbackInfo.prototype.setupFixHover=function(){var _10e=this.getFlashElement();if(!this._fixHover||!_10e){return}var node=_10e.parentNode;if(node.addEventListener){node.addEventListener("mouseout",_72.bind(this,"fixHover"),false)}else{if(node.attachEvent){node.attachEvent("onmouseout",_72.bind(this,"fixHover"))}}};CallbackInfo.prototype.fixHover=function(){this.call("resettext")}};
\ No newline at end of file diff --git a/simplepie/demo/for_the_demo/simplepie.css b/simplepie/demo/for_the_demo/simplepie.css new file mode 100644 index 000000000..3753cb96d --- /dev/null +++ b/simplepie/demo/for_the_demo/simplepie.css @@ -0,0 +1,397 @@ +/* +Theme Name: SimplePie +Theme URI: http://simplepie.org +Description: A simple, yet beautiful theme inspired by several cleanly designed websites. +Version: 1.4 +Author: Ryan Parman +Author URI: http://skyzyx.com +Updated: 21 June 2007 +*/ + + +/********************************************* +HYPERLINK STYLES +*********************************************/ +a { + color:#369; + text-decoration:underline; + padding:0 1px; +} + +a:hover { + color:#fff !important; + background-color:#333; + text-decoration:none; + padding:0 1px; +} + +a.nohover { + text-decoration:none; + border:none; +} + +a.nohover:hover { + background-color:transparent; + border:none; +} + +a.namelink { + padding:0; + margin:0; + overflow:hidden; + height:1px; +} + +h4 a, +.sample_feeds a { + color:#000; +} + + +/********************************************* +GENERAL STYLES +*********************************************/ +body { + /*font:12px/18px Verdana, sans-serif;*/ + font:14px/1.5em "Lucida Grande", Tahoma, sans-serif; + letter-spacing:0px; + color:#333; + background-color:#fff; + margin:0; + padding:0; +} + +div#site { + width:600px; + margin:50px auto 0 auto; +} + +h1#logo { + margin:0; + padding:0; + text-align:center; +} + +h1#logo a, +h1#logo a:hover { + background-color:transparent; + text-decoration:none; + padding:0; +} + +h2.image { + margin:0; + padding:0; + text-align:center; +} + +h3 { + margin:20px 0 0 0; + padding:0; + font-size:1.5em; +} + +h4 { + margin:20px 0 0 0; + padding:0; + font-size:1.2em; + letter-spacing:-1px; +} + +h5 { + margin:10px 0 0 0; + padding:0; + font-size:1em; + font-weight:bold; +} + +em { + font-style:normal; + background-color:#ffc; +} + +p { + margin:0; + padding:5px 0; +} + +ul, ol { + margin:10px 0 10px 20px; + padding:0 0 0 15px; +} + +ul li, ol li { + margin:0 0 7px 0; + padding:0 0 0 3px; +} + +form { + margin:0; + padding:0; +} + +code { + font-size:1em; + background-color:#f3f3ff; + color:#000; +} + +div#site pre { + background-color:#f3f3ff; + color:#000080; + border:1px dotted #000080; + overflow:auto; + padding:3px 5px; +} + +blockquote { + font-size:1em; + color:#666; + border-left:4px solid #666; + margin:10px 0 10px 30px; + padding:0 5px 0 10px; + background:#f3f3f3 url(background_blockquote.png) repeat top left; +} + +input, select, textarea { + font-size:12px; + line-height:1.2em; + padding:2px; +} + +input[type=text], select, textarea { + background-color:#e9f5ff; + border:1px solid #333; +} + +input[type=text]:focus, select:focus, textarea:focus { + background-color:#ffe; +} + +.clearLeft {clear:left;} +.clearRight {clear:right;} +.clearBoth {clear:both;} +.hide {display:none;} + + +/********************************************* +NAVIGATION STYLES +*********************************************/ +div#header { + background:#fff url(top_gradient.gif) repeat-x top left; + margin:0; + padding:0; +} + +div#header form { + margin:0; + padding:0; +} + +div#header div#headerInner { + margin:0; + padding:0; +} + +div#header div#headerInner div#logoContainer {} + +div#header div#headerInner div#logoContainerInner { + width:550px; + margin:0 auto; + padding:20px; +} + +div#header div#headerInner div#logoContainer div#logo { + float:left; + width:200px; +} + +div#header div#headerInner div#logoContainer div#logo a, +div#header div#headerInner div#logoContainer div#logo a:hover { + border:none; + background:none; +} + +div#header div#headerInner div#logoContainer div#feed { + float:right; + width:300px; + text-align:right; + padding:10px 0 0 0; +} + +div#header div#headerInner div#logoContainer div#feed input.text { + width:60%; +} + +div#header div#headerInner div#menu { + background:#eee url(background_menuitem_shadow.gif) repeat-x top left; + border-top:2px solid #ccc; + border-bottom:1px solid #ddd; + text-align:center; +} + +div#header div#headerInner div#menu table { + width:auto; + margin:0 auto; +} + +div#header div#headerInner div#menu ul { + display:block; + width:100%; + margin:0 auto; + padding:0; + font-size:12px; +} + +div#header div#headerInner div#menu ul li { + display:block; + float:left; +} + +div#header div#headerInner div#menu ul li a { + display:block; + margin:-2px 0 0 0; + padding:5px 7px 8px 7px; + text-decoration:none; + color:#666 !important; + background-color:transparent; +} + +div#header div#headerInner div#menu ul li a:hover { + display:block; + margin:-2px 0 0 0; + padding:5px 7px 8px 7px; + text-decoration:none; + color:#666; + background:#fff url(background_menuitem_off.gif) no-repeat bottom right; +} + +body#bodydemo div#header div#headerInner div#menu ul li#demo a { + display:block; + margin:-2px 0 0 0; + padding:5px 7px 8px 7px; + text-decoration:none; + color:#333; + font-weight:bold; + background:#fff url(background_menuitem.gif) no-repeat bottom right; +} + + +/********************************************* +CONTENT STYLES +*********************************************/ +div.chunk { + margin:20px 0 0 0; + padding:0 0 10px 0; + border-bottom:1px solid #ccc; +} + +div.topchunk { + margin:0 !important; +} + +.footnote, +.footnote a { + font-size:12px; + line-height:1.3em; + color:#aaa; +} + +.footnote em { + background-color:transparent; + font-style:italic; +} + +.footnote code { + background-color:transparent; + font:11px/14px monospace; + color:#aaa; +} + +p.subscribe { + background-color:#f3f3f3; + font-size:12px; + text-align:center; +} + +p.highlight { + background-color:#ffc; + font-size:12px; + text-align:center; +} + +p.sample_feeds { + font-size:12px; + line-height:1.2em; +} + +div.sp_errors { + background-color:#eee; + padding:5px; + text-align:center; + font-size:12px; +} + +.noborder { + border:none !important; +} + +img.favicon { + margin:0 4px -2px 0; + width:16px; + height:16px; +} + +p.favicons a, +p.favicons a:hover { + border:none; + background-color:transparent; +} + +p.favicons img { + border:none; +} + + +/********************************************* +DEMO STYLES +*********************************************/ +div#sp_input { + background-color:#ffc; + border:2px solid #f90; + padding:5px; + text-align:center; +} + +div#sp_input input.text { + border:1px solid #999; + background:#e9f5ff url(feed.png) no-repeat 4px 50%; + width:75%; + padding:2px 2px 2px 28px; + font:18px/22px "Lucida Grande", Verdana, sans-serif; + font-weight:bold; + letter-spacing:-1px; +} + +form#sp_form { + margin:15px 0; +} + +div.focus { + margin:0; + padding:10px 20px; + background-color:#efe; +} + +p.sample_feeds { + text-align:justify; +} + + +/********************************************* +SIFR STYLES +*********************************************/ +.sIFR-active h3.header { + visibility:hidden; + line-height:1em; +} diff --git a/simplepie/demo/for_the_demo/sleight.js b/simplepie/demo/for_the_demo/sleight.js new file mode 100644 index 000000000..4b5058e9a --- /dev/null +++ b/simplepie/demo/for_the_demo/sleight.js @@ -0,0 +1,31 @@ +/********************************************************** +Sleight +(c) 2001, Aaron Boodman +http://www.youngpup.net +**********************************************************/ + +if (navigator.platform == "Win32" && navigator.appName == "Microsoft Internet Explorer" && window.attachEvent) +{ + document.writeln('<style type="text/css">img { visibility:hidden; } </style>'); + window.attachEvent("onload", fnLoadPngs); +} + +function fnLoadPngs() +{ + var rslt = navigator.appVersion.match(/MSIE (\d+\.\d+)/, ''); + var itsAllGood = (rslt != null && Number(rslt[1]) >= 5.5); + + for (var i = document.images.length - 1, img = null; (img = document.images[i]); i--) + { + if (itsAllGood && img.src.match(/\.png$/i) != null) + { + var src = img.src; + var div = document.createElement("DIV"); + div.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + src + "', sizing='scale')" + div.style.width = img.width + "px"; + div.style.height = img.height + "px"; + img.replaceNode(div); + } + img.style.visibility = "visible"; + } +} diff --git a/simplepie/demo/for_the_demo/source_files/place_audio_fireworksfile.png b/simplepie/demo/for_the_demo/source_files/place_audio_fireworksfile.png Binary files differnew file mode 100644 index 000000000..2bfd87d0c --- /dev/null +++ b/simplepie/demo/for_the_demo/source_files/place_audio_fireworksfile.png diff --git a/simplepie/demo/for_the_demo/source_files/place_video_fireworksfile.png b/simplepie/demo/for_the_demo/source_files/place_video_fireworksfile.png Binary files differnew file mode 100644 index 000000000..d0629769c --- /dev/null +++ b/simplepie/demo/for_the_demo/source_files/place_video_fireworksfile.png diff --git a/simplepie/demo/for_the_demo/source_files/sIFR-r245/SifrStyleSheet.as b/simplepie/demo/for_the_demo/source_files/sIFR-r245/SifrStyleSheet.as new file mode 100644 index 000000000..6a98ca552 --- /dev/null +++ b/simplepie/demo/for_the_demo/source_files/sIFR-r245/SifrStyleSheet.as @@ -0,0 +1,71 @@ +/*=:project + scalable Inman Flash Replacement (sIFR) version 3. + + =:file + Copyright: 2006 Mark Wubben. + Author: Mark Wubben, <http://novemberborn.net/> + + =:history + * IFR: Shaun Inman + * sIFR 1: Mike Davidson, Shaun Inman and Tomas Jogin + * sIFR 2: Mike Davidson, Shaun Inman, Tomas Jogin and Mark Wubben + + =:license + This software is licensed and provided under the CC-GNU LGPL. + See <http://creativecommons.org/licenses/LGPL/2.1/> +*/ + +import TextField.StyleSheet; + +class SifrStyleSheet extends TextField.StyleSheet { + public var fontSize; + public var latestLeading = 0; + + public function parseCSS(cssText:String) { + var native = new TextField.StyleSheet(); + var parsed = native.parseCSS(cssText); + + if(!parsed) return false; + + var selectors = native.getStyleNames(); + for(var i = selectors.length - 1; i >= 0; i--) { + var selector = selectors[i]; + var nativeStyle = native.getStyle(selector); + var style = this.getStyle(selector) || nativeStyle; + if(style != nativeStyle) { + for(var property in nativeStyle) style[property] = nativeStyle[property]; + } + this.setStyle(selector, style); + } + + return true; + } + + // Apply leading to the textFormat. Much thanks to <http://www.blog.lessrain.com/?p=98>. + private function applyLeading(format, leading) { + this.latestLeading = leading; + + if(leading >= 0) { + format.leading = leading; + return format; + } + + // Workaround for negative leading, which is ignored otherwise. + var newFormat = new TextFormat(null, null, null, null, null, null, null, null, null, null, null, null, leading); + for(var property in format) if(property != 'leading') newFormat[property] = format[property]; + + return newFormat; + } + + public function transform(style) { + var format = super.transform(style); + if(style.leading) format = applyLeading(format, style.leading); + if(style.letterSpacing) format.letterSpacing = style.letterSpacing; + // Support font sizes relative to the size of .sIFR-root. + if(this.fontSize && style.fontSize && style.fontSize.indexOf('%')) { + format.size = this.fontSize * parseInt(style.fontSize) / 100; + } + format.kerning = _root.kerning == 'true' || !(_root.kerning == 'false') || sIFR.defaultKerning; + return format; + } +}
\ No newline at end of file diff --git a/simplepie/demo/for_the_demo/source_files/sIFR-r245/_README_.txt b/simplepie/demo/for_the_demo/source_files/sIFR-r245/_README_.txt new file mode 100644 index 000000000..2b9d32d20 --- /dev/null +++ b/simplepie/demo/for_the_demo/source_files/sIFR-r245/_README_.txt @@ -0,0 +1,12 @@ +This is a pre-release nightly of sIFR 3 (r245 to be exact). We (the SimplePie team) will be updating the +sIFR code and font files from time to time as new releases of sIFR 3 are made available. + +In this folder you'll find a few Flash 8 files. The only one of you might want to mess with is sifr.fla. + * Open it up + * Double-click the rectangle in the middle + * Select all + * Change the font + +More information about sIFR 3 can be found here: + * http://dev.novemberborn.net/sifr3/ + * http://wiki.novemberborn.net/sifr3/
\ No newline at end of file diff --git a/simplepie/demo/for_the_demo/source_files/sIFR-r245/options.as b/simplepie/demo/for_the_demo/source_files/sIFR-r245/options.as new file mode 100644 index 000000000..4d371954b --- /dev/null +++ b/simplepie/demo/for_the_demo/source_files/sIFR-r245/options.as @@ -0,0 +1,12 @@ +// MTASC only parses as-files with class definitions, so here goes... +class Options { + public static function apply() { + sIFR.fromLocal = true; + sIFR.domains = ['*']; + + // Parsing `p.foo` might not work, see: <http://livedocs.macromedia.com/flash/mx2004/main_7_2/wwhelp/wwhimpl/common/html/wwhelp.htm?context=Flash_MX_2004&file=00001766.html> + // Appearantly you have to use hex color codes as well, names are not supported! + + sIFR.styles.parseCSS('.foo { text-decoration: underline; }'); + } +} diff --git a/simplepie/demo/for_the_demo/source_files/sIFR-r245/sIFR.as b/simplepie/demo/for_the_demo/source_files/sIFR-r245/sIFR.as new file mode 100644 index 000000000..4902e003f --- /dev/null +++ b/simplepie/demo/for_the_demo/source_files/sIFR-r245/sIFR.as @@ -0,0 +1,359 @@ +/*=:project + scalable Inman Flash Replacement (sIFR) version 3. + + =:file + Copyright: 2006 Mark Wubben. + Author: Mark Wubben, <http://novemberborn.net/> + + =:history + * IFR: Shaun Inman + * sIFR 1: Mike Davidson, Shaun Inman and Tomas Jogin + * sIFR 2: Mike Davidson, Shaun Inman, Tomas Jogin and Mark Wubben + + =:license + This software is licensed and provided under the CC-GNU LGPL. + See <http://creativecommons.org/licenses/LGPL/2.1/> +*/ + +import SifrStyleSheet; + +class sIFR { + public static var DEFAULT_TEXT = 'Rendered with sIFR 3, revision 245'; + public static var CSS_ROOT_CLASS = 'sIFR-root'; + public static var DEFAULT_WIDTH = 300; + public static var DEFAULT_HEIGHT = 100; + public static var DEFAULT_ANTI_ALIAS_TYPE = 'advanced'; + public static var MARGIN_LEFT = -3; + public static var PADDING_BOTTOM = 5; // Extra padding to make sure the movie is high enough in most cases. + public static var LEADING_REMAINDER = 2; // Flash uses the specified leading minus 2 as the applied leading. + + public static var MAX_FONT_SIZE = 126; + public static var ALIASING_MAX_FONT_SIZE = 48; + + //= Holds CSS properties and other rendering properties for the Flash movie. + // *Don't overwrite!* + public static var styles:SifrStyleSheet = new SifrStyleSheet(); + //= Allow sIFR to be run from localhost + public static var fromLocal:Boolean = true; + //= Array containing domains for which sIFR may render text. Used to prevent + // hotlinking. Use `*` to allow all domains. + public static var domains:Array = []; + //= Whether kerning is enabled by default. This can be overriden from the client side. + // See also <http://livedocs.macromedia.com/flash/8/main/wwhelp/wwhimpl/common/html/wwhelp.htm?context=LiveDocs_Parts&file=00002811.html>. + public static var defaultKerning:Boolean = true; + //= Default value which can be overriden from the client side. + // See also <http://livedocs.macromedia.com/flash/8/main/wwhelp/wwhimpl/common/html/wwhelp.htm?context=LiveDocs_Parts&file=00002788.html>. + public static var defaultSharpness:Number = 0; + //= Default value which can be overriden from the client side. + // See also <http://livedocs.macromedia.com/flash/8/main/wwhelp/wwhimpl/common/html/wwhelp.htm?context=LiveDocs_Parts&file=00002787.html>. + public static var defaultThickness:Number = 0; + //= Default value which can be overriden from the client side. + // See also <http://livedocs.macromedia.com/flash/8/main/wwhelp/wwhimpl/common/html/wwhelp.htm?context=LiveDocs_Parts&file=00002732.html>. + public static var defaultOpacity:Number = -1; // Use client settings + //= Default value which can be overriden from the client side. + // See also <http://livedocs.macromedia.com/flash/8/main/wwhelp/wwhimpl/common/html/wwhelp.htm?context=LiveDocs_Parts&file=00002788.html>. + public static var defaultBlendMode:Number = -1; // Use cliest settings + //= Overrides the grid fit type as defined on the client side. + // See also <http://livedocs.macromedia.com/flash/8/main/wwhelp/wwhimpl/common/html/wwhelp.htm?context=LiveDocs_Parts&file=00002444.html>. + public static var enforcedGridFitType:String = null; + //= If `true` sIFR won't override the anti aliasing set in the Flash IDE when exporting. + // Thickness and sharpness won't be affected either. + public static var preserveAntiAlias:Boolean = false; + //= If `true` sIFR will disable anti-aliasing if the font size is larger than `ALIASING_MAX_FONT_SIZE`. + // This setting is *independent* from `preserveAntiAlias`. + public static var conditionalAntiAlias:Boolean = true; + //= Sets the anti alias type. By default it's `DEFAULT_ANTI_ALIAS_TYPE`. + // See also <http://livedocs.macromedia.com/flash/8/main/wwhelp/wwhimpl/common/html/wwhelp.htm?context=LiveDocs_Parts&file=00002733.html>. + public static var antiAliasType:String = null; + //= Flash filters can be added to this array and will be applied to the text field. + public static var filters:Array = []; + //= A mapping from the names of the filters to their actual objecs, used when transforming + // filters defined on the client. You can add additional filters here so they'll be supported + // when defined on the client. + public static var filterMap:Object = { + DisplacementMapFilter : flash.filters.DisplacementMapFilter, + ColorMatrixFilter : flash.filters.ColorMatrixFilter, + ConvolutionFilter : flash.filters.ConvolutionFilter, + GradientBevelFilter : flash.filters.GradientBevelFilter, + GradientGlowFilter : flash.filters.GradientGlowFilter, + BevelFilter : flash.filters.BevelFilter, + GlowFilter : flash.filters.GlowFilter, + BlurFilter : flash.filters.BlurFilter, + DropShadowFilter : flash.filters.DropShadowFilter + }; + + private static var instance; + + private var textField; + private var content; + private var realHeight; + private var originalHeight; + private var currentHeight; + private var fontSize; + private var tuneWidth; + private var tuneHeight; + + + + //= Sets the default styles for `sIFR.styles`. This method is called + // directly in `sifr.fla`, before options are applied. + public static function setDefaultStyles() { + sIFR.styles.parseCSS([ + '.', CSS_ROOT_CLASS, ' { color: #000000; }', + 'strong { display: inline; font-weight: bold; } ', + 'em { display: inline; font-style: italic; }', + 'a { color: #0000FF; text-decoration: underline; }', + 'a:hover { color: #0000FF; text-decoration: none; }' + ].join('')); + } + + //= Validates the domain sIFR is being used on. + // Returns `true` if the domain is valid, `false` otherwise. + public static function checkDomain():Boolean { + if(sIFR.domains.length == 0) return true; + + var domain = (new LocalConnection()).domain(); + if(sIFR.fromLocal) sIFR.domains.push('localhost'); + + for(var i = 0; i < sIFR.domains.length; i++) { + var match = sIFR.domains[i]; + if(match == '*' || match == domain) return true; + + var wildcard = match.lastIndexOf('*'); + if(wildcard > -1) { + match = match.substr(wildcard + 1); + var matchPosition = domain.lastIndexOf(match); + if(matchPosition > -1 && (matchPosition + match.length) == domain.length) return true; + } + } + + return false; + } + + //= Runs sIFR. Called automatically. + public static function run() { + var holder = _root.holder; + var content = checkDomain() ? unescape(_root.content) : DEFAULT_TEXT + if(content == 'undefined' || content == '') { + content = DEFAULT_TEXT; + fscommand('resetmovie', ''); + } else fscommand('ping', ''); + + // Sets stage parameters + Stage.scaleMode = 'noscale'; + Stage.align = 'TL'; + Stage.showMenu = false; + + // Other parameters + var opacity = parseInt(_root.opacity); + if(!isNaN(opacity)) holder._alpha = sIFR.defaultOpacity == -1 ? opacity : sIFR.defaultOpacity; + else holder._alpha = 100; + _root.blendMode = sIFR.defaultBlendMode == -1 ? _root.blendmode : sIFR.defaultBlendMode; + + sIFR.instance = new sIFR(holder.txtF, content); + // This should ignore resizes from the callback. Disabled for now. +/* if(_root.zoomsupport == 'true') Stage.addListener({onResize: function() { sIFR.instance.scale() }});*/ + + // Setup callbacks + _root.watch('callbackTrigger', function() { + sIFR.callback(); + return false; + }); + } + + private static function eval(str) { + var as; + + if(str.charAt(0) == '{') { // Ah, we need to create an object + as = {}; + str = str.substring(1, str.length - 1); + var $ = str.split(','); + for(var i = 0; i < $.length; i++) { + var $1 = $[i].split(':'); + as[$1[0]] = sIFR.eval($1[1]); + } + } else if(str.charAt(0) == '"') { // String + as = str.substring(1, str.length - 1); + } else if(str == 'true' || str == 'false') { // Boolean + as = str == 'true'; + } else { // Float + as = parseFloat(str); + } + + return as; + } + + private function applyFilters() { + var $filters = this.textField.filters; + $filters = $filters.concat(sIFR.filters); + + var $ = _root.flashfilters.split(';'); // name,prop:value,...; + for(var i = 0; i < $.length; i++) { + var $1 = $[i].split(','); + + var newFilter = new sIFR.filterMap[$1[0]](); + for(var j = 1; j < $1.length; j++) { + var $2 = $1[j].split(':'); + newFilter[$2[0]] = sIFR.eval(unescape($2[1])); + } + + $filters.push(newFilter); + } + + this.textField.filters = $filters; + } + + private function sIFR(textField, content) { + this.textField = textField; + this.content = content; + + var offsetLeft = parseInt(_root.offsetleft); + textField._x = MARGIN_LEFT + (isNaN(offsetLeft) ? 0 : offsetLeft); + var offsetTop = parseInt(_root.offsettop); + if(!isNaN(offsetTop)) textField._y += offsetTop; + + tuneWidth = parseInt(_root.tunewidth); + if(isNaN(tuneWidth)) tuneWidth = 0; + tuneHeight = parseInt(_root.tuneheight); + if(isNaN(tuneHeight)) tuneHeight = 0; + + textField._width = tuneWidth + (isNaN(parseInt(_root.width)) ? DEFAULT_WIDTH : parseInt(_root.width)); + textField._height = tuneHeight + (isNaN(parseInt(_root.height)) ? DEFAULT_HEIGHT : parseInt(_root.height)); + textField.wordWrap = true; + textField.selectable = _root.selectable == 'true'; + textField.gridFitType = sIFR.enforcedGridFitType || _root.gridfittype; + this.applyFilters(); + + // Determine font-size and the number of lines + this.fontSize = parseInt(_root.size); + if(isNaN(this.fontSize)) this.fontSize = 26; + styles.fontSize = this.fontSize; + + if(!sIFR.preserveAntiAlias && (sIFR.conditionalAntiAlias && this.fontSize < ALIASING_MAX_FONT_SIZE + || !sIFR.conditionalAntiAlias)) { + textField.antiAliasType = sIFR.antiAliasType || DEFAULT_ANTI_ALIAS_TYPE; + } + + if(!sIFR.preserveAntiAlias || !isNaN(parseInt(_root.sharpness))) { + textField.sharpness = parseInt(_root.sharpness); + } + if(isNaN(textField.sharpness)) textField.sharpness = sIFR.defaultSharpness; + + if(!sIFR.preserveAntiAlias || !isNaN(parseInt(_root.thickness))) { + textField.thickness = parseInt(_root.thickness); + } + if(isNaN(textField.thickness)) textField.thickness = sIFR.defaultThickness; + + // Set font-size and other styles + sIFR.styles.parseCSS(unescape(_root.css)); + + var rootStyle = styles.getStyle('.sIFR-root') || {}; + rootStyle.fontSize = this.fontSize; // won't go higher than 126! + styles.setStyle('.sIFR-root', rootStyle); + textField.styleSheet = styles; + + this.write(content); + this.repaint(); + } + + private function repaint() { + var leadingFix = this.isSingleLine() ? sIFR.styles.latestLeading : 0; + if(leadingFix > 0) leadingFix -= LEADING_REMAINDER; + + // Flash wants to scroll the movie by one line, by adding the fontSize to the + // textField height this is no longer happens. We also add the absolute tuneHeight, + // to prevent a negative value from triggering the bug. We won't send the fake + // value to the JavaScript side, though. + textField._height = textField.textHeight + PADDING_BOTTOM + this.fontSize + Math.abs(tuneHeight) + tuneHeight - leadingFix; + this.realHeight = textField._height - this.fontSize - Math.abs(tuneHeight); + var arg = 'height:' + this.realHeight; + if(_root.fitexactly == 'true') arg += ',width:' + (textField.textWidth + tuneWidth); + fscommand('resize', arg); + + this.originalHeight = textField._height; + this.currentHeight = Stage.height; + + textField._xscale = textField._yscale = parseInt(_root.zoom); + } + + private function write(content) { + this.textField.htmlText = ['<p class="', CSS_ROOT_CLASS, '">', + content, '</p>' + ].join(''); + } + + private function isSingleLine() { + return Math.round((this.textField.textHeight - sIFR.styles.latestLeading) / this.fontSize) == 1; + } + + //= Scales the text field to the new scale of the Flash movie itself. + public function scale() { + this.currentHeight = Stage.height; + var scale = 100 * Math.round(this.currentHeight / this.originalHeight); + textField._xscale = textField._yscale = scale; + } + + private function calculateRatios() { + var strings = ['X', 'X<br>X', 'X<br>X<br>X', 'X<br>X<br>X<br>X']; + var results = {}; + + for(var i = 1; i <= strings.length; i++) { + var size = 6; + + this.write(strings[i - 1]); + while(size < MAX_FONT_SIZE) { + var rootStyle = sIFR.styles.getStyle('.sIFR-root') || {}; + rootStyle.fontSize = size; + sIFR.styles.setStyle('.sIFR-root', rootStyle); + this.textField.styleSheet = sIFR.styles; + this.repaint(); + var ratio = (this.realHeight - PADDING_BOTTOM) / i / size; + if(!results[size]) results[size] = ratio; + else results[size] = ((i - 1) * results[size] + ratio) / i; + size++; + } + } + + var sizes = [], ratios = []; + var ratiosToSizes = {}, sizesToRatios = {}; + + for(var size in results) { + if(results[size] == Object.prototype[size]) continue; + var ratio = results[size]; + ratiosToSizes[ratio] = Math.max(ratio, parseInt(size)); + } + + for(var ratio in ratiosToSizes) { + if(ratiosToSizes[ratio] == Object.prototype[ratio]) continue; + sizesToRatios[ratiosToSizes[ratio]] = roundDecimals(ratio, 2); + sizes.push(ratiosToSizes[ratio]); + } + + sizes.sort(function(a, b) { return a - b; }); + for(var j = 0; j < sizes.length - 1; j++) ratios.push(sizes[j], sizesToRatios[sizes[j]]); + ratios.push(sizesToRatios[sizes[sizes.length - 1]]); + + fscommand('debug:ratios', '[' + ratios.join(',') + ']'); + } + + private function roundDecimals(value, decimals) { + return Math.round(value * Math.pow(10, decimals)) / Math.pow(10, decimals); + } + + public static function callback() { + switch(_root.callbackType) { + case 'replacetext': + sIFR.instance.content = _root.callbackValue; + sIFR.instance.write(_root.callbackValue); + sIFR.instance.repaint(); + break; + case 'resettext': + sIFR.instance.write(''); + sIFR.instance.write(sIFR.instance.content); + break; + case 'ratios': + sIFR.instance.calculateRatios(); + break; + } + } +} diff --git a/simplepie/demo/for_the_demo/source_files/sIFR-r245/sifr.fla b/simplepie/demo/for_the_demo/source_files/sIFR-r245/sifr.fla Binary files differnew file mode 100644 index 000000000..2aa3f647f --- /dev/null +++ b/simplepie/demo/for_the_demo/source_files/sIFR-r245/sifr.fla diff --git a/simplepie/demo/for_the_demo/top_gradient.gif b/simplepie/demo/for_the_demo/top_gradient.gif Binary files differnew file mode 100644 index 000000000..f77bd38f9 --- /dev/null +++ b/simplepie/demo/for_the_demo/top_gradient.gif diff --git a/simplepie/demo/for_the_demo/verdana.swf b/simplepie/demo/for_the_demo/verdana.swf Binary files differnew file mode 100644 index 000000000..baf035047 --- /dev/null +++ b/simplepie/demo/for_the_demo/verdana.swf diff --git a/simplepie/demo/for_the_demo/yanone-kaffeesatz-bold.swf b/simplepie/demo/for_the_demo/yanone-kaffeesatz-bold.swf Binary files differnew file mode 100644 index 000000000..c812a79dc --- /dev/null +++ b/simplepie/demo/for_the_demo/yanone-kaffeesatz-bold.swf diff --git a/simplepie/demo/handler_image.php b/simplepie/demo/handler_image.php new file mode 100644 index 000000000..49c3ec89b --- /dev/null +++ b/simplepie/demo/handler_image.php @@ -0,0 +1,6 @@ +<?php +// This should be modifed as your own use warrants. + +require_once('../simplepie.inc'); +SimplePie_Misc::display_cached_file($_GET['i'], './cache', 'spi'); +?> diff --git a/simplepie/demo/index.php b/simplepie/demo/index.php new file mode 100644 index 000000000..1481ba917 --- /dev/null +++ b/simplepie/demo/index.php @@ -0,0 +1,295 @@ +<?php +// Start counting time for the page load +$starttime = explode(' ', microtime()); +$starttime = $starttime[1] + $starttime[0]; + +// Include SimplePie +// Located in the parent directory +include_once('../simplepie.inc'); +include_once('../idn/idna_convert.class.php'); + +// Create a new instance of the SimplePie object +$feed = new SimplePie(); + +//$feed->force_fsockopen(true); + +// Make sure that page is getting passed a URL +if (isset($_GET['feed']) && $_GET['feed'] !== '') +{ + // Strip slashes if magic quotes is enabled (which automatically escapes certain characters) + if (function_exists('get_magic_quotes_gpc') && get_magic_quotes_gpc()) + { + $_GET['feed'] = stripslashes($_GET['feed']); + } + + // Use the URL that was passed to the page in SimplePie + $feed->set_feed_url($_GET['feed']); + + // XML dump + $feed->enable_xml_dump(isset($_GET['xmldump']) ? true : false); +} + +// Allow us to change the input encoding from the URL string if we want to. (optional) +if (!empty($_GET['input'])) +{ + $feed->set_input_encoding($_GET['input']); +} + +// Allow us to choose to not re-order the items by date. (optional) +if (!empty($_GET['orderbydate']) && $_GET['orderbydate'] == 'false') +{ + $feed->enable_order_by_date(false); +} + +// Allow us to cache images in feeds. This will also bypass any hotlink blocking put in place by the website. +if (!empty($_GET['image']) && $_GET['image'] == 'true') +{ + $feed->set_image_handler('./handler_image.php'); +} + +// We'll enable the discovering and caching of favicons. +$feed->set_favicon_handler('./handler_image.php'); + +// Initialize the whole SimplePie object. Read the feed, process it, parse it, cache it, and +// all that other good stuff. The feed's information will not be available to SimplePie before +// this is called. +$success = $feed->init(); + +// We'll make sure that the right content type and character encoding gets set automatically. +// This function will grab the proper character encoding, as well as set the content type to text/html. +$feed->handle_content_type(); + +// When we end our PHP block, we want to make sure our DOCTYPE is on the top line to make +// sure that the browser snaps into Standards Mode. +?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US" lang="en-US"> +<head> +<title>SimplePie: Demo</title> + +<link rel="stylesheet" href="./for_the_demo/sIFR-screen.css" type="text/css" media="screen"> +<link rel="stylesheet" href="./for_the_demo/sIFR-print.css" type="text/css" media="print"> +<link rel="stylesheet" href="./for_the_demo/simplepie.css" type="text/css" media="screen, projector" /> + +<script type="text/javascript" src="./for_the_demo/sifr.js"></script> +<script type="text/javascript" src="./for_the_demo/sifr-config.js"></script> +<script type="text/javascript" src="./for_the_demo/sleight.js"></script> + +</head> + +<body id="bodydemo"> + +<div id="header"> + <div id="headerInner"> + <div id="logoContainer"> + <div id="logoContainerInner"> + <div align="center"><a href="http://simplepie.org"><img src="./for_the_demo/logo_simplepie_demo.png" alt="SimplePie Demo: PHP-based RSS and Atom feed handling" title="SimplePie Demo: PHP-based RSS and Atom feed handling" border="0" /></a></div> + <div class="clearLeft"></div> + </div> + + </div> + <div id="menu"> + <!-- I know, I know, I know... tables for layout, I know. If a web standards evangelist (like me) has to resort + to using tables for something, it's because no other possible solution could be found. This issue? No way to + do centered floats purely with CSS. The table box model allows for a dynamic width while centered, while the + CSS box model for DIVs doesn't allow for it. :( --> + <table cellpadding="0" cellspacing="0" border="0"><tbody><tr><td> +<ul><li id="demo"><a href="./">SimplePie Demo</a></li><li><a href="http://simplepie.org/wiki/faq/start">FAQ/Troubleshooting</a></li><li><a href="http://simplepie.org/support/">Support Forums</a></li><li><a href="http://simplepie.org/wiki/reference/start">API Reference</a></li><li><a href="http://simplepie.org/blog/">Weblog</a></li><li><a href="../test/test.php">Unit Tests</a></li></ul> + + <div class="clearLeft"></div> + </td></tr></tbody></table> + </div> + </div> +</div> + +<div id="site"> + + <div id="content"> + + <div class="chunk"> + <form action="" method="get" name="sp_form" id="sp_form"> + <div id="sp_input"> + + + <!-- If a feed has already been passed through the form, then make sure that the URL remains in the form field. --> + <p><input type="text" name="feed" value="<?php if ($feed->subscribe_url()) echo $feed->subscribe_url(); ?>" class="text" id="feed_input" /> <input type="submit" value="Read" class="button" /></p> + + + </div> + </form> + + + <?php + // Check to see if there are more than zero errors (i.e. if there are any errors at all) + if ($feed->error()) + { + // If so, start a <div> element with a classname so we can style it. + echo '<div class="sp_errors">' . "\r\n"; + + // ... and display it. + echo '<p>' . htmlspecialchars($feed->error()) . "</p>\r\n"; + + // Close the <div> element we opened. + echo '</div>' . "\r\n"; + } + ?> + + <!-- Here are some sample feeds. --> + <p class="sample_feeds"><strong>Or try one of the following:</strong> + <a href="?feed=http://www.詹姆斯.com/atomtests/iri/everything.atom" title="Test: International Domain Name support">詹姆斯.com</a>, + <a href="?feed=http://www.adultswim.com/williams/podcast/tools/xml/video_rss.xml" title="Humor from the people who make [adult swim] cartoons.">adult swim</a>, + <a href="?feed=http://afterdawn.com/news/afterdawn_rss.xml" title="Ripping, Burning, DRM, and the Dark Side of Consumer Electronics Media">Afterdawn</a>, + <a href="?feed=http://feeds.feedburner.com/ajaxian" title="AJAX and Scripting News">Ajaxian</a>, + <a href="?feed=http://www.andybudd.com/index.rdf&image=true" title="Test: Bypass Image Hotlink Blocking">Andy Budd</a>, + <a href="?feed=http://feeds.feedburner.com/AskANinja" title="Test: Embedded Enclosures">Ask a Ninja</a>, + <a href="?feed=http://www.atomenabled.org/atom.xml" title="Test: Atom 1.0 Support">AtomEnabled.org</a>, + <a href="?feed=http://newsrss.bbc.co.uk/rss/newsonline_world_edition/front_page/rss.xml" title="World News">BBC News</a>, + <a href="?feed=http://newsrss.bbc.co.uk/rss/arabic/news/rss.xml" title="Test: Windows-1256 Encoding">BBC Arabic</a>, + <a href="?feed=http://newsrss.bbc.co.uk/rss/chinese/simp/news/rss.xml" title="Test: GB2312 Encoding">BBC China</a>, + <a href="?feed=http://newsrss.bbc.co.uk/rss/russian/news/rss.xml" title="Test: Windows-1251 Encoding">BBC Russia</a>, + <a href="?feed=http://inessential.com/xml/rss.xml" title="Developer of NetNewsWire">Brent Simmons</a>, + <a href="?feed=http://www.channelfrederator.com/rss" title="Test: Embedded Enclosures">Channel Frederator</a>, + <a href="?feed=http://rss.cnn.com/rss/cnn_topstories.rss" title="World News">CNN</a>, + <a href="?feed=http://digg.com/rss/index.xml" title="Tech news. Better than Slashdot.">Digg</a>, + <a href="?feed=http://revision3.com/diggnation/feed/quicktime-large" title="Tech and industry videocast.">Diggnation</a>, + <a href="?feed=http://www.flickr.com/services/feeds/photos_public.gne?format=rss2" title="Flickr Photos">Flickr</a>, + <a href="?feed=http://news.google.com/?output=rss" title="World News">Google News</a>, + <a href="?feed=http://video.google.com/videofeed?type=top100new&num=20&output=rss" title="Test: Media RSS Support">Google Video</a>, + <a href="?feed=http://blogs.law.harvard.edu/home/feed/rdf/" title="Test: Tag Stripping">Harvard Law</a>, + <a href="?feed=http://hagada.org.il/hagada/html/backend.php" title="Test: Window-1255 Encoding">Hebrew Language</a>, + <a href="?feed=http://www.infoworld.com/rss/news.xml" title="Test: Ad Stripping">InfoWorld</a>, + <a href="?feed=http://phobos.apple.com/WebObjects/MZStore.woa/wpa/MRSS/topsongs/limit=10/rss.xml&orderbydate=false" title="Test: Tag Stripping">iTunes</a>, + <a href="?feed=http://blog.japan.cnet.com/lessig/index.rdf" title="Test: EUC-JP Encoding">Japanese Language</a>, + <a href="?feed=http://nurapt.kaist.ac.kr/~jamaica/htmls/blog/rss.php&input=EUC-KR" title="Test: EUC-KR Encoding">Korean Language</a>, + <a href="?feed=http://mir.aculo.us/xml/rss/feed.xml" title="Weblog for the developer of Scriptaculous">mir.aculo.us</a>, + <a href="?feed=http://images.apple.com/trailers/rss/newtrailers.rss" title="Apple's QuickTime movie trailer site">Movie Trailers</a>, + <a href="?feed=http://www.newspond.com/rss/main.xml" title="Tech and Science News">Newspond</a>, + <a href="?feed=http://nick.typepad.com/blog/index.rss" title="Developer of TopStyle and FeedDemon">Nick Bradbury</a>, + <a href="?feed=http://feeds.feedburner.com/ok-cancel" title="Usability comics and commentary">OK/Cancel</a>, + <a href="?feed=http://osnews.com/files/recent.rdf" title="News about every OS ever">OS News</a>, + <a href="?feed=http://weblog.philringnalda.com/feed/" title="Test: Atom 1.0 Support">Phil Ringnalda</a>, + <a href="?feed=http://kabili.libsyn.com/rss" title="Test: Improved enclosure type sniffing">Photoshop Videocast</a>, + <a href="?feed=http://www.pariurisportive.com/blog/xmlsrv/rss2.php?blog=2" title="Test: ISO-8859-1 Encoding">Romanian Language</a>, + <a href="?feed=http://www.erased.info/rss2.php" title="Test: KOI8-R Encoding">Russian Language</a>, + <a href="?feed=http://www.upsaid.com/isis/index.rdf" title="Test: BIG5 Encoding">Traditional Chinese Language</a>, + <a href="?feed=http://technorati.com/watchlists/rss.html?wid=29290" title="Technorati watch for SimplePie">Technorati</a>, + <a href="?feed=http://www.tbray.org/ongoing/ongoing.atom" title="Test: Atom 1.0 Support">Tim Bray</a>, + <a href="?feed=http://tuaw.com/rss.xml" title="Apple News">TUAW</a>, + <a href="?feed=http://www.tvgasm.com/atom.xml&image=true" title="Test: Bypass Image Hotlink Blocking">TVgasm</a>, + <a href="?feed=http://uneasysilence.com/feed/" title="Interesting tech randomness">UNEASYsilence</a>, + <a href="?feed=http://feeds.feedburner.com/web20Show" title="Test: Embedded Enclosures">Web 2.0 Show</a>, + <a href="?feed=http://windowsvistablog.com/blogs/MainFeed.aspx" title="Test: Tag Stripping">Windows Vista Blog</a>, + <a href="?feed=http://xkcd.com/rss.xml" title="Test: LightHTTPd and GZipping">XKCD</a>, + <a href="?feed=http://rss.news.yahoo.com/rss/topstories" title="World News">Yahoo! News</a>, + <a href="?feed=http://youtube.com/rss/global/top_favorites.rss" title="Funny user-submitted videos">You Tube</a>, + <a href="?feed=http://zeldman.com/rss/" title="The father of the web standards movement">Zeldman</a></p> + + </div> + + <div id="sp_results"> + + <!-- As long as the feed has data to work with... --> + <?php if ($success): ?> + <div class="chunk focus" align="center"> + + <!-- If the feed has a link back to the site that publishes it (which 99% of them do), link the feed's title to it. --> + <h3 class="header"><?php if ($feed->get_link()) echo '<a href="' . $feed->get_link() . '">'; echo $feed->get_title(); if ($feed->get_link()) echo '</a>'; ?></h3> + + <!-- If the feed has a description, display it. --> + <?php echo $feed->get_description(); ?> + + </div> + + <!-- Add subscribe links for several different aggregation services --> + <p class="subscribe"><strong>Subscribe:</strong> <a href="<?php echo $feed->subscribe_bloglines(); ?>">Bloglines</a>, <a href="<?php echo $feed->subscribe_google(); ?>">Google Reader</a>, <a href="<?php echo $feed->subscribe_msn(); ?>">My MSN</a>, <a href="<?php echo $feed->subscribe_netvibes(); ?>">Netvibes</a>, <a href="<?php echo $feed->subscribe_newsburst(); ?>">Newsburst</a><br /><a href="<?php echo $feed->subscribe_newsgator(); ?>">Newsgator</a>, <a href="<?php echo $feed->subscribe_odeo(); ?>">Odeo</a>, <a href="<?php echo $feed->subscribe_podnova(); ?>">Podnova</a>, <a href="<?php echo $feed->subscribe_rojo(); ?>">Rojo</a>, <a href="<?php echo $feed->subscribe_yahoo(); ?>">My Yahoo!</a>, <a href="<?php echo $feed->subscribe_feed(); ?>">Desktop Reader</a></p> + + + <!-- Let's begin looping through each individual news item in the feed. --> + <?php foreach($feed->get_items() as $item): ?> + <div class="chunk"> + + <?php + // Let's add a favicon for each item. If one doesn't exist, we'll use an alternate one. + if (!$favicon = $feed->get_favicon()) + { + $favicon = './for_the_demo/favicons/alternate.png'; + } + ?> + + <!-- If the item has a permalink back to the original post (which 99% of them do), link the item's title to it. --> + <h4><img src="<?php echo $favicon; ?>" alt="Favicon" class="favicon" /><?php if ($item->get_permalink()) echo '<a href="' . $item->get_permalink() . '">'; echo $item->get_title(); if ($item->get_permalink()) echo '</a>'; ?> <span class="footnote"><?php echo $item->get_date('j M Y, g:i a'); ?></span></h4> + + <!-- Display the item's primary content. --> + <?php echo $item->get_content(); ?> + + <?php + // Check for enclosures. If an item has any, set the first one to the $enclosure variable. + if ($enclosure = $item->get_enclosure(0)) + { + // Use the embed() method to embed the enclosure into the page inline. + echo '<div align="center">'; + echo '<p>' . $enclosure->embed(array( + 'audio' => './for_the_demo/place_audio.png', + 'video' => './for_the_demo/place_video.png', + 'mediaplayer' => './for_the_demo/mediaplayer.swf', + 'altclass' => 'download' + )) . '</p>'; + + if ($enclosure->get_link() && $enclosure->get_type()) + { + echo '<p class="footnote" align="center">(' . $enclosure->get_type(); + if ($enclosure->get_size()) + { + echo '; ' . $enclosure->get_size() . ' MB'; + } + echo ')</p>'; + } + if ($enclosure->get_thumbnail()) + { + echo '<div><img src="' . $enclosure->get_thumbnail() . '" alt="" /></div>'; + } + echo '</div>'; + } + ?> + + <!-- Add links to add this post to one of a handful of services. --> + <p class="footnote favicons" align="center"> + <a href="<?php echo $item->add_to_blinklist(); ?>" title="Add post to Blinklist"><img src="./for_the_demo/favicons/blinklist.png" alt="Blinklist" /></a> + <a href="<?php echo $item->add_to_blogmarks(); ?>" title="Add post to Blogmarks"><img src="./for_the_demo/favicons/blogmarks.png" alt="Blogmarks" /></a> + <a href="<?php echo $item->add_to_delicious(); ?>" title="Add post to del.icio.us"><img src="./for_the_demo/favicons/delicious.png" alt="del.icio.us" /></a> + <a href="<?php echo $item->add_to_digg(); ?>" title="Digg this!"><img src="./for_the_demo/favicons/digg.png" alt="Digg" /></a> + <a href="<?php echo $item->add_to_magnolia(); ?>" title="Add post to Ma.gnolia"><img src="./for_the_demo/favicons/magnolia.png" alt="Ma.gnolia" /></a> + <a href="<?php echo $item->add_to_myweb20(); ?>" title="Add post to My Web 2.0"><img src="./for_the_demo/favicons/myweb2.png" alt="My Web 2.0" /></a> + <a href="<?php echo $item->add_to_newsvine(); ?>" title="Add post to Newsvine"><img src="./for_the_demo/favicons/newsvine.png" alt="Newsvine" /></a> + <a href="<?php echo $item->add_to_reddit(); ?>" title="Add post to Reddit"><img src="./for_the_demo/favicons/reddit.png" alt="Reddit" /></a> + <a href="<?php echo $item->add_to_segnalo(); ?>" title="Add post to Segnalo"><img src="./for_the_demo/favicons/segnalo.png" alt="Segnalo" /></a> + <a href="<?php echo $item->add_to_simpy(); ?>" title="Add post to Simpy"><img src="./for_the_demo/favicons/simpy.png" alt="Simpy" /></a> + <a href="<?php echo $item->add_to_spurl(); ?>" title="Add post to Spurl"><img src="./for_the_demo/favicons/spurl.png" alt="Spurl" /></a> + <a href="<?php echo $item->add_to_wists(); ?>" title="Add post to Wists"><img src="./for_the_demo/favicons/wists.png" alt="Wists" /></a> + <a href="<?php echo $item->search_technorati(); ?>" title="Who's linking to this post?"><img src="./for_the_demo/favicons/technorati.png" alt="Technorati" /></a> + </p> + + </div> + + <!-- Stop looping through each item once we've gone through all of them. --> + <?php endforeach; ?> + + <!-- From here on, we're no longer using data from the feed. --> + <?php endif; ?> + + </div> + + <div> + <!-- Display how fast the page was rendered. --> + <p class="footnote">Page processed in <?php $mtime = explode(' ', microtime()); echo round($mtime[0] + $mtime[1] - $starttime, 3); ?> seconds.</p> + + <!-- Display the version of SimplePie being loaded. --> + <p class="footnote">Powered by <a href="<?php echo SIMPLEPIE_URL; ?>"><?php echo SIMPLEPIE_NAME . ' ' . SIMPLEPIE_VERSION . ', Build ' . SIMPLEPIE_BUILD; ?></a>. Run the <a href="../compatibility_test/sp_compatibility_test.php">SimplePie Compatibility Test</a>. SimplePie is © 2004–<?php echo date('Y'); ?>, Ryan Parman and Geoffrey Sneddon, and licensed under the <a href="http://www.opensource.org/licenses/bsd-license.php">BSD License</a>.</p> + </div> + + </div> + +</div> + +</body> +</html> diff --git a/simplepie/demo/minimalistic.php b/simplepie/demo/minimalistic.php new file mode 100644 index 000000000..56509c00c --- /dev/null +++ b/simplepie/demo/minimalistic.php @@ -0,0 +1,137 @@ +<?php + +function microtime_float() +{ + if (version_compare(phpversion(), '5.0.0', '>=')) + { + return microtime(true); + } + else + { + list($usec, $sec) = explode(' ', microtime()); + return ((float) $usec + (float) $sec); + } +} + +$start = microtime_float(); + +include('../simplepie.inc'); + +// Parse it +$feed = new SimplePie(); +if (!empty($_GET['feed'])) +{ + if (get_magic_quotes_gpc()) + { + $_GET['feed'] = stripslashes($_GET['feed']); + } + $feed->set_feed_url($_GET['feed']); + $feed->init(); +} +$feed->handle_content_type(); + +?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + +<html xmlns="http://www.w3.org/1999/xhtml"> +<head> +<title><?php echo (empty($_GET['feed'])) ? 'SimplePie' : 'SimplePie: ' . $feed->get_title(); ?></title> + +<!-- META HTTP-EQUIV --> +<meta http-equiv="content-type" content="text/html; charset=<?php echo ($feed->get_encoding()) ? $feed->get_encoding() : 'UTF-8'; ?>" /> +<meta http-equiv="imagetoolbar" content="false" /> + +<style type="text/css"> +html, body { + height:100%; + margin:0; + padding:0; +} + +h1 { + background-color:#333; + color:#fff; + font-size:3em; + margin:0; + padding:5px 15px; + text-align:center; +} + +div#footer { + padding:5px 0; +} + +div#footer, +div#footer a { + text-align:center; + font-size:0.7em; +} + +div#footer a { + text-decoration:underline; +} + +code { + background-color:#f3f3ff; + color:#000; +} + +pre { + background-color:#f3f3ff; + color:#000080; + border:1px dotted #000080; + padding:3px 5px; +} + +form { + margin:0; + padding:0; +} + +div.chunk { + border-bottom:1px solid #ccc; +} + +form#sp_form { + text-align:center; + margin:0; + padding:0; +} + +form#sp_form input.text { + width:85%; +} +</style> + +</head> + +<body> + <h1><?php echo (empty($_GET['feed'])) ? 'SimplePie' : 'SimplePie: ' . $feed->get_title(); ?></h1> + + <form action="" method="get" name="sp_form" id="sp_form"> + <p><input type="text" name="feed" value="<?php echo ($feed->subscribe_url()) ? htmlspecialchars($feed->subscribe_url()) : 'http://'; ?>" class="text" id="feed_input" /> <input type="submit" value="Read" class="button" /></p> + </form> + + <div id="sp_results"> + <?php if ($feed->data): ?> + <?php $items = $feed->get_items(); ?> + <p align="center"><span style="background-color:#ffc;">Displaying <?php echo $feed->get_item_quantity(); ?> most recent entries.</span></p> + <?php foreach($items as $item): ?> + <div class="chunk" style="padding:0 5px;"> + <h4><a href="<?php echo $item->get_permalink(); ?>"><?php echo $item->get_title(); ?></a> <?php echo $item->get_date('j M Y'); ?></h4> + <?php echo $item->get_content(); ?> + <?php + if ($enclosure = $item->get_enclosure(0)) + echo '<p><a href="' . $enclosure->get_link() . '" class="download"><img src="./for_the_demo/mini_podcast.png" alt="Podcast" title="Download the Podcast" border="0" /></a></p>'; + ?> + </div> + <?php endforeach; ?> + </div> + <?php endif; ?> + </div> + + <div id="footer"> + Powered by <?php echo SIMPLEPIE_LINKBACK; ?>, a product of <a href="http://www.skyzyx.com">Skyzyx Technologies</a>.<br /> + Page created in <?php echo round(microtime_float()-$start, 3); ?> seconds. + </div> +</body> +</html> diff --git a/simplepie/demo/multifeeds.php b/simplepie/demo/multifeeds.php new file mode 100644 index 000000000..b23d792a2 --- /dev/null +++ b/simplepie/demo/multifeeds.php @@ -0,0 +1,108 @@ +<?php +/******************************************************************** +MULTIFEEDS TEST PAGE + +Nothing too exciting here. Just a sample page that demos integrated +Multifeeds support as well as cached favicons and perhaps a few other +things. + +Lots of this code is commented to help explain some of the new stuff. +Code was tested in PHP 5.2.2, but *should* also work with earlier +versions of PHP, as supported by SimplePie (PHP 4.1). + +********************************************************************/ + +// Include the SimplePie library, and the one that handles internationalized domain names. +require_once('../simplepie.inc'); +require_once('../idn/idna_convert.class.php'); + +// Initialize some feeds for use. +$feed = new SimplePie(); +$feed->set_feed_url(array( + 'http://rss.news.yahoo.com/rss/topstories', + 'http://news.google.com/?output=atom', + 'http://rss.cnn.com/rss/cnn_topstories.rss' +)); + +// When we set these, we need to make sure that the handler_image.php file is also trying to read from the same cache directory that we are. +$feed->set_favicon_handler('./handler_image.php'); +$feed->set_image_handler('./handler_image.php'); + +// Initialize the feed. +$feed->init(); + +// Make sure the page is being served with the UTF-8 headers. +$feed->handle_content_type(); + +// Begin the (X)HTML page. +?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head> + <title>Multifeeds Test page</title> + <link rel="stylesheet" href="../demo/for_the_demo/simplepie.css" type="text/css" media="screen" title="SimplePie Styles" charset="utf-8" /> + <style type="text/css"> + div#site { + width:600px; + } + span.footnote { + white-space:nowrap; + } + h1 { + line-height:1.4em; + } + h4 { + padding-left:20px; + background-color:transparent; + background-repeat:no-repeat; + background-position:0 1px; + } + .clearBoth { + clear:both; + } + </style> +</head> +<body> +<div id="site"> + + <?php if ($feed->error): ?> + <p><?=$feed->error()?></p> + <?php endif ?> + + <div class="chunk"> + <h1>Quick-n-Dirty Multifeeds Demo</a></h1> + </div> + + <?php + // Let's loop through each item in the feed. + foreach($feed->get_items() as $item): + + // Let's give ourselves a reference to the parent $feed object for this particular item. + $feed = $item->get_feed(); + ?> + + <div class="chunk"> + <h4 style="background-image:url(<?php echo $feed->get_favicon(); ?>);"><a href="<?php echo $item->get_permalink(); ?>"><?php echo html_entity_decode($item->get_title(), ENT_QUOTES, 'UTF-8'); ?></a></h4> + + <!-- get_content() prefers full content over summaries --> + <?php echo $item->get_content(); ?> + + <?php if ($enclosure = $item->get_enclosure()): ?> + <div> + <?php echo $enclosure->native_embed(array( + // New 'mediaplayer' attribute shows off Flash-based MP3 and FLV playback. + 'mediaplayer' => '../demo/for_the_demo/mediaplayer.swf' + )); ?> + </div> + <?php endif; ?> + + <p class="footnote">Source: <a href="<?php echo $feed->get_permalink(); ?>"><?php echo $feed->get_title(); ?></a> | <?php echo $item->get_date('j M Y | g:i a'); ?></p> + </div> + + <?php endforeach ?> + + <p class="footnote">This is a test of the emergency broadcast system. This is only a test… beeeeeeeeeeeeeeeeeeeeeeeeeep!</p> + +</div> +</body> +</html>
\ No newline at end of file diff --git a/simplepie/demo/test.php b/simplepie/demo/test.php new file mode 100644 index 000000000..5b9943abb --- /dev/null +++ b/simplepie/demo/test.php @@ -0,0 +1,62 @@ +<?php +include_once('../simplepie.inc'); +include_once('../idn/idna_convert.class.php'); + +// Parse it +$feed = new SimplePie(); +if (isset($_GET['feed']) && $_GET['feed'] !== '') +{ + if (get_magic_quotes_gpc()) + { + $_GET['feed'] = stripslashes($_GET['feed']); + } + $feed->set_feed_url($_GET['feed']); + $feed->enable_cache(false); + $starttime = explode(' ', microtime()); + $starttime = $starttime[1] + $starttime[0]; + $feed->init(); + $endtime = explode(' ', microtime()); + $endtime = $endtime[1] + $endtime[0]; + $time = $endtime - $starttime; +} +else +{ + $time = 'null'; +} + +$feed->handle_content_type(); + +?> +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> +<title>SimplePie Test</title> +<pre> +<?php + +// memory_get_peak_usage() only exists on PHP 5.2 and higher if PHP is compiled with the --enable-memory-limit configuration option or on PHP 5.2.1 and higher (which runs as if --enable-memory-limit was on, with no option) +if (function_exists('memory_get_peak_usage')) +{ + var_dump($time, memory_get_usage(), memory_get_peak_usage()); +} +// memory_get_usage() only exists if PHP is compiled with the --enable-memory-limit configuration option or on PHP 5.2.1 and higher (which runs as if --enable-memory-limit was on, with no option) +else if (function_exists('memory_get_usage')) +{ + var_dump($time, memory_get_usage()); +} +else +{ + var_dump($time); +} + +// Output buffer +function callable_htmlspecialchars($string) +{ + return htmlspecialchars($string); +} +ob_start('callable_htmlspecialchars'); + +// Output +print_r($feed); +ob_end_flush(); + +?> +</pre>
\ No newline at end of file |