class DisqusResource in Drupal Most Popular 7
Hierarchy
- class \DisqusResource
Expanded class hierarchy of DisqusResource
File
- modules/
mostpopular_disqus/ disqusapi/ disqusapi.php, line 49
View source
class DisqusResource {
public function __construct($api, $interface = null, $node = null, $tree = array()) {
global $DISQUS_API_INTERFACES;
if (!$interface) {
$interface = $DISQUS_API_INTERFACES;
}
$this->api = $api;
$this->interface = $interface;
$this->node = $node;
if ($node) {
array_push($tree, $node);
}
$this->tree = $tree;
}
public function __get($attr) {
$interface = $this->interface->{$attr};
if (!$interface) {
throw new DisqusInterfaceNotDefined();
}
return new DisqusResource($this->api, $interface, $attr, $this->tree);
}
public function __call($name, $args) {
$resource = $this->interface->{$name};
if (!$resource) {
throw new DisqusInterfaceNotDefined();
}
$kwargs = (array) $args[0];
foreach ((array) $resource->required as $k) {
if (empty($kwargs[$k])) {
throw new Exception('Missing required argument: ' . $k);
}
}
$api = $this->api;
if (empty($kwargs['api_secret'])) {
$kwargs['api_secret'] = $api->key;
}
// emulate a named pop
$version = !empty($kwargs['version']) ? $kwargs['version'] : $api->version;
$format = !empty($kwargs['format']) ? $kwargs['format'] : $api->format;
unset($kwargs['version'], $kwargs['format']);
$url = 'https://' . DISQUS_API_HOST;
$path = '/api/' . $version . '/' . implode('/', $this->tree) . '/' . $name . '.' . $format;
if (!empty($kwargs)) {
if ($resource->method == 'POST') {
$post_data = $kwargs;
}
else {
$post_data = false;
$path .= '?' . dsq_get_query_string($kwargs);
}
}
$response = dsq_urlopen($url . $path, $post_data);
$data = call_user_func($api->formats[$format], $response['data']);
if ($response['code'] != 200) {
throw new DisqusAPIError($data->code, $data->response);
}
return $data->response;
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
DisqusResource:: |
public | function | ||
DisqusResource:: |
public | function | 1 | |
DisqusResource:: |
public | function |