function testGetHttps_invalid_noVerify()
 {
     $result = civicrm_api('Setting', 'create', array('version' => 3, 'verifySSL' => FALSE));
     $this->assertAPISuccess($result);
     list($status, $data) = $this->client->get(self::SELF_SIGNED_HTTPS_URL);
     $this->assertEquals(CRM_Utils_HttpClient::STATUS_OK, $status);
     $this->assertRegExp(self::SELF_SIGNED_HTTPS_REGEX, $data);
 }
 /**
  * Download document from URL and parse as JSON.
  *
  * @return NULL|array
  *   parsed JSON
  */
 public function fetchDocument()
 {
     list($status, $json) = $this->client->get($this->getRenderedUrl());
     if ($status != CRM_Utils_HttpClient::STATUS_OK || empty($json)) {
         return NULL;
     }
     $doc = json_decode($json, TRUE);
     if (empty($doc) || json_last_error() != JSON_ERROR_NONE) {
         return NULL;
     }
     return $doc;
 }
Beispiel #3
0
 /**
  * Parse rss feed and cache results.
  *
  * @param $url
  *
  * @return array|NULL
  *   array of blog items; or NULL if not available
  */
 public function _getFeed($url)
 {
     $httpClient = new CRM_Utils_HttpClient(self::CHECK_TIMEOUT);
     list($status, $rawFeed) = $httpClient->get($url);
     if ($status !== CRM_Utils_HttpClient::STATUS_OK) {
         return NULL;
     }
     $feed = @simplexml_load_string($rawFeed);
     $blog = array();
     if ($feed && !empty($feed->channel->item)) {
         foreach ($feed->channel->item as $item) {
             $item = (array) $item;
             // Clean up description - remove tags that would break dashboard layout
             $description = preg_replace('#<h[1-3][^>]*>(.+?)</h[1-3][^>]*>#s', '<h4>$1</h4>', $item['description']);
             $item['description'] = strip_tags($description, "<a><p><h4><h5><h6><b><i><em><strong><ol><ul><li><dd><dt><code><pre><br/>");
             $blog[] = $item;
         }
         if ($blog) {
             CRM_Core_BAO_Cache::setItem($blog, 'dashboard', 'blog');
         }
     }
     return $blog;
 }
 /**
  * Get html and cache results.
  *
  * @param $url
  *
  * @return array|NULL
  *   array of gettingStarted items; or NULL if not available
  */
 public function _getHtml($url)
 {
     $httpClient = new CRM_Utils_HttpClient(self::CHECK_TIMEOUT);
     list($status, $html) = $httpClient->get($url);
     if ($status !== CRM_Utils_HttpClient::STATUS_OK) {
         return NULL;
     }
     $tokensList = CRM_Utils_Token::getTokens($html);
     $this->replaceLinkToken($tokensList, $html);
     if ($html) {
         CRM_Core_BAO_Cache::setItem($html, 'dashboard', 'gettingStarted');
     }
     return $html;
 }
Beispiel #5
0
 /**
  * Parse a single rss feed.
  *
  * @param $url
  *
  * @return array|NULL
  *   array of blog items; or NULL if not available
  */
 protected function getFeed($url)
 {
     $httpClient = new CRM_Utils_HttpClient(self::CHECK_TIMEOUT);
     list($status, $rawFeed) = $httpClient->get($url);
     if ($status !== CRM_Utils_HttpClient::STATUS_OK) {
         return NULL;
     }
     return @simplexml_load_string($rawFeed);
 }