Beispiel #1
0
 protected function processSiteResult($res)
 {
     $obXml = new \CDataXML();
     if ($obXml->loadString($res)) {
         $hostName = $obXml->getTree()->elementsByName('name');
         $hostName = \CBXPunycode::toASCII(ToLower($hostName[0]->textContent()), $e = null);
         if (preg_match("/^https:\\/\\//", $hostName)) {
             $hostName = substr($hostName, 8);
         }
         $this->engineSettings['SITES'][$hostName]['SERVICES'] = array();
         $arLinks = $obXml->getTree()->elementsByName('link');
         foreach ($arLinks as $link) {
             $this->engineSettings['SITES'][$hostName]['SERVICES'][$link->getAttribute('rel')] = $link->getAttribute('href');
         }
         $this->saveSettings();
         return true;
     }
     return false;
 }
Beispiel #2
0
 public function GetCurrentUserFriends($limit, &$next)
 {
     if ($this->access_token === false) {
         return false;
     }
     $http = new HttpClient();
     $http->setHeader('GData-Version', '3.0');
     $http->setHeader('Authorization', 'Bearer ' . $this->access_token);
     $url = static::FRIENDS_URL . '?';
     $limit = intval($limit);
     $next = intval($next);
     if ($limit > 0) {
         $url .= '&max-results=' . $limit;
     }
     if ($next > 0) {
         $url .= '&start-index=' . $next;
     }
     $result = $http->get($url);
     if (!defined("BX_UTF")) {
         $result = CharsetConverter::ConvertCharset($result, "utf-8", LANG_CHARSET);
     }
     if ($http->getStatus() == 200) {
         $obXml = new \CDataXML();
         if ($obXml->loadString($result)) {
             $tree = $obXml->getTree();
             $total = $tree->elementsByName("totalResults");
             $total = intval($total[0]->textContent());
             $limitNode = $tree->elementsByName("itemsPerPage");
             $next += intval($limitNode[0]->textContent());
             if ($next >= $total) {
                 $next = '__finish__';
             }
             $arFriends = array();
             $arEntries = $tree->elementsByName('entry');
             foreach ($arEntries as $entry) {
                 $arEntry = array();
                 $entryChildren = $entry->children();
                 foreach ($entryChildren as $child) {
                     $tag = $child->name();
                     switch ($tag) {
                         case 'category':
                         case 'updated':
                         case 'edited':
                             break;
                         case 'name':
                             $arEntry[$tag] = array();
                             foreach ($child->children() as $subChild) {
                                 $arEntry[$tag][$subChild->name()] = $subChild->textContent();
                             }
                             break;
                         case 'email':
                             if ($child->getAttribute('primary') == 'true') {
                                 $arEntry[$tag] = $child->getAttribute('address');
                             }
                             break;
                         default:
                             $tagContent = $tag == 'link' ? $child->getAttribute('href') : $child->textContent();
                             if ($child->getAttribute('rel')) {
                                 if (!isset($arEntry[$tag])) {
                                     $arEntry[$tag] = array();
                                 }
                                 $arEntry[$tag][preg_replace("/^[^#]*#/", "", $child->getAttribute('rel'))] = $tagContent;
                             } elseif (isset($arEntry[$tag])) {
                                 if (!is_array($arEntry[$tag][0]) || !isset($arEntry[$tag][0])) {
                                     $arEntry[$tag] = array($arEntry[$tag], $tagContent);
                                 } else {
                                     $arEntry[$tag][] = $tagContent;
                                 }
                             } else {
                                 $arEntry[$tag] = $tagContent;
                             }
                     }
                 }
                 if ($arEntry['email']) {
                     $arFriends[] = $arEntry;
                 }
             }
             return $arFriends;
         }
     }
     return false;
 }
Beispiel #3
0
 protected function processResult($res)
 {
     $obXml = new \CDataXML();
     if ($obXml->loadString($res)) {
         $arEntries = $obXml->getTree()->elementsByName('entry');
         $arDomains = array();
         foreach ($arEntries as $entry) {
             $entryChildren = $entry->children();
             $entryData = array('etag' => $entry->getAttribute('etag'));
             foreach ($entryChildren as $child) {
                 $tag = $child->name();
                 switch ($tag) {
                     case 'category':
                         break;
                     case 'content':
                         $entryData[$tag] = $child->getAttribute('src');
                         break;
                     case 'link':
                         if (!isset($entryData[$tag])) {
                             $entryData[$tag] = array();
                         }
                         $entryData[$tag][$child->getAttribute('rel')] = $child->getAttribute('href');
                         break;
                     case 'entryLink':
                         if (!isset($entryData[$tag])) {
                             $entryData[$tag] = array();
                         }
                         $rel = preg_replace("/^[^#]+#/", "", $child->getAttribute('rel'));
                         $entryData[$tag][$rel] = $child->getAttribute('href');
                         break;
                     case 'verification-method':
                         if ($child->getAttribute('type') == 'htmlpage') {
                             $entryData[$tag] = array('in-use' => $child->getAttribute('in-use'), 'file-name' => $child->textContent(), 'file-content' => $child->getAttribute('file-content'));
                         }
                         break;
                     default:
                         $entryData[$tag] = $child->textContent();
                 }
             }
             $url = $entryData['content'];
             if (strlen($url) > 0) {
                 $urlData = parse_url($url);
                 if (isset($urlData['port']) && strlen($urlData['port']) > 0) {
                     $urlData['host'] .= ':' . $urlData['port'];
                 }
                 if (!isset($arDomains[$urlData['host']])) {
                     $arDomains[$urlData['host']] = $entryData;
                 }
             }
         }
         $arExistedDomains = \CSeoUtils::getDomainsList();
         foreach ($arExistedDomains as $domain) {
             if (isset($arDomains[$domain['DOMAIN']])) {
                 if (!is_array($this->engineSettings['SITES'])) {
                     $this->engineSettings['SITES'] = array();
                 }
                 $this->engineSettings['SITES'][$domain['DOMAIN']] = $arDomains[$domain['DOMAIN']];
             }
         }
         $this->saveSettings();
         return $arDomains;
     }
     throw new \Exception('Unexpected query result! ' . $res);
     return false;
 }