Skip to content

Instantly share code, notes, and snippets.

@iaindooley
Created April 26, 2011 06:19
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save iaindooley/941868 to your computer and use it in GitHub Desktop.
Save iaindooley/941868 to your computer and use it in GitHub Desktop.
Example Decal API request to build a list of Decal plan costs
<?php
require_once('curl_request.class.php');
//update this to point to your install
$url = 'http://www.decalcms.com/index.php?h=DecalApi';
$api_key = '597990c64261faa854805f6366f9dcc4f505ed0e';
//formulate the post fields for the request
//we'll look at the options in detail below
$fields = array('api_key' => $api_key,
't' => 'Home',
'numitems' => '10', //we only want one page per list
);
//send off the request using the CurlRequest class
$xml = simplexml_load_string(CurlRequest::toUrl($url)
->method(CurlRequest::POST)
->postFields($fields)
->execute());
//The Decal home page has 2 types of component:
//
// - Plan Stack
// - Plan Stack Feature
//
// The structure of each of these is fixed in the Decal template
// so we can reliably work with it without exposing ourselves to
// the normal brittleness of screen scraping
foreach($xml->page[0]->xpath('.//component[contains(@name,"Plan stack")]') as $price)
{
$dollars = $price->xpath('.//h3');
$title = $price->xpath('.//h4');
echo $title[0].' costs: '.$dollars[0]->a.'<br />'.PHP_EOL;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment