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; }
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; }
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; }