src/cm/media/js/lib/yui/yui3.0.0/examples/io/io-weather_log.html
author Yves-Marie Haussonne <ymh.work+github@gmail.com>
Fri, 09 May 2014 18:35:26 +0200
changeset 656 a84519031134
parent 0 40c8f766c9b8
permissions -rw-r--r--
add link to "privacy policy" in the header test
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     1
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     2
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     3
<html>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     4
<head>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     5
	<title>YUI Library Examples: IO: XML Transaction &mdash; Retrieving a Yahoo! Weather RSS (XML) Feed via a Server-Side Proxy</title>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     6
    <meta http-equiv="content-type" content="text/html; charset=utf-8">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     7
    	<link rel="stylesheet" type="text/css" href="../../assets/yui.css" >
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     8
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     9
<style>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    10
    /*Supplemental CSS for the YUI distribution*/
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    11
    #custom-doc { width: 95%; min-width: 950px; }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    12
    #pagetitle {background-image: url(../../assets/bg_hd.gif);}
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    13
/*    #pagetitle h1 {background-image: url(../../assets/title_h_bg.gif);}*/
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    14
</style>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    15
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    16
<link rel="stylesheet" type="text/css" href="../../assets/dpSyntaxHighlighter.css">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    17
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    18
<!--there is no custom header content for this example-->
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    19
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    20
<link type="text/css" rel="stylesheet" href="../../build/cssfonts/fonts-min.css" />
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    21
<script type="text/javascript" src="../../build/yui/yui-min.js"></script>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    22
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    23
</head>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    24
<body id="yahoo-com" class=" yui-skin-sam">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    25
<div id="custom-doc" class="yui-t2">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    26
<div id="hd">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    27
	<div id="ygunav">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    28
		<p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    29
            <em>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    30
                <a href="http://developer.yahoo.com/yui/3/">YUI 3.x Home</a> <i> - </i>	
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    31
            </em>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    32
		</p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    33
		<form action="http://search.yahoo.com/search" id="sitesearchform">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    34
            <input name="vs" type="hidden" value="developer.yahoo.com">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    35
            <input name="vs" type="hidden" value="yuiblog.com">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    36
		    <div id="sitesearch">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    37
		    	<label for="searchinput">Site Search (YDN &amp; YUIBlog): </label>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    38
			    <input type="text" id="searchinput" name="p">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    39
			    <input type="submit" value="Search" id="searchsubmit" class="ygbt">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    40
		    </div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    41
		</form>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    42
    </div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    43
	<div id="ygma"><a href="../../"><img src="../../assets/logo.gif"  border="0" width="200" height="93"></a></div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    44
	<div id="pagetitle"><h1>YUI Library Examples: IO: XML Transaction &mdash; Retrieving a Yahoo! Weather RSS (XML) Feed via a Server-Side Proxy</h1></div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    45
</div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    46
<div id="bd">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    47
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    48
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    49
	<div id="yui-main">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    50
		<div class="yui-b">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    51
		  <div class="yui-ge">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    52
			  <div class="yui-u first example" id="main">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    53
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    54
	<h2>IO: XML Transaction &mdash; Retrieving a Yahoo! Weather RSS (XML) Feed via a Server-Side Proxy</h2>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    55
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    56
	<div id="example" class="promo">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    57
	<div class="example-intro">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    58
	<p>This example demonstrates how to use IO and a PHP proxy &mdash; to work around XMLHttpRequest's same-domain policy &mdash; to retrieve an XML document from <code>http://xml.weather.yahoo.com/forecastrss</code>.</p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    59
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    60
<p>To try out the example, fill in your five-digit US zip code, or Location ID.</p>	</div>	
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    61
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    62
	<div class="module example-container ">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    63
			<div class="hd exampleHd">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    64
			<p class="newWindowButton yui-skin-sam">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    65
                <a href="io-weather_clean.html" target="_blank">View example in new window.</a>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    66
            </p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    67
		</div>		<div id="example-canvas" class="bd">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    68
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    69
		
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    70
	<!--BEGIN SOURCE CODE FOR EXAMPLE =============================== -->
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    71
	
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    72
	<form id="wForm">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    73
<fieldset>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    74
	<label>Zip Code or Location ID</label> <input type="text" id="zip" value="94089">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    75
	<p>Please enter a U.S. Zip Code or a location ID to get the current temperature.  The default is Zip Code 94089 for Sunnyvale, California; its location ID is: USCA1116.</p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    76
</fieldset>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    77
<div id="weatherModule"></div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    78
<input type="button" value="Get Weather RSS" id="getWeather">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    79
</form>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    80
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    81
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    82
<script language="javascript">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    83
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    84
YUI({base:"../../build/", timeout: 10000}).use("io",
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    85
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    86
	function(Y) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    87
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    88
		//Get a Node reference to the div we'll use for displaying
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    89
		//results:
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    90
		var div = Y.Node.get('#weatherModule');
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    91
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    92
		//Define a function to handle a successful response from
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    93
		//Yahoo! Weather.  The success handler will find the response
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    94
		//object in its second argument:
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    95
		function successHandler(id, o){
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    96
			Y.log("Success handler called; handler will parse the retrieved XML and insert into DOM.", "info", "example");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    97
			var root = o.responseXML.documentElement;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    98
			var oTitle = root.getElementsByTagName('description')[0].firstChild.nodeValue;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    99
			var oDateTime = root.getElementsByTagName('lastBuildDate')[0].firstChild.nodeValue;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   100
			var descriptionNode = root.getElementsByTagName('description')[1].firstChild.nodeValue;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   101
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   102
			div.set("innerHTML", "<p>" + oTitle + "</p>" + "<p>" + oDateTime + "</p>" + descriptionNode);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   103
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   104
			Y.log("Success handler is complete.", "info", "example");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   105
		}
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   106
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   107
		//Provide a function that can help debug failed
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   108
		//requests:
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   109
		function failureHandler(id, o){
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   110
			Y.log("Failure handler called; http status: " + o.status, "info", "example");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   111
			div.set("innerHTML", o.status + " " + o.statusText);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   112
		}
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   113
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   114
		//When the Get RSS button is clicked, this function will fire
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   115
		//and compose/dispatch the IO request:
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   116
		function getModule(){
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   117
			//Get the input value:
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   118
			var iZip = Y.Node.get('#zip').get("value");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   119
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   120
			//Create a querystring from the input value:
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   121
			var queryString = encodeURI('?p=' + iZip);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   122
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   123
			//The location of our server-side proxy:
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   124
			var entryPoint = 'assets/weather.php';
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   125
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   126
			//Compile the full URI for the request:
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   127
			var sUrl = entryPoint + queryString;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   128
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   129
			Y.log("Submitting request; zip code: " + iZip, "info", "example");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   130
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   131
			//Make the reqeust:
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   132
			var request = Y.io(sUrl, {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   133
				method:"GET",
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   134
				on:
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   135
					{
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   136
						success:successHandler,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   137
						failure:failureHandler
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   138
					}
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   139
				}
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   140
			);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   141
		}
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   142
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   143
		//Use the Event Utility to wire the Get RSS button
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   144
		//to the getModule function:
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   145
		Y.on("click", getModule, "#getWeather");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   146
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   147
		Y.log("When you retrieve weather RSS data, relevant steps in the process will be reported here in the logger/console.", "info", "example");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   148
	}
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   149
);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   150
</script>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   151
	
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   152
	<!--END SOURCE CODE FOR EXAMPLE =============================== -->
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   153
	
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   154
		
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   155
		</div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   156
	</div>			
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   157
	</div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   158
		
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   159
	<h2 class="first">Exploring the Code for This Example</h2>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   160
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   161
<p>Create a YUI instance, using IO, for this example:</p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   162
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   163
<div id="syntax1" class="yui-syntax-highlight"><div class="numbers"><pre class="javascript" style="font-family:monospace;"><ol><li class="li1"><div class="de1"><span class="co1">//Create a YUI instance including support for IO:</span></div></li><li class="li1"><div class="de1">YUI<span class="br0">&#40;</span><span class="br0">&#123;</span>base<span class="sy0">:</span><span class="st0">&quot;../../build/&quot;</span><span class="sy0">,</span> timeout<span class="sy0">:</span> <span class="nu0">10000</span><span class="br0">&#125;</span><span class="br0">&#41;</span>.<span class="kw2">use</span><span class="br0">&#40;</span><span class="st0">&quot;io-base&quot;</span><span class="sy0">,</span> <span class="kw2">function</span><span class="br0">&#40;</span>Y<span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li><li class="li1"><div class="de1">	<span class="co1">// Y is the YUI instance.</span></div></li><li class="li1"><div class="de1">	<span class="co1">// The rest of the following code is encapsulated in this</span></div></li><li class="li2"><div class="de2">	<span class="co1">// anonymous function.</span></div></li><li class="li1"><div class="de1"><span class="br0">&#125;</span> <span class="br0">&#41;</span><span class="sy0">;</span></div></li></ol></pre></div><div class="nonumbers"><pre class="javascript" style="font-family:monospace;"><span class="co1">//Create a YUI instance including support for IO:</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   164
YUI<span class="br0">&#40;</span><span class="br0">&#123;</span>base<span class="sy0">:</span><span class="st0">&quot;../../build/&quot;</span><span class="sy0">,</span> timeout<span class="sy0">:</span> <span class="nu0">10000</span><span class="br0">&#125;</span><span class="br0">&#41;</span>.<span class="kw2">use</span><span class="br0">&#40;</span><span class="st0">&quot;io-base&quot;</span><span class="sy0">,</span> <span class="kw2">function</span><span class="br0">&#40;</span>Y<span class="br0">&#41;</span> <span class="br0">&#123;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   165
	<span class="co1">// Y is the YUI instance.</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   166
	<span class="co1">// The rest of the following code is encapsulated in this</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   167
	<span class="co1">// anonymous function.</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   168
<span class="br0">&#125;</span> <span class="br0">&#41;</span><span class="sy0">;</span></pre></div><textarea id="syntax1-plain">//Create a YUI instance including support for IO:
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   169
YUI({base:"../../build/", timeout: 10000}).use("io-base", function(Y) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   170
	// Y is the YUI instance.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   171
	// The rest of the following code is encapsulated in this
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   172
	// anonymous function.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   173
} );</textarea></div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   174
<h3>Callback Object and the Weather RSS</h3>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   175
<p><a href="http://developer.yahoo.com/weather/">Yahoo! Weather RSS</a> will return an XML document if the transaction is successful. The following <code>success</code> callback handlers is used to process the response.</p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   176
<div id="syntax2" class="yui-syntax-highlight"><div class="numbers"><pre class="javascript" style="font-family:monospace;"><ol><li class="li1"><div class="de1"><span class="co1">//Define a function to handle a successful response from</span></div></li><li class="li1"><div class="de1"><span class="co1">//Yahoo! Weather.  The success handler will find the response</span></div></li><li class="li1"><div class="de1"><span class="co1">//object in its second argument:</span></div></li><li class="li1"><div class="de1"><span class="kw2">function</span> successHandler<span class="br0">&#40;</span>id<span class="sy0">,</span> o<span class="br0">&#41;</span><span class="br0">&#123;</span></div></li><li class="li2"><div class="de2">    Y.<span class="me1">log</span><span class="br0">&#40;</span><span class="st0">&quot;Success handler called; handler will parse the retrieved XML and insert into DOM.&quot;</span><span class="sy0">,</span> <span class="st0">&quot;info&quot;</span><span class="sy0">,</span> <span class="st0">&quot;example&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1">    <span class="kw2">var</span> root <span class="sy0">=</span> o.<span class="me1">responseXML</span>.<span class="me1">documentElement</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1">    <span class="kw2">var</span> oTitle <span class="sy0">=</span> root.<span class="me1">getElementsByTagName</span><span class="br0">&#40;</span><span class="st0">'description'</span><span class="br0">&#41;</span><span class="br0">&#91;</span><span class="nu0">0</span><span class="br0">&#93;</span>.<span class="me1">firstChild</span>.<span class="me1">nodeValue</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1">    <span class="kw2">var</span> oDateTime <span class="sy0">=</span> root.<span class="me1">getElementsByTagName</span><span class="br0">&#40;</span><span class="st0">'lastBuildDate'</span><span class="br0">&#41;</span><span class="br0">&#91;</span><span class="nu0">0</span><span class="br0">&#93;</span>.<span class="me1">firstChild</span>.<span class="me1">nodeValue</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1">    <span class="kw2">var</span> descriptionNode <span class="sy0">=</span> root.<span class="me1">getElementsByTagName</span><span class="br0">&#40;</span><span class="st0">'description'</span><span class="br0">&#41;</span><span class="br0">&#91;</span><span class="nu0">1</span><span class="br0">&#93;</span>.<span class="me1">firstChild</span>.<span class="me1">nodeValue</span><span class="sy0">;</span></div></li><li class="li2"><div class="de2">&nbsp;</div></li><li class="li1"><div class="de1">    div.<span class="me1">set</span><span class="br0">&#40;</span><span class="st0">&quot;innerHTML&quot;</span><span class="sy0">,</span> <span class="st0">&quot;&lt;p&gt;&quot;</span> <span class="sy0">+</span> oTitle <span class="sy0">+</span> <span class="st0">&quot;&lt;/p&gt;&quot;</span> <span class="sy0">+</span> <span class="st0">&quot;&lt;p&gt;&quot;</span> <span class="sy0">+</span> oDateTime <span class="sy0">+</span> <span class="st0">&quot;&lt;/p&gt;&quot;</span> <span class="sy0">+</span> descriptionNode<span class="br0">&#41;</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1">    Y.<span class="me1">log</span><span class="br0">&#40;</span><span class="st0">&quot;Success handler is complete.&quot;</span><span class="sy0">,</span> <span class="st0">&quot;info&quot;</span><span class="sy0">,</span> <span class="st0">&quot;example&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1"><span class="br0">&#125;</span></div></li></ol></pre></div><div class="nonumbers"><pre class="javascript" style="font-family:monospace;"><span class="co1">//Define a function to handle a successful response from</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   177
<span class="co1">//Yahoo! Weather.  The success handler will find the response</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   178
<span class="co1">//object in its second argument:</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   179
<span class="kw2">function</span> successHandler<span class="br0">&#40;</span>id<span class="sy0">,</span> o<span class="br0">&#41;</span><span class="br0">&#123;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   180
    Y.<span class="me1">log</span><span class="br0">&#40;</span><span class="st0">&quot;Success handler called; handler will parse the retrieved XML and insert into DOM.&quot;</span><span class="sy0">,</span> <span class="st0">&quot;info&quot;</span><span class="sy0">,</span> <span class="st0">&quot;example&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   181
    <span class="kw2">var</span> root <span class="sy0">=</span> o.<span class="me1">responseXML</span>.<span class="me1">documentElement</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   182
    <span class="kw2">var</span> oTitle <span class="sy0">=</span> root.<span class="me1">getElementsByTagName</span><span class="br0">&#40;</span><span class="st0">'description'</span><span class="br0">&#41;</span><span class="br0">&#91;</span><span class="nu0">0</span><span class="br0">&#93;</span>.<span class="me1">firstChild</span>.<span class="me1">nodeValue</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   183
    <span class="kw2">var</span> oDateTime <span class="sy0">=</span> root.<span class="me1">getElementsByTagName</span><span class="br0">&#40;</span><span class="st0">'lastBuildDate'</span><span class="br0">&#41;</span><span class="br0">&#91;</span><span class="nu0">0</span><span class="br0">&#93;</span>.<span class="me1">firstChild</span>.<span class="me1">nodeValue</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   184
    <span class="kw2">var</span> descriptionNode <span class="sy0">=</span> root.<span class="me1">getElementsByTagName</span><span class="br0">&#40;</span><span class="st0">'description'</span><span class="br0">&#41;</span><span class="br0">&#91;</span><span class="nu0">1</span><span class="br0">&#93;</span>.<span class="me1">firstChild</span>.<span class="me1">nodeValue</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   185
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   186
    div.<span class="me1">set</span><span class="br0">&#40;</span><span class="st0">&quot;innerHTML&quot;</span><span class="sy0">,</span> <span class="st0">&quot;&lt;p&gt;&quot;</span> <span class="sy0">+</span> oTitle <span class="sy0">+</span> <span class="st0">&quot;&lt;/p&gt;&quot;</span> <span class="sy0">+</span> <span class="st0">&quot;&lt;p&gt;&quot;</span> <span class="sy0">+</span> oDateTime <span class="sy0">+</span> <span class="st0">&quot;&lt;/p&gt;&quot;</span> <span class="sy0">+</span> descriptionNode<span class="br0">&#41;</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   187
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   188
    Y.<span class="me1">log</span><span class="br0">&#40;</span><span class="st0">&quot;Success handler is complete.&quot;</span><span class="sy0">,</span> <span class="st0">&quot;info&quot;</span><span class="sy0">,</span> <span class="st0">&quot;example&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   189
<span class="br0">&#125;</span></pre></div><textarea id="syntax2-plain">//Define a function to handle a successful response from
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   190
//Yahoo! Weather.  The success handler will find the response
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   191
//object in its second argument:
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   192
function successHandler(id, o){
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   193
    Y.log("Success handler called; handler will parse the retrieved XML and insert into DOM.", "info", "example");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   194
    var root = o.responseXML.documentElement;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   195
    var oTitle = root.getElementsByTagName('description')[0].firstChild.nodeValue;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   196
    var oDateTime = root.getElementsByTagName('lastBuildDate')[0].firstChild.nodeValue;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   197
    var descriptionNode = root.getElementsByTagName('description')[1].firstChild.nodeValue;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   198
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   199
    div.set("innerHTML", "<p>" + oTitle + "</p>" + "<p>" + oDateTime + "</p>" + descriptionNode);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   200
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   201
    Y.log("Success handler is complete.", "info", "example");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   202
}</textarea></div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   203
<h3>Assemble the Querystring and Initiate the Transaction</h3>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   204
<p>The Yahoo! Weather RSS feed requires a simple HTTP GET request with a base URL and a querystring containing the required information as a name-value pair.  In this example, we will use the following parameter:</p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   205
<ul>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   206
	<li><code>p</code> &mdash; location as U.S. Zip Code or Location ID</li>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   207
</ul>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   208
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   209
<p>The following are some example location IDs (do not include the city name):</p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   210
<ul>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   211
	<li><strong>Beijing</strong>: <em>CHXX0008</em></li>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   212
	<li><strong>Helsinki</strong>: <em>FIXX0002</em></li>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   213
	<li><strong>London</strong>: <em>UKXX0085</em></li>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   214
	<li><strong>Moscow</strong>: <em>RSXX0063</em></li>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   215
	<li><strong>Munich</strong>: <em>GMXX0087</em></li>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   216
	<li><strong>Paris</strong>: <em>FRXX0076</em></li>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   217
	<li><strong>Riyadh</strong>: <em>SAXX0017</em></li>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   218
	<li><strong>Tokyo</strong>: <em>JAXX0085</em></li>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   219
</ul>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   220
<p>For more details on the Yahoo! Weather RSS feed and other location IDs, please visit <a href="http://developer.yahoo.com/weather/index.html">http://developer.yahoo.com/weather/index.html</a>.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   221
<p>Function <code>getModule</code> retrieves the input values for location and creates a querystring:</p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   222
<div id="syntax3" class="yui-syntax-highlight"><div class="numbers"><pre class="javascript" style="font-family:monospace;"><ol><li class="li1"><div class="de1"><span class="co1">//When the Get RSS button is clicked, this function will fire</span></div></li><li class="li1"><div class="de1"><span class="co1">//and compose/dispatch the IO request:</span></div></li><li class="li1"><div class="de1"><span class="kw2">function</span> getModule<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#123;</span></div></li><li class="li1"><div class="de1">    <span class="co1">//Get the input value:</span></div></li><li class="li2"><div class="de2">    <span class="kw2">var</span> iZip <span class="sy0">=</span> Y.<span class="me1">Node</span>.<span class="me1">get</span><span class="br0">&#40;</span><span class="st0">'#zip'</span><span class="br0">&#41;</span>.<span class="me1">get</span><span class="br0">&#40;</span><span class="st0">&quot;value&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1">    <span class="co1">//Create a querystring from the input value:</span></div></li><li class="li1"><div class="de1">    <span class="kw2">var</span> queryString <span class="sy0">=</span> <span class="kw1">encodeURI</span><span class="br0">&#40;</span><span class="st0">'?p='</span> <span class="sy0">+</span> iZip<span class="br0">&#41;</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li2"><div class="de2">    <span class="co1">//The location of our server-side proxy:</span></div></li><li class="li1"><div class="de1">    <span class="kw2">var</span> entryPoint <span class="sy0">=</span> <span class="st0">'(assets/)weather.php'</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1">    <span class="co1">//Compile the full URI for the request:</span></div></li><li class="li1"><div class="de1">    <span class="kw2">var</span> sUrl <span class="sy0">=</span> entryPoint <span class="sy0">+</span> queryString<span class="sy0">;</span></div></li><li class="li2"><div class="de2">&nbsp;</div></li><li class="li1"><div class="de1">    Y.<span class="me1">log</span><span class="br0">&#40;</span><span class="st0">&quot;Submitting request; zip code: &quot;</span> <span class="sy0">+</span> iZip<span class="sy0">,</span> <span class="st0">&quot;info&quot;</span><span class="sy0">,</span> <span class="st0">&quot;example&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1">    <span class="co1">//Make the reqeust:</span></div></li><li class="li1"><div class="de1">    <span class="kw2">var</span> request <span class="sy0">=</span> Y.<span class="me1">io</span><span class="br0">&#40;</span>sUrl<span class="sy0">,</span> <span class="br0">&#123;</span></div></li><li class="li2"><div class="de2">        method<span class="sy0">:</span><span class="st0">&quot;GET&quot;</span><span class="sy0">,</span></div></li><li class="li1"><div class="de1">        on<span class="sy0">:</span></div></li><li class="li1"><div class="de1">            <span class="br0">&#123;</span></div></li><li class="li1"><div class="de1">                success<span class="sy0">:</span>successHandler<span class="sy0">,</span></div></li><li class="li1"><div class="de1">                failure<span class="sy0">:</span>failureHandler</div></li><li class="li2"><div class="de2">            <span class="br0">&#125;</span></div></li><li class="li1"><div class="de1">        <span class="br0">&#125;</span></div></li><li class="li1"><div class="de1">    <span class="br0">&#41;</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1"><span class="br0">&#125;</span></div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li2"><div class="de2"><span class="co1">//Use the Event Utility to wire the Get RSS button</span></div></li><li class="li1"><div class="de1"><span class="co1">//to the getModule function:</span></div></li><li class="li1"><div class="de1">Y.<span class="me1">on</span><span class="br0">&#40;</span><span class="st0">&quot;click&quot;</span><span class="sy0">,</span> getModule<span class="sy0">,</span> <span class="st0">&quot;#getWeather&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span></div></li></ol></pre></div><div class="nonumbers"><pre class="javascript" style="font-family:monospace;"><span class="co1">//When the Get RSS button is clicked, this function will fire</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   223
<span class="co1">//and compose/dispatch the IO request:</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   224
<span class="kw2">function</span> getModule<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#123;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   225
    <span class="co1">//Get the input value:</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   226
    <span class="kw2">var</span> iZip <span class="sy0">=</span> Y.<span class="me1">Node</span>.<span class="me1">get</span><span class="br0">&#40;</span><span class="st0">'#zip'</span><span class="br0">&#41;</span>.<span class="me1">get</span><span class="br0">&#40;</span><span class="st0">&quot;value&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   227
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   228
    <span class="co1">//Create a querystring from the input value:</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   229
    <span class="kw2">var</span> queryString <span class="sy0">=</span> <span class="kw1">encodeURI</span><span class="br0">&#40;</span><span class="st0">'?p='</span> <span class="sy0">+</span> iZip<span class="br0">&#41;</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   230
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   231
    <span class="co1">//The location of our server-side proxy:</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   232
    <span class="kw2">var</span> entryPoint <span class="sy0">=</span> <span class="st0">'(assets/)weather.php'</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   233
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   234
    <span class="co1">//Compile the full URI for the request:</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   235
    <span class="kw2">var</span> sUrl <span class="sy0">=</span> entryPoint <span class="sy0">+</span> queryString<span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   236
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   237
    Y.<span class="me1">log</span><span class="br0">&#40;</span><span class="st0">&quot;Submitting request; zip code: &quot;</span> <span class="sy0">+</span> iZip<span class="sy0">,</span> <span class="st0">&quot;info&quot;</span><span class="sy0">,</span> <span class="st0">&quot;example&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   238
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   239
    <span class="co1">//Make the reqeust:</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   240
    <span class="kw2">var</span> request <span class="sy0">=</span> Y.<span class="me1">io</span><span class="br0">&#40;</span>sUrl<span class="sy0">,</span> <span class="br0">&#123;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   241
        method<span class="sy0">:</span><span class="st0">&quot;GET&quot;</span><span class="sy0">,</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   242
        on<span class="sy0">:</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   243
            <span class="br0">&#123;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   244
                success<span class="sy0">:</span>successHandler<span class="sy0">,</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   245
                failure<span class="sy0">:</span>failureHandler
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   246
            <span class="br0">&#125;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   247
        <span class="br0">&#125;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   248
    <span class="br0">&#41;</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   249
<span class="br0">&#125;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   250
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   251
<span class="co1">//Use the Event Utility to wire the Get RSS button</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   252
<span class="co1">//to the getModule function:</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   253
Y.<span class="me1">on</span><span class="br0">&#40;</span><span class="st0">&quot;click&quot;</span><span class="sy0">,</span> getModule<span class="sy0">,</span> <span class="st0">&quot;#getWeather&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span></pre></div><textarea id="syntax3-plain">//When the Get RSS button is clicked, this function will fire
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   254
//and compose/dispatch the IO request:
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   255
function getModule(){
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   256
    //Get the input value:
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   257
    var iZip = Y.Node.get('#zip').get("value");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   258
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   259
    //Create a querystring from the input value:
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   260
    var queryString = encodeURI('?p=' + iZip);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   261
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   262
    //The location of our server-side proxy:
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   263
    var entryPoint = '(assets/)weather.php';
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   264
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   265
    //Compile the full URI for the request:
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   266
    var sUrl = entryPoint + queryString;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   267
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   268
    Y.log("Submitting request; zip code: " + iZip, "info", "example");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   269
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   270
    //Make the reqeust:
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   271
    var request = Y.io(sUrl, {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   272
        method:"GET",
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   273
        on:
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   274
            {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   275
                success:successHandler,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   276
                failure:failureHandler
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   277
            }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   278
        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   279
    );
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   280
}
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   281
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   282
//Use the Event Utility to wire the Get RSS button
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   283
//to the getModule function:
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   284
Y.on("click", getModule, "#getWeather");</textarea></div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   285
<h3>Full Script Source</h3>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   286
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   287
<p>Here is the full JavaScript source for this example:</p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   288
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   289
<div id="syntax4" class="yui-syntax-highlight"><div class="numbers"><pre class="javascript" style="font-family:monospace;"><ol><li class="li1"><div class="de1">YUI<span class="br0">&#40;</span><span class="br0">&#123;</span>base<span class="sy0">:</span><span class="st0">&quot;../../build/&quot;</span><span class="sy0">,</span> timeout<span class="sy0">:</span> <span class="nu0">10000</span><span class="br0">&#125;</span><span class="br0">&#41;</span>.<span class="kw2">use</span><span class="br0">&#40;</span><span class="st0">&quot;io&quot;</span><span class="sy0">,</span></div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1">	<span class="kw2">function</span><span class="br0">&#40;</span>Y<span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li2"><div class="de2">		<span class="co1">//Get a Node reference to the div we'll use for displaying</span></div></li><li class="li1"><div class="de1">		<span class="co1">//results:</span></div></li><li class="li1"><div class="de1">		<span class="kw2">var</span> div <span class="sy0">=</span> Y.<span class="me1">Node</span>.<span class="me1">get</span><span class="br0">&#40;</span><span class="st0">'#weatherModule'</span><span class="br0">&#41;</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1">		<span class="co1">//Define a function to handle a successful response from</span></div></li><li class="li2"><div class="de2">		<span class="co1">//Yahoo! Weather.  The success handler will find the response</span></div></li><li class="li1"><div class="de1">		<span class="co1">//object in its second argument:</span></div></li><li class="li1"><div class="de1">		<span class="kw2">function</span> successHandler<span class="br0">&#40;</span>id<span class="sy0">,</span> o<span class="br0">&#41;</span><span class="br0">&#123;</span></div></li><li class="li1"><div class="de1">			Y.<span class="me1">log</span><span class="br0">&#40;</span><span class="st0">&quot;Success handler called; handler will parse the retrieved XML and insert into DOM.&quot;</span><span class="sy0">,</span> <span class="st0">&quot;info&quot;</span><span class="sy0">,</span> <span class="st0">&quot;example&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1">			<span class="kw2">var</span> root <span class="sy0">=</span> o.<span class="me1">responseXML</span>.<span class="me1">documentElement</span><span class="sy0">;</span></div></li><li class="li2"><div class="de2">			<span class="kw2">var</span> oTitle <span class="sy0">=</span> root.<span class="me1">getElementsByTagName</span><span class="br0">&#40;</span><span class="st0">'description'</span><span class="br0">&#41;</span><span class="br0">&#91;</span><span class="nu0">0</span><span class="br0">&#93;</span>.<span class="me1">firstChild</span>.<span class="me1">nodeValue</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1">			<span class="kw2">var</span> oDateTime <span class="sy0">=</span> root.<span class="me1">getElementsByTagName</span><span class="br0">&#40;</span><span class="st0">'lastBuildDate'</span><span class="br0">&#41;</span><span class="br0">&#91;</span><span class="nu0">0</span><span class="br0">&#93;</span>.<span class="me1">firstChild</span>.<span class="me1">nodeValue</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1">			<span class="kw2">var</span> descriptionNode <span class="sy0">=</span> root.<span class="me1">getElementsByTagName</span><span class="br0">&#40;</span><span class="st0">'description'</span><span class="br0">&#41;</span><span class="br0">&#91;</span><span class="nu0">1</span><span class="br0">&#93;</span>.<span class="me1">firstChild</span>.<span class="me1">nodeValue</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1">			div.<span class="me1">set</span><span class="br0">&#40;</span><span class="st0">&quot;innerHTML&quot;</span><span class="sy0">,</span> <span class="st0">&quot;&lt;p&gt;&quot;</span> <span class="sy0">+</span> oTitle <span class="sy0">+</span> <span class="st0">&quot;&lt;/p&gt;&quot;</span> <span class="sy0">+</span> <span class="st0">&quot;&lt;p&gt;&quot;</span> <span class="sy0">+</span> oDateTime <span class="sy0">+</span> <span class="st0">&quot;&lt;/p&gt;&quot;</span> <span class="sy0">+</span> descriptionNode<span class="br0">&#41;</span><span class="sy0">;</span></div></li><li class="li2"><div class="de2">&nbsp;</div></li><li class="li1"><div class="de1">			Y.<span class="me1">log</span><span class="br0">&#40;</span><span class="st0">&quot;Success handler is complete.&quot;</span><span class="sy0">,</span> <span class="st0">&quot;info&quot;</span><span class="sy0">,</span> <span class="st0">&quot;example&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1">		<span class="br0">&#125;</span></div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1">		<span class="co1">//Provide a function that can help debug failed</span></div></li><li class="li2"><div class="de2">		<span class="co1">//requests:</span></div></li><li class="li1"><div class="de1">		<span class="kw2">function</span> failureHandler<span class="br0">&#40;</span>id<span class="sy0">,</span> o<span class="br0">&#41;</span><span class="br0">&#123;</span></div></li><li class="li1"><div class="de1">			Y.<span class="me1">log</span><span class="br0">&#40;</span><span class="st0">&quot;Failure handler called; http status: &quot;</span> <span class="sy0">+</span> o.<span class="kw3">status</span><span class="sy0">,</span> <span class="st0">&quot;info&quot;</span><span class="sy0">,</span> <span class="st0">&quot;example&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1">			div.<span class="me1">set</span><span class="br0">&#40;</span><span class="st0">&quot;innerHTML&quot;</span><span class="sy0">,</span> o.<span class="kw3">status</span> <span class="sy0">+</span> <span class="st0">&quot; &quot;</span> <span class="sy0">+</span> o.<span class="me1">statusText</span><span class="br0">&#41;</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1">		<span class="br0">&#125;</span></div></li><li class="li2"><div class="de2">&nbsp;</div></li><li class="li1"><div class="de1">		<span class="co1">//When the Get RSS button is clicked, this function will fire</span></div></li><li class="li1"><div class="de1">		<span class="co1">//and compose/dispatch the IO request:</span></div></li><li class="li1"><div class="de1">		<span class="kw2">function</span> getModule<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#123;</span></div></li><li class="li1"><div class="de1">			<span class="co1">//Get the input value:</span></div></li><li class="li2"><div class="de2">			<span class="kw2">var</span> iZip <span class="sy0">=</span> Y.<span class="me1">Node</span>.<span class="me1">get</span><span class="br0">&#40;</span><span class="st0">'#zip'</span><span class="br0">&#41;</span>.<span class="me1">get</span><span class="br0">&#40;</span><span class="st0">&quot;value&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1">			<span class="co1">//Create a querystring from the input value:</span></div></li><li class="li1"><div class="de1">			<span class="kw2">var</span> queryString <span class="sy0">=</span> <span class="kw1">encodeURI</span><span class="br0">&#40;</span><span class="st0">'?p='</span> <span class="sy0">+</span> iZip<span class="br0">&#41;</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li2"><div class="de2">			<span class="co1">//The location of our server-side proxy:</span></div></li><li class="li1"><div class="de1">			<span class="kw2">var</span> entryPoint <span class="sy0">=</span> <span class="st0">'(assets/)weather.php'</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1">			<span class="co1">//Compile the full URI for the request:</span></div></li><li class="li1"><div class="de1">			<span class="kw2">var</span> sUrl <span class="sy0">=</span> entryPoint <span class="sy0">+</span> queryString<span class="sy0">;</span></div></li><li class="li2"><div class="de2">&nbsp;</div></li><li class="li1"><div class="de1">			Y.<span class="me1">log</span><span class="br0">&#40;</span><span class="st0">&quot;Submitting request; zip code: &quot;</span> <span class="sy0">+</span> iZip<span class="sy0">,</span> <span class="st0">&quot;info&quot;</span><span class="sy0">,</span> <span class="st0">&quot;example&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1">			<span class="co1">//Make the reqeust:</span></div></li><li class="li1"><div class="de1">			<span class="kw2">var</span> request <span class="sy0">=</span> Y.<span class="me1">io</span><span class="br0">&#40;</span>sUrl<span class="sy0">,</span> <span class="br0">&#123;</span></div></li><li class="li2"><div class="de2">				method<span class="sy0">:</span><span class="st0">&quot;GET&quot;</span><span class="sy0">,</span></div></li><li class="li1"><div class="de1">				on<span class="sy0">:</span></div></li><li class="li1"><div class="de1">					<span class="br0">&#123;</span></div></li><li class="li1"><div class="de1">						success<span class="sy0">:</span>successHandler<span class="sy0">,</span></div></li><li class="li1"><div class="de1">						failure<span class="sy0">:</span>failureHandler</div></li><li class="li2"><div class="de2">					<span class="br0">&#125;</span></div></li><li class="li1"><div class="de1">				<span class="br0">&#125;</span></div></li><li class="li1"><div class="de1">			<span class="br0">&#41;</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1">		<span class="br0">&#125;</span></div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li2"><div class="de2">		<span class="co1">//Use the Event Utility to wire the Get RSS button</span></div></li><li class="li1"><div class="de1">		<span class="co1">//to the getModule function:</span></div></li><li class="li1"><div class="de1">		Y.<span class="me1">on</span><span class="br0">&#40;</span><span class="st0">&quot;click&quot;</span><span class="sy0">,</span> getModule<span class="sy0">,</span> <span class="st0">&quot;#getWeather&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1">		Y.<span class="me1">log</span><span class="br0">&#40;</span><span class="st0">&quot;When you retrieve weather RSS data, relevant steps in the process will be reported here in the logger/console.&quot;</span><span class="sy0">,</span> <span class="st0">&quot;info&quot;</span><span class="sy0">,</span> <span class="st0">&quot;example&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span></div></li><li class="li2"><div class="de2">	<span class="br0">&#125;</span></div></li><li class="li1"><div class="de1"><span class="br0">&#41;</span><span class="sy0">;</span></div></li></ol></pre></div><div class="nonumbers"><pre class="javascript" style="font-family:monospace;">YUI<span class="br0">&#40;</span><span class="br0">&#123;</span>base<span class="sy0">:</span><span class="st0">&quot;../../build/&quot;</span><span class="sy0">,</span> timeout<span class="sy0">:</span> <span class="nu0">10000</span><span class="br0">&#125;</span><span class="br0">&#41;</span>.<span class="kw2">use</span><span class="br0">&#40;</span><span class="st0">&quot;io&quot;</span><span class="sy0">,</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   290
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   291
	<span class="kw2">function</span><span class="br0">&#40;</span>Y<span class="br0">&#41;</span> <span class="br0">&#123;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   292
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   293
		<span class="co1">//Get a Node reference to the div we'll use for displaying</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   294
		<span class="co1">//results:</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   295
		<span class="kw2">var</span> div <span class="sy0">=</span> Y.<span class="me1">Node</span>.<span class="me1">get</span><span class="br0">&#40;</span><span class="st0">'#weatherModule'</span><span class="br0">&#41;</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   296
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   297
		<span class="co1">//Define a function to handle a successful response from</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   298
		<span class="co1">//Yahoo! Weather.  The success handler will find the response</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   299
		<span class="co1">//object in its second argument:</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   300
		<span class="kw2">function</span> successHandler<span class="br0">&#40;</span>id<span class="sy0">,</span> o<span class="br0">&#41;</span><span class="br0">&#123;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   301
			Y.<span class="me1">log</span><span class="br0">&#40;</span><span class="st0">&quot;Success handler called; handler will parse the retrieved XML and insert into DOM.&quot;</span><span class="sy0">,</span> <span class="st0">&quot;info&quot;</span><span class="sy0">,</span> <span class="st0">&quot;example&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   302
			<span class="kw2">var</span> root <span class="sy0">=</span> o.<span class="me1">responseXML</span>.<span class="me1">documentElement</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   303
			<span class="kw2">var</span> oTitle <span class="sy0">=</span> root.<span class="me1">getElementsByTagName</span><span class="br0">&#40;</span><span class="st0">'description'</span><span class="br0">&#41;</span><span class="br0">&#91;</span><span class="nu0">0</span><span class="br0">&#93;</span>.<span class="me1">firstChild</span>.<span class="me1">nodeValue</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   304
			<span class="kw2">var</span> oDateTime <span class="sy0">=</span> root.<span class="me1">getElementsByTagName</span><span class="br0">&#40;</span><span class="st0">'lastBuildDate'</span><span class="br0">&#41;</span><span class="br0">&#91;</span><span class="nu0">0</span><span class="br0">&#93;</span>.<span class="me1">firstChild</span>.<span class="me1">nodeValue</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   305
			<span class="kw2">var</span> descriptionNode <span class="sy0">=</span> root.<span class="me1">getElementsByTagName</span><span class="br0">&#40;</span><span class="st0">'description'</span><span class="br0">&#41;</span><span class="br0">&#91;</span><span class="nu0">1</span><span class="br0">&#93;</span>.<span class="me1">firstChild</span>.<span class="me1">nodeValue</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   306
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   307
			div.<span class="me1">set</span><span class="br0">&#40;</span><span class="st0">&quot;innerHTML&quot;</span><span class="sy0">,</span> <span class="st0">&quot;&lt;p&gt;&quot;</span> <span class="sy0">+</span> oTitle <span class="sy0">+</span> <span class="st0">&quot;&lt;/p&gt;&quot;</span> <span class="sy0">+</span> <span class="st0">&quot;&lt;p&gt;&quot;</span> <span class="sy0">+</span> oDateTime <span class="sy0">+</span> <span class="st0">&quot;&lt;/p&gt;&quot;</span> <span class="sy0">+</span> descriptionNode<span class="br0">&#41;</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   308
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   309
			Y.<span class="me1">log</span><span class="br0">&#40;</span><span class="st0">&quot;Success handler is complete.&quot;</span><span class="sy0">,</span> <span class="st0">&quot;info&quot;</span><span class="sy0">,</span> <span class="st0">&quot;example&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   310
		<span class="br0">&#125;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   311
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   312
		<span class="co1">//Provide a function that can help debug failed</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   313
		<span class="co1">//requests:</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   314
		<span class="kw2">function</span> failureHandler<span class="br0">&#40;</span>id<span class="sy0">,</span> o<span class="br0">&#41;</span><span class="br0">&#123;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   315
			Y.<span class="me1">log</span><span class="br0">&#40;</span><span class="st0">&quot;Failure handler called; http status: &quot;</span> <span class="sy0">+</span> o.<span class="kw3">status</span><span class="sy0">,</span> <span class="st0">&quot;info&quot;</span><span class="sy0">,</span> <span class="st0">&quot;example&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   316
			div.<span class="me1">set</span><span class="br0">&#40;</span><span class="st0">&quot;innerHTML&quot;</span><span class="sy0">,</span> o.<span class="kw3">status</span> <span class="sy0">+</span> <span class="st0">&quot; &quot;</span> <span class="sy0">+</span> o.<span class="me1">statusText</span><span class="br0">&#41;</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   317
		<span class="br0">&#125;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   318
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   319
		<span class="co1">//When the Get RSS button is clicked, this function will fire</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   320
		<span class="co1">//and compose/dispatch the IO request:</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   321
		<span class="kw2">function</span> getModule<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#123;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   322
			<span class="co1">//Get the input value:</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   323
			<span class="kw2">var</span> iZip <span class="sy0">=</span> Y.<span class="me1">Node</span>.<span class="me1">get</span><span class="br0">&#40;</span><span class="st0">'#zip'</span><span class="br0">&#41;</span>.<span class="me1">get</span><span class="br0">&#40;</span><span class="st0">&quot;value&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   324
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   325
			<span class="co1">//Create a querystring from the input value:</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   326
			<span class="kw2">var</span> queryString <span class="sy0">=</span> <span class="kw1">encodeURI</span><span class="br0">&#40;</span><span class="st0">'?p='</span> <span class="sy0">+</span> iZip<span class="br0">&#41;</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   327
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   328
			<span class="co1">//The location of our server-side proxy:</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   329
			<span class="kw2">var</span> entryPoint <span class="sy0">=</span> <span class="st0">'(assets/)weather.php'</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   330
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   331
			<span class="co1">//Compile the full URI for the request:</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   332
			<span class="kw2">var</span> sUrl <span class="sy0">=</span> entryPoint <span class="sy0">+</span> queryString<span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   333
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   334
			Y.<span class="me1">log</span><span class="br0">&#40;</span><span class="st0">&quot;Submitting request; zip code: &quot;</span> <span class="sy0">+</span> iZip<span class="sy0">,</span> <span class="st0">&quot;info&quot;</span><span class="sy0">,</span> <span class="st0">&quot;example&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   335
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   336
			<span class="co1">//Make the reqeust:</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   337
			<span class="kw2">var</span> request <span class="sy0">=</span> Y.<span class="me1">io</span><span class="br0">&#40;</span>sUrl<span class="sy0">,</span> <span class="br0">&#123;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   338
				method<span class="sy0">:</span><span class="st0">&quot;GET&quot;</span><span class="sy0">,</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   339
				on<span class="sy0">:</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   340
					<span class="br0">&#123;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   341
						success<span class="sy0">:</span>successHandler<span class="sy0">,</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   342
						failure<span class="sy0">:</span>failureHandler
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   343
					<span class="br0">&#125;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   344
				<span class="br0">&#125;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   345
			<span class="br0">&#41;</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   346
		<span class="br0">&#125;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   347
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   348
		<span class="co1">//Use the Event Utility to wire the Get RSS button</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   349
		<span class="co1">//to the getModule function:</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   350
		Y.<span class="me1">on</span><span class="br0">&#40;</span><span class="st0">&quot;click&quot;</span><span class="sy0">,</span> getModule<span class="sy0">,</span> <span class="st0">&quot;#getWeather&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   351
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   352
		Y.<span class="me1">log</span><span class="br0">&#40;</span><span class="st0">&quot;When you retrieve weather RSS data, relevant steps in the process will be reported here in the logger/console.&quot;</span><span class="sy0">,</span> <span class="st0">&quot;info&quot;</span><span class="sy0">,</span> <span class="st0">&quot;example&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   353
	<span class="br0">&#125;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   354
<span class="br0">&#41;</span><span class="sy0">;</span></pre></div><textarea id="syntax4-plain">YUI({base:"../../build/", timeout: 10000}).use("io",
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   355
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   356
	function(Y) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   357
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   358
		//Get a Node reference to the div we'll use for displaying
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   359
		//results:
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   360
		var div = Y.Node.get('#weatherModule');
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   361
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   362
		//Define a function to handle a successful response from
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   363
		//Yahoo! Weather.  The success handler will find the response
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   364
		//object in its second argument:
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   365
		function successHandler(id, o){
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   366
			Y.log("Success handler called; handler will parse the retrieved XML and insert into DOM.", "info", "example");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   367
			var root = o.responseXML.documentElement;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   368
			var oTitle = root.getElementsByTagName('description')[0].firstChild.nodeValue;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   369
			var oDateTime = root.getElementsByTagName('lastBuildDate')[0].firstChild.nodeValue;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   370
			var descriptionNode = root.getElementsByTagName('description')[1].firstChild.nodeValue;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   371
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   372
			div.set("innerHTML", "<p>" + oTitle + "</p>" + "<p>" + oDateTime + "</p>" + descriptionNode);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   373
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   374
			Y.log("Success handler is complete.", "info", "example");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   375
		}
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   376
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   377
		//Provide a function that can help debug failed
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   378
		//requests:
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   379
		function failureHandler(id, o){
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   380
			Y.log("Failure handler called; http status: " + o.status, "info", "example");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   381
			div.set("innerHTML", o.status + " " + o.statusText);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   382
		}
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   383
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   384
		//When the Get RSS button is clicked, this function will fire
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   385
		//and compose/dispatch the IO request:
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   386
		function getModule(){
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   387
			//Get the input value:
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   388
			var iZip = Y.Node.get('#zip').get("value");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   389
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   390
			//Create a querystring from the input value:
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   391
			var queryString = encodeURI('?p=' + iZip);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   392
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   393
			//The location of our server-side proxy:
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   394
			var entryPoint = '(assets/)weather.php';
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   395
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   396
			//Compile the full URI for the request:
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   397
			var sUrl = entryPoint + queryString;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   398
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   399
			Y.log("Submitting request; zip code: " + iZip, "info", "example");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   400
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   401
			//Make the reqeust:
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   402
			var request = Y.io(sUrl, {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   403
				method:"GET",
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   404
				on:
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   405
					{
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   406
						success:successHandler,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   407
						failure:failureHandler
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   408
					}
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   409
				}
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   410
			);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   411
		}
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   412
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   413
		//Use the Event Utility to wire the Get RSS button
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   414
		//to the getModule function:
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   415
		Y.on("click", getModule, "#getWeather");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   416
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   417
		Y.log("When you retrieve weather RSS data, relevant steps in the process will be reported here in the logger/console.", "info", "example");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   418
	}
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   419
);</textarea></div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   420
<h3>Proxy and Response</h3>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   421
<p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   422
Once <code>weather.php</code> receives the querystring, it will construct and send an HTTP GET using CURL to retrieve the results from the Yahoo! Weather RSS feed.  This allows the transaction to succeed while working around XMLHttpRequest's strict security policy.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   423
</p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   424
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   425
<div id="syntax5" class="yui-syntax-highlight"><div class="numbers"><pre class="javascript" style="font-family:monospace;"><ol><li class="li1"><div class="de1"><span class="co1">//Within a PHP block:</span></div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1"><span class="co1">// Since the result is an XML document, the Content-type</span></div></li><li class="li1"><div class="de1"><span class="co1">// header must be set to &quot;text/xml&quot; for the data to be</span></div></li><li class="li2"><div class="de2"><span class="co1">// treated as XML and to populate responseXML.</span></div></li><li class="li1"><div class="de1">header<span class="br0">&#40;</span><span class="st0">&quot;Content-Type:text/xml&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1"><span class="co1">// io-weather_clean.html is the resource path of the Y! Weather RSS</span></div></li><li class="li1"><div class="de1"><span class="co1">// with the appended querystring of zip code/location id.</span></div></li><li class="li2"><div class="de2">$url <span class="sy0">=</span> <span class="st0">'http://xml.weather.yahoo.com/forecastrss?'</span>.<span class="me1">getenv</span><span class="br0">&#40;</span><span class="st0">'QUERY_STRING'</span><span class="br0">&#41;</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1"><span class="co1">// This function initializes CURL, sets the necessary CURL</span></div></li><li class="li1"><div class="de1"><span class="co1">// options, executes the request and returns the results.</span></div></li><li class="li1"><div class="de1"><span class="kw2">function</span> getResource<span class="br0">&#40;</span>io<span class="sy0">-</span>weather_clean.<span class="me1">html</span><span class="br0">&#41;</span><span class="br0">&#123;</span></div></li><li class="li2"><div class="de2">        $ch <span class="sy0">=</span> curl_init<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1">        curl_setopt<span class="br0">&#40;</span>$ch<span class="sy0">,</span> CURLOPT_URL<span class="sy0">,</span> $url<span class="br0">&#41;</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1">        curl_setopt<span class="br0">&#40;</span>$ch<span class="sy0">,</span> CURLOPT_RETURNTRANSFER<span class="sy0">,</span> <span class="nu0">1</span><span class="br0">&#41;</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1">        $result <span class="sy0">=</span> curl_exec<span class="br0">&#40;</span>$ch<span class="br0">&#41;</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1">        curl_close<span class="br0">&#40;</span>$ch<span class="br0">&#41;</span><span class="sy0">;</span></div></li><li class="li2"><div class="de2">&nbsp;</div></li><li class="li1"><div class="de1">        <span class="kw1">return</span> $result<span class="sy0">;</span></div></li><li class="li1"><div class="de1"><span class="br0">&#125;</span></div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1"><span class="co1">// Call getResource to make the request.</span></div></li><li class="li2"><div class="de2">$feed <span class="sy0">=</span> getResource<span class="br0">&#40;</span>$url<span class="br0">&#41;</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1"><span class="co1">// Return the results.</span></div></li><li class="li1"><div class="de1">echo $feed<span class="sy0">;</span></div></li></ol></pre></div><div class="nonumbers"><pre class="javascript" style="font-family:monospace;"><span class="co1">//Within a PHP block:</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   426
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   427
<span class="co1">// Since the result is an XML document, the Content-type</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   428
<span class="co1">// header must be set to &quot;text/xml&quot; for the data to be</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   429
<span class="co1">// treated as XML and to populate responseXML.</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   430
header<span class="br0">&#40;</span><span class="st0">&quot;Content-Type:text/xml&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   431
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   432
<span class="co1">// io-weather_clean.html is the resource path of the Y! Weather RSS</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   433
<span class="co1">// with the appended querystring of zip code/location id.</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   434
$url <span class="sy0">=</span> <span class="st0">'http://xml.weather.yahoo.com/forecastrss?'</span>.<span class="me1">getenv</span><span class="br0">&#40;</span><span class="st0">'QUERY_STRING'</span><span class="br0">&#41;</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   435
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   436
<span class="co1">// This function initializes CURL, sets the necessary CURL</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   437
<span class="co1">// options, executes the request and returns the results.</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   438
<span class="kw2">function</span> getResource<span class="br0">&#40;</span>io<span class="sy0">-</span>weather_clean.<span class="me1">html</span><span class="br0">&#41;</span><span class="br0">&#123;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   439
        $ch <span class="sy0">=</span> curl_init<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   440
        curl_setopt<span class="br0">&#40;</span>$ch<span class="sy0">,</span> CURLOPT_URL<span class="sy0">,</span> $url<span class="br0">&#41;</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   441
        curl_setopt<span class="br0">&#40;</span>$ch<span class="sy0">,</span> CURLOPT_RETURNTRANSFER<span class="sy0">,</span> <span class="nu0">1</span><span class="br0">&#41;</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   442
        $result <span class="sy0">=</span> curl_exec<span class="br0">&#40;</span>$ch<span class="br0">&#41;</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   443
        curl_close<span class="br0">&#40;</span>$ch<span class="br0">&#41;</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   444
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   445
        <span class="kw1">return</span> $result<span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   446
<span class="br0">&#125;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   447
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   448
<span class="co1">// Call getResource to make the request.</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   449
$feed <span class="sy0">=</span> getResource<span class="br0">&#40;</span>$url<span class="br0">&#41;</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   450
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   451
<span class="co1">// Return the results.</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   452
echo $feed<span class="sy0">;</span></pre></div><textarea id="syntax5-plain">//Within a PHP block:
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   453
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   454
// Since the result is an XML document, the Content-type
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   455
// header must be set to "text/xml" for the data to be
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   456
// treated as XML and to populate responseXML.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   457
header("Content-Type:text/xml");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   458
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   459
// io-weather_clean.html is the resource path of the Y! Weather RSS
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   460
// with the appended querystring of zip code/location id.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   461
$url = 'http://xml.weather.yahoo.com/forecastrss?'.getenv('QUERY_STRING');
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   462
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   463
// This function initializes CURL, sets the necessary CURL
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   464
// options, executes the request and returns the results.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   465
function getResource(io-weather_clean.html){
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   466
        $ch = curl_init();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   467
        curl_setopt($ch, CURLOPT_URL, $url);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   468
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   469
        $result = curl_exec($ch);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   470
        curl_close($ch);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   471
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   472
        return $result;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   473
}
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   474
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   475
// Call getResource to make the request.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   476
$feed = getResource($url);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   477
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   478
// Return the results.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   479
echo $feed;</textarea></div>				</div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   480
				<div class="yui-u sidebar">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   481
					
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   482
				
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   483
					<div id="examples" class="mod box4">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   484
                        <div class="hd">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   485
						<h4>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   486
    IO Examples:</h4>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   487
                        </div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   488
						<div class="bd">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   489
							<ul>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   490
								<li><a href='../io/io-get.html'>GET Transaction</a></li><li><a href='../io/io-post.html'>POST Transaction</a></li><li class='selected'><a href='../io/io-weather.html'>XML Transaction &mdash; Retrieving a Yahoo! Weather RSS (XML) Feed via a Server-Side Proxy</a></li><li><a href='../io/io-xdr.html'>Cross-Domain JSON Transaction &mdash; Retrieving a News Feed from Yahoo! Pipes</a></li><li><a href='../node-menunav/node-menunav-8.html'>Adding Submenus On The Fly (included with examples for MenuNav Node Plugin)</a></li><li><a href='../overlay/overlay-io-plugin.html'>IO Plugin (included with examples for Overlay)</a></li><li><a href='../dd/portal-drag.html'>Portal Style Example (included with examples for Drag &amp; Drop)</a></li>							</ul>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   491
						</div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   492
					</div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   493
					
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   494
					<div class="mod box4">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   495
                        <div class="hd">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   496
						<h4>More IO Resources:</h4>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   497
                        </div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   498
                        <div class="bd">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   499
						<ul>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   500
							<!-- <li><a href="http://developer.yahoo.com/yui/io/">User's Guide</a> (external)</li> -->
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   501
<li><a href="../../api/module_io.html">API Documentation</a></li></ul>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   502
                        </div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   503
					</div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   504
			  </div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   505
		</div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   506
		
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   507
		</div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   508
	</div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   509
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   510
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   511
<div class="yui-b toc3" id="tocWrapper">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   512
<!-- TABLE OF CONTENTS -->
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   513
<div id="toc">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   514
	
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   515
<ul>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   516
<li class="sect first">YUI 3 Resources</li><li class="item"><a title="YUI 3 -- Yahoo! User Interface (YUI) Library" href="http://developer.yahoo.com/yui/3/">YUI 3 Web Site</a></li><li class="item"><a title="Examples of every YUI utility and control in action" href="../../examples/">YUI 3 Examples</a></li><li class="item"><a title="Instantly searchable API documentation for the entire YUI library." href="../../api/">YUI 3 API Docs</a></li><li class="item"><a title="YUI 3 Dependency Configurator -- configure your custom YUI implementation" href="http://developer.yahoo.com/yui/3/configurator">YUI 3 Dependency Configurator</a></li><li class="item"><a title="The YUI 3 Forum on YUILibrary.com" href="http://yuilibrary.com/forum/viewforum.php?f=15">YUI 3 Forums (external)</a></li><li class="item"><a title="Found a bug or a missing feature? Let us know on YUILibrary.com." href="http://developer.yahoo.com/yui/articles/reportingbugs/">Bug Reports/Feature Requests</a></li><li class="item"><a title="YUI is free and open, offered under a BSD license." href="http://developer.yahoo.com/yui/license.html">YUI License</a></li><li class="item"><a title="Download and fork the YUI project on GitHub" href="http://github.com/yui">YUI on Github</a></li><li class="item"><a title="The Yahoo! User Interface Blog" href="http://yuiblog.com">YUI Blog (external)</a></li><li class="sect">YUI 3 Core - Examples</li><li class="item"><a title="YUI Global Object - Functional Examples" href="../../examples/yui/index.html">YUI Global Object</a></li><li class="item"><a title="Event - Functional Examples" href="../../examples/event/index.html">Event</a></li><li class="item"><a title="Node - Functional Examples" href="../../examples/node/index.html">Node</a></li><li class="sect">YUI 3 Component Infrastructure - Examples</li><li class="item"><a title="Attribute - Functional Examples" href="../../examples/attribute/index.html">Attribute</a></li><li class="item"><a title="Plugin - Functional Examples" href="../../examples/plugin/index.html">Plugin <img src='http://l.yimg.com/a/i/not/beta_1.gif'></a></li><li class="item"><a title="Widget - Functional Examples" href="../../examples/widget/index.html">Widget <img src='http://l.yimg.com/a/i/not/beta_1.gif'></a></li><li class="sect">YUI 3 Utilities - Examples</li><li class="item"><a title="Animation - Functional Examples" href="../../examples/anim/index.html">Animation</a></li><li class="item"><a title="AsyncQueue - Functional Examples" href="../../examples/async-queue/index.html">AsyncQueue</a></li><li class="item"><a title="Browser History - Functional Examples" href="../../examples/history/index.html">Browser History</a></li><li class="item"><a title="Cache - Functional Examples" href="../../examples/cache/index.html">Cache</a></li><li class="item"><a title="Cookie - Functional Examples" href="../../examples/cookie/index.html">Cookie</a></li><li class="item"><a title="DataSchema - Functional Examples" href="../../examples/dataschema/index.html">DataSchema <img src='http://l.yimg.com/a/i/not/beta_1.gif'></a></li><li class="item"><a title="DataSource - Functional Examples" href="../../examples/datasource/index.html">DataSource <img src='http://l.yimg.com/a/i/not/beta_1.gif'></a></li><li class="item"><a title="DataType - Functional Examples" href="../../examples/datatype/index.html">DataType <img src='http://l.yimg.com/a/i/not/beta_1.gif'></a></li><li class="item"><a title="Drag &amp; Drop - Functional Examples" href="../../examples/dd/index.html">Drag &amp; Drop</a></li><li class="item"><a title="Get - Functional Examples" href="../../examples/get/index.html">Get</a></li><li class="item"><a title="ImageLoader - Functional Examples" href="../../examples/imageloader/index.html">ImageLoader</a></li><li class="selected "><a title="IO - Functional Examples" href="../../examples/io/index.html">IO</a></li><li class="item"><a title="JSON (JavaScript Object Notation) - Functional Examples" href="../../examples/json/index.html">JSON</a></li><li class="item"><a title="Stylesheet - Functional Examples" href="../../examples/stylesheet/index.html">Stylesheet</a></li><li class="sect">YUI 3 Widgets - Examples</li><li class="item"><a title="Overlay - Functional Examples" href="../../examples/overlay/index.html">Overlay <img src='http://l.yimg.com/a/i/not/beta_1.gif'></a></li><li class="item"><a title="Slider - Functional Examples" href="../../examples/slider/index.html">Slider <img src='http://l.yimg.com/a/i/not/beta_1.gif'></a></li><li class="sect">YUI 3 Node Plugins - Examples</li><li class="item"><a title="FocusManager Node Plugin - Functional Examples" href="../../examples/node-focusmanager/index.html">FocusManager Node Plugin <img src='http://l.yimg.com/a/i/not/beta_1.gif'></a></li><li class="item"><a title="MenuNav Node Plugin - Functional Examples" href="../../examples/node-menunav/index.html">MenuNav Node Plugin <img src='http://l.yimg.com/a/i/not/beta_1.gif'></a></li><li class="sect">YUI 3 CSS - Examples</li><li class="item"><a title="YUI CSS Reset - Functional Examples" href="../../examples/cssreset/index.html">CSS Reset</a></li><li class="item"><a title="YUI Fonts - Functional Examples" href="../../examples/cssfonts/index.html">CSS Fonts</a></li><li class="item"><a title="YUI Base - Functional Examples" href="../../examples/cssbase/index.html">CSS Base</a></li><li class="sect">YUI 3 Developer Tools - Examples</li><li class="item"><a title="Console - Functional Examples" href="../../examples/console/index.html">Console <img src='http://l.yimg.com/a/i/not/beta_1.gif'></a></li><li class="item"><a title="Console Filters Plugin- Functional Examples" href="../../examples/console-filters/index.html">Plugin.ConsoleFilters <img src='http://l.yimg.com/a/i/not/beta_1.gif'></a></li><li class="item"><a title="Profiler - Functional Examples" href="../../examples/profiler/index.html">Profiler</a></li><li class="item"><a title="Test - Functional Examples" href="../../examples/test/index.html">Test</a></li><li class="sect">Other Useful YUI 3 Resources</li><li class="item"><a title="Answers to Frequently Asked Questions about the YUI Library" href="http://developer.yahoo.com/yui/articles/faq/">YUI FAQ (external)</a></li><li class="item"><a title="Yahoo!'s philosophy of Graded Browser Support" href="http://developer.yahoo.com/yui/articles/gbs/">Graded Browser Support (external)</a></li><li class="item"><a title="Videos and podcasts from the YUI Team and from the Yahoo! frontend engineering community." href="http://developer.yahoo.com/yui/theater/">YUI Theater (external)</a></li></ul>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   517
</div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   518
</div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   519
	</div><!--closes bd-->
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   520
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   521
	<div id="ft">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   522
        <p class="first">Copyright &copy; 2009 Yahoo! Inc. All rights reserved.</p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   523
        <p><a href="http://privacy.yahoo.com/privacy/us/devel/index.html">Privacy Policy</a> - 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   524
            <a href="http://docs.yahoo.com/info/terms/">Terms of Service</a> - 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   525
            <a href="http://docs.yahoo.com/info/copyright/copyright.html">Copyright Policy</a> - 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   526
            <a href="http://careers.yahoo.com/">Job Openings</a></p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   527
	</div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   528
</div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   529
<script language="javascript"> 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   530
var yuiConfig = {base:"../../build/", timeout: 10000};
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   531
</script>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   532
<script src="../../assets/syntax.js"></script>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   533
<script src="../../assets/dpSyntaxHighlighter.js"></script>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   534
<script language="javascript"> 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   535
dp.SyntaxHighlighter.HighlightAll('code'); 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   536
</script>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   537
</body>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   538
</html>