public function LatestTweetsList($limit = '5') { $conf = SiteConfig::current_site_config(); if (empty($conf->TwitterName) || empty($conf->TwitterConsumerKey) || empty($conf->TwitterConsumerSecret) || empty($conf->TwitterAccessToken) || empty($conf->TwitterAccessTokenSecret)) { return new ArrayList(); } $cache = SS_Cache::factory('LatestTweets_cache'); if (!($results = unserialize($cache->load(__FUNCTION__)))) { $results = new ArrayList(); require_once dirname(__FILE__) . '/tmhOAuth/tmhOAuth.php'; require_once dirname(__FILE__) . '/tmhOAuth/tmhUtilities.php'; $tmhOAuth = new tmhOAuth(array('consumer_key' => $conf->TwitterConsumerKey, 'consumer_secret' => $conf->TwitterConsumerSecret, 'user_token' => $conf->TwitterAccessToken, 'user_secret' => $conf->TwitterAccessTokenSecret, 'curl_ssl_verifypeer' => false)); $code = $tmhOAuth->request('GET', $tmhOAuth->url('1.1/statuses/user_timeline'), array('screen_name' => $conf->TwitterName, 'count' => $limit)); $tweets = $tmhOAuth->response['response']; $json = new JSONDataFormatter(); if (($arr = $json->convertStringToArray($tweets)) && is_array($arr) && isset($arr[0]['text'])) { foreach ($arr as $tweet) { try { $here = new DateTime(SS_Datetime::now()->getValue()); $there = new DateTime($tweet['created_at']); $there->setTimezone($here->getTimezone()); $date = $there->Format('Y-m-d H:i:s'); } catch (Exception $e) { $date = 0; } $results->push(new ArrayData(array('Text' => nl2br(tmhUtilities::entify_with_options($tweet, array('target' => '_blank'))), 'Date' => SS_Datetime::create_field('SS_Datetime', $date)))); } } $cache->save(serialize($results), __FUNCTION__); } return $results; }
function asJSON() { $json = new JSONDataFormatter(); $pictures = array(); foreach ($this->SortedPictures() as $pic) { $pictures[] = $json->convertDataObjectToJSONObject($pic); } return array('page' => $json->convertDataObjectToJSONObject($this), 'pictures' => $pictures); }
public function doGetProperties(SS_HTTPRequest $request) { $range = $request->getVar('range'); $list = $this->PropertyList()->filter(array('Latitude:LessThan' => floatval($range[0]), 'Latitude:GreaterThan' => floatval($range[2]), 'Longitude:LessThan' => floatval($range[1]), 'Longitude:GreaterThan' => floatval($range[3]))); $json = JSONDataFormatter::create()->convertDataObjectSet($list); return $json; }
public function testJSONDataFormatter() { $formatter = new JSONDataFormatter(); $editor = $this->objFromFixture('Member', 'editor'); $user = $this->objFromFixture('Member', 'user'); $this->assertEquals($formatter->convertDataObject($editor, array("FirstName", "Email")), '{"FirstName":"Editor","Email":"*****@*****.**"}', "Correct JSON formatting with field subset"); $set = DataObject::get("Member", sprintf('"Member"."ID" IN (%s)', implode(',', array($editor->ID, $user->ID))), '"Email" ASC'); $this->assertEquals($formatter->convertDataObjectSet($set, array("FirstName", "Email")), '{"totalSize":null,"items":[{"FirstName":"Editor","Email":"*****@*****.**"},{"FirstName":"User","Email":"*****@*****.**"}]}', "Correct JSON formatting on a dataobjectset with field filter"); }
function DeploymentsAsJSON() { $Deployments = Deployment::get(); $f = new JSONDataFormatter(); echo $f->convertDataObjectSet($Deployments); }