function _loadEntriesFromWeb($page = 1, $category_name) { $params =& JComponentHelper::getParams('com_wordbridge'); $blogname = $params->get('wordbridge_blog_name'); if (empty($blogname) || !function_exists('curl_init')) { return null; } $isTag = false; $ucategory = urlencode(strtolower($category_name)); $pageParam = ''; if ($page > 1) { $pageParam = '&paged=' . (int) $page; } $url = sprintf('http://%s/?feed=rss2&category_name=%s%s', WordbridgeHelper::fqdnBlogName($blogname), $ucategory, $pageParam); $tagUrl = sprintf('http://%s/?feed=rss2&tag=%s%s', WordbridgeHelper::fqdnBlogName($blogname), $ucategory, $pageParam); $blogInfo = WordbridgeHelper::getBlogByName($blogname); if ($blogInfo['uuid'] && WordbridgeHelper::isTag($blogInfo['uuid'], $category_name)) { $isTag = true; $url = $tagUrl; } $results = WordbridgeHelper::getEntriesFromUrl($url); if (!$isTag && !count($results) && $page <= 1) { if ($blogInfo['uuid']) { WordbridgeHelper::addTag($blogInfo['uuid'], $category_name); } $isTag = true; $results = WordbridgeHelper::getEntriesFromUrl($tagUrl); } return (object) array('isTag' => $isTag, 'entries' => $results); }
function onContentSearch($text, $phrase = '', $ordering = '', $areas = null) { // Need to look up all the menu items that are linked to blogs $results = array(); $text = trim($text); if (empty($text)) { return $results; } if (is_array($areas)) { if (count(array_intersect($areas, array_keys($this->onContentSearchAreas()))) == 0) { return array(); } } // We want to keep an eye on any blogs we've seen before, as // they may be linked in as multiple menus $seenBlogs = array(); $menuIDs = WordbridgeHelper::getWordbridgeMenuIDs(); $app = JFactory::getApplication(); $menu = $app->getMenu(); foreach ($menuIDs as $itemid) { $params = $menu->getParams($itemid); $blog_name = $params->get('wordbridge_blog_name'); if (!$params || $params->get('wordbridge_searchable') == 'no' || empty($blog_name)) { continue; } if (array_key_exists($blog_name, $seenBlogs)) { continue; } $seenBlogs[$blog_name] = 1; // Create a curl request for the search $blogInfo = WordbridgeHelper::getBlogInfo($blog_name, true); if (!$blogInfo) { continue; } $url = sprintf('http://%s/?s=%s&feed=rss2', WordbridgeHelper::fqdnBlogName($blog_name), urlencode($text)); $entries = WordbridgeHelper::getEntriesFromUrl($url); WordbridgeHelper::storeBlogEntries($entries, $blogInfo['uuid']); foreach ($entries as $entry) { $results[] = (object) array('href' => sprintf('index.php?option=com_wordbridge&Itemid=%d&view=entry&p=%d&slug=%s', $itemid, $entry['postid'], urlencode($entry['slug'])), 'title' => $entry['title'], 'section' => JText::_('PLG_SEARCH_WORDBRIDGE_AREA'), 'created' => $entry['date'], 'text' => strip_tags($entry['content'])); } } // Results really should be sorted switch ($ordering) { case 'oldest': usort($results, array('plgSearchWordbridge', '_sortByOldest')); break; case 'alpha': usort($results, array('plgSearchWordbridge', '_sortByName')); break; case 'newest': default: usort($results, array('plgSearchWordbridge', '_sortByNewest')); break; } return $results; }
function _loadEntriesFromWeb($page = 1) { $app = JFactory::getApplication(); $params = $app->getParams(); $blogname = $params->get('wordbridge_blog_name'); if (empty($blogname) || !function_exists('curl_init')) { return false; } $url = WordbridgeHelper::fqdnBlogName($blogname); if (!preg_match("/^https?:\\/\\/.+/", $url)) { $url = sprintf('http://%s', $url); } $url = sprintf('%s/?feed=rss2&paged=%d', $url, (int) $page); $this->_entries = WordbridgeHelper::getEntriesFromUrl($url); return true; }