'', 'size' => '200', 'default' => '', 'alt' => '' ), $atts)); if( empty($email) ) return ''; $output = get_avatar($email, $size, $default, $alt); return $output; } add_shortcode('gravatar', 'danix_gravatar'); /** * The download button shortcode * * @param url $link link address. * @param string $linkname text that will be displayed by the button. * @return string HTML the link tag that will be rendered to the page. * */ function danix_download_button( $atts ) { extract(shortcode_atts(array( 'link' => '', 'linkname' => '' ), $atts)); if ( empty($link) ) return ''; $output = sprintf( '%s', $link, $linkname ); return $output; } add_shortcode('download', 'danix_download_button'); /** * The google analytics code * */ function danix_google_anal() {?> '640', "height" => '480', "src" => '' ), $atts)); return ''; } add_shortcode("googlemaps", "danix_gmaps"); function danix_get_plugins_stats() { $url = 'https://api.wordpress.org/plugins/info/1.0/'; $fields = array( 'downloaded' => true, 'rating' => false, 'description' => false, 'short_description' => false, 'donate_link' => false, 'tags' => false, 'sections' => false, 'homepage' => false, 'added' => false, 'last_updated' => false, 'compatibility' => false, 'tested' => false, 'requires' => false, 'downloadlink' => false, ); $args = (object) array( 'author' => 'danixland', 'fields' => $fields ); $request = array( 'action' => 'query_plugins', 'timeout' => 15, 'request' => serialize( $args) ); $response = wp_remote_post( $url, array( 'body' => $request ) ); $plugins_info = unserialize( $response['body'] ); $result = array(); $total_dl = ''; if ( isset( $plugins_info ) ) { # let's build our array of data to return foreach ($plugins_info->plugins as $plugin) { $pl_name = $plugin->slug; $pl_dirlink = 'https://wordpress.org/plugins/' . $pl_name; $pl_download = $plugin->download_link; $pl_downloaded = $plugin->downloaded; $pl_voters = $plugin->num_ratings; $pl_stars = $plugin->ratings; $avg_vote = ($pl_stars[1] + $pl_stars[2] * 2 + $pl_stars[3] * 3 + $pl_stars[4] * 4 + $pl_stars[5] * 5) / $pl_voters; $pl_avg_vote = ( ! is_int($avg_vote) ? 0 : $avg_vote ); $result[$pl_name] = array( 'dir_link' => $pl_dirlink, 'dl_link' => $pl_download, 'downloaded' => $pl_downloaded, 'voters' => $pl_voters, 'avg_rating' => $pl_avg_vote ); $total_dl += $pl_downloaded; } $result['total_plugins'] = count($plugins_info->plugins); $result['total_downloads'] = $total_dl; return $result; } return array(); } // Execute cron function danix_save_plugins_stats() { $plugins = danix_get_plugins_stats(); update_option( 'danix_plugins_stats', $plugins ); } add_action( 'danix_save_plugins_stats', 'danix_save_plugins_stats' ); // Schedule cron if ( ! wp_next_scheduled( 'danix_save_plugins_stats' ) ) : wp_schedule_event( 1407110400, 'daily', 'danix_save_plugins_stats' ); // 1407110400 is 08 / 4 / 2014 @ 0:0:0 UTC endif; /** * The dotOrg plugins stats shortcode * * @param url $link link address. * @param string $linkname text that will be displayed by the button. * @return string HTML the link tag that will be rendered to the page. * */ function danix_display_plugins_stats() { $option_stats = get_option('danix_plugins_stats'); $plugins = ( false === $option_stats ? danix_get_plugins_stats() : $option_stats ); $average = ''; foreach ($plugins as $plugin) { $average += $plugin['avg_rating']; } $average = $average / $plugins['total_plugins']; ?>

$data) { if (is_array($data) ) : ?>