Skip to main content

This site requires you to update your browser. Your browsing experience maybe affected by not having the most up to date version.

We've moved the forum!

Please use forum.silverstripe.org for any new questions (announcement).
The forum archive will stick around, but will be read only.

You can also use our Slack channel or StackOverflow to ask for help.
Check out our community overview for more options to contribute.

Archive /

Our old forums are still available as a read-only archive.

Moderators: martimiz, Sean, Ed, biapar, Willr, Ingo

Mashup question


Go to End


3 Posts   2413 Views

Avatar
freeyland

Community Member, 22 Posts

9 August 2007 at 10:36pm

Edited: 09/08/2007 11:10pm

I want to integrate the weather from yahoo into my site.
http://xml.weather.yahoo.com/forecastrss?u=C&p=AUXX0118

The problem is that <yweather:condition text="Partly Cloudy" code="30" temp="15" date="Thu, 09 Aug 2007 10:55 am CEST" /> is not imported because of the ':'

Does someone know how to read element with column in SimpleXMLElement?

Is there a way to cash the output?

Avatar
laktek

Google Summer of Code Hacker, 76 Posts

12 August 2007 at 1:01pm

Edited: 12/08/2007 1:02pm

Freeyland, if you want to read namespaced elements (qname) best practice would be to use Xpath. You could try out some query such as ;

$conditions = $xml->xpath("//yweather:condition");

But to make the whole process easy I've made an update to the mashups module which could handle such feeds. You can download the latest build in the trunk of mashups module and try out the following code. This will fetch the attribute values of condition tag in Yahoo Weather feed.

In your controller;

function YahooWeather(){
		$yw = new RestfulService("http://weather.yahooapis.com/forecastrss");
		$params = array(
				"u" => "c",
				"p" => "USIL0225"
			);
		$yw->setQueryString($params);
		$conn = $yw->connect();
		$result = $yw->searchAttributes($conn, "//yweather:condition");
		
		return $result;
	}

and in the template;
[html]
<% control YahooWeather %>
<p>weather conditions for $date<br/>
$text - tempreature -$temp</p>
<% end_control %>
[/html]

Hope this helps :)

>>Is there a way to cash the output?
Currently Mashups module doesn't support caching, but it's something on the road maps for future releases.

Avatar
freeyland

Community Member, 22 Posts

13 August 2007 at 8:43am

Thanx!