Example #1
0
 /**
  * Used to search for community plugins using title/description
  * @param array $options
  * @return array|false
  */
 static function searchPluginProjects($options = array())
 {
     // 		$mt = microtime(true);
     $query = elgg_extract('q', $options, '%');
     if (!$query) {
         $query = '%';
     }
     $url = self::getCommunityPageURL() . 'search';
     $url = elgg_http_add_url_query_elements($url, array('q' => $query, 'category' => elgg_extract('category', $options, ''), 'sort' => elgg_extract('sort', $options, 'relevance'), 'order' => elgg_extract('order', $options, 'desc'), 'entity_type' => 'object', 'entity_subtype' => 'plugin_project', 'search_type' => 'entities', 'view' => 'rss', 'limit' => elgg_extract('limit', $options, 10), 'offset' => elgg_extract('offset', $options, 0)));
     list($content, $meta) = srokap_http::getUrlWithMetadata($url);
     // 		var_dump($url);
     // 		var_dump(microtime(true) - $mt);
     return self::handlePluginProjectsRssResult($content);
 }
 /**
  * Warning, it's high cost method. You shouldn't use it multiple times.
  * @return srting|bool URL or false on failure
  */
 public function getDownloadURL()
 {
     $result = false;
     if ($this->getGUID()) {
         $url = srokap_plugin::getCommunityPageURL() . 'export/default/' . $this->getGUID();
         $content = srokap_http::getUrl($url);
         if ($content) {
             //var_dump($content);
             if (preg_match('#recommended_release_guid:\\s*</b>\\s*([0-9]*)#', $content, $matches)) {
                 $result = srokap_plugin::getCommunityPageURL() . 'plugins/download/' . $matches[1];
             }
         }
         //some releases don't have recommented release set..., see http://community.elgg.org/export/default/835357/
         //TODO consider replacing whole logic with this case
         if (!$result) {
             $content = srokap_http::getUrl($this->getURL());
             if ($content) {
                 if (preg_match('#' . srokap_plugin::getCommunityPageURL() . 'plugins/download/([0-9]*)#', $content, $matches)) {
                     $result = srokap_plugin::getCommunityPageURL() . 'plugins/download/' . $matches[1];
                 }
             }
         }
     }
     return $result;
 }
Example #3
0
<?php

admin_gatekeeper();
$url = get_input('url');
$stats = false;
//extract stuff from html page
$content = srokap_http::getUrl($url);
//stats list html from sidebar
$pos = strpos($content, '<ul class="plugin_stats">');
if ($pos) {
    $stats = substr($content, $pos, strpos($content, '</ul>', $pos) - $pos + 5);
}
//thumbnails from header
$pos = strpos($content, '<ul class="elgg-gallery elgg-plugin-screenshots float-alt">');
if ($pos) {
    $rel = 'thumbnails_' . str_replace('.', '_', microtime(true));
    $thumbnails = substr($content, $pos, strpos($content, '</ul>', $pos) - $pos + 5);
    $thumbnails = str_replace('<li>', '<li class="elgg-plugin-screenshot prm ptm">', $thumbnails);
    $thumbnails = str_replace('class="elgg-plugin-screenshot"', 'class="elgg-plugin-screenshot elgg-lightbox-image" rel="' . $rel . '"', $thumbnails);
}
if ($stats) {
    echo '<div class="elgg-plugin-more">';
    echo $thumbnails;
    echo $stats;
    echo '<div class="clearfloat"></div></div>';
} else {
    echo '<p class="elgg-state-error">' . elgg_echo('srokap_plugin_installer:plugin:details_error', array($url)) . '</p>';
}