コード例 #1
0
ファイル: shortcodes.php プロジェクト: bretonics/wp-github
/**
 * Repositories shortcode.
 * List repositories as a simple li
 *
 * @param $atts
 * @return string
 */
function ghrepos_shortcode($atts)
{
    $a = shortcode_atts(array('username' => get_option('wpgithub_defaultuser', 'seinoxygen'), 'limit' => '5'), $atts);
    // Init the cache system.
    $cache = new WpGithubCache();
    // Set custom timeout in seconds.
    $cache->timeout = get_option('wpgithub_cache_time', 600);
    $repositories = $cache->get($a['username'] . '.repositories.json');
    if ($repositories == NULL) {
        $github = new Github($a['username']);
        $repositories = $github->get_repositories();
        $cache->set($a['username'] . '.repositories.json', $repositories);
    }
    if (is_array($repositories)) {
        $repositories = array_slice($repositories, 0, $a['limit']);
    }
    $html = '<ul class="wp-github wpg-repos">';
    foreach ($repositories as $repo) {
        $html .= '<li><a target="_blank" href="' . $repo->html_url . '" title="' . $repo->description . '">' . $repo->name . '</a></li>';
    }
    $html .= '</ul>';
    return $html;
}
コード例 #2
0
 function widget($args, $instance)
 {
     extract($args);
     $title = $this->get_title($instance);
     $username = $this->get_username($instance);
     $project_count = $this->get_project_count($instance);
     $show_parent = $this->get_show_parent($instance);
     echo $before_widget;
     echo $before_title . $title . $after_title;
     // Init the cache system.
     $cache = new Cache();
     // Set custom timeout in seconds.
     $cache->timeout = get_option('wpgithub_cache_time', 600);
     $repositories = $cache->get($username . '.repositories.json');
     if ($repositories == null) {
         $github = new Github($username);
         $repositories = $github->get_repositories();
         $cache->set($username . '.repositories.json', $repositories);
     }
     if ($repositories == null || count($repositories) == 0) {
         echo $username . ' does not have any public repositories.';
     } else {
         $repositories = array_slice($repositories, 0, $project_count);
         echo '<ul>';
         foreach ($repositories as $repository) {
             echo '<li><a href="' . $repository->html_url . '" title="' . $repository->description . '">' . $repository->name . '</a>';
             if ((int) $repository->fork && $show_parent) {
                 $parent_repository = $cache->get($username . '.' . $repository->name . '.repositories.json');
                 if ($parent_repository == null) {
                     if (!isset($github)) {
                         $github = new Github($username);
                     }
                     $parent_repository = $github->get_parent_repository($repository->name);
                     $cache->set($username . '.' . $repository->name . '.repositories.json', array($parent_repository));
                 }
                 if (is_array($parent_repository)) {
                     $parent_repository = end($parent_repository);
                 }
                 echo '<span class="forked_from">forked from ';
                 echo '<a href="' . $parent_repository->html_url . '">' . $parent_repository->full_name . '</a>';
                 echo '</span>';
             }
             echo '</li>';
         }
         echo '</ul>';
     }
     echo $after_widget;
 }
コード例 #3
0
ファイル: widgets.php プロジェクト: bretonics/wp-github
 function widget($args, $instance)
 {
     extract($args);
     $title = $this->get_title($instance);
     $username = $this->get_username($instance);
     $project_count = $this->get_project_count($instance);
     echo $args['before_widget'];
     echo $args['before_title'] . $title . $args['after_title'];
     // Init the cache system.
     $cache = new WpGithubCache();
     // Set custom timeout in seconds.
     $cache->timeout = get_option('wpgithub_cache_time', 600);
     $repositories = $cache->get($username . '.repositories.json');
     if ($repositories == NULL) {
         $github = new Github($username);
         $repositories = $github->get_repositories();
         $cache->set($username . '.repositories.json', $repositories);
     }
     if ($repositories == NULL || count($repositories) == 0) {
         echo $username . ' does not have any public repositories.';
     } else {
         $repositories = array_slice($repositories, 0, $project_count);
         echo '<ul>';
         foreach ($repositories as $repository) {
             echo '<li><a target="_blank" href="' . $repository->html_url . '" title="' . $repository->description . '">' . $repository->name . '</a></li>';
         }
         echo '</ul>';
     }
     echo $args['after_widget'];
 }