/** * 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; }
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; }
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']; }