/** * Returns a singleton reference of this class. * * @author Stefan Herndler * @since 1.0.0 * @return WPT_WPTemplate */ public static function singleton() { // initialize singleton if first call if (!self::$a_obj_Singleton instanceof WBR_Wow_Bnet_Rooster) { self::$a_obj_Singleton = new self(); } // return the singleton of this class return self::$a_obj_Singleton; }
<?php /* Plugin Name: WoW Bnet Rooster Plugin URI: http://URI_Of_Page_Describing_Plugin_and_Updates Description: A brief description of the Plugin. Version: 1.0 Author: Sebastian Will Author URI: http://URI_Of_The_Plugin_Author License: GPL2 Text Domain: wp_template_textdomain Domain Path: /languages */ // check if WordPress core already loaded (security feature to avoid accessing the plugin directly) if (!defined('ABSPATH')) { die('No script kiddies please!'); } // require the main entry point of this WordPress plugin require_once dirname(__FILE__) . '/php/classes/wow-bnet-rooster.php'; // runs the application WBR_Wow_Bnet_Rooster::singleton()->run();
/** * Task of an example short code. * * @author Stefan Herndler * @since 1.0.0 * @param array $p_arr_Parameters Optional additional parameters of the short code. * @return string */ protected function GetCompleteRooster(array $p_arr_Parameters = []) { //$json = WBR_Wow_Bnet_Rooster::queryBattleNet(); $rooster = WBR_Wow_Bnet_Rooster::queryRooster(); //$rooster = json_decode($json); $ignore_ranks = explode(',', WBR_CONFIG_IGNORE_RANKS); // error codes from WBR_Wow_Bnet_Rooster::queryBattleNet() are not json responses, so we can check if everything is workout out smoothly if (!$rooster) { return $json; } $members = array(); // traverse the rooster to clean up unneccessry information foreach ($rooster->members as $member) { if (!in_array($member->rank, $ignore_ranks)) { $char = array('name' => $member->character->name, 'race' => $member->character->race, 'gender' => $member->character->gender, 'level' => $member->character->level, 'class' => $member->character->class, 'thumbnail' => $member->character->thumbnail, 'spec' => $member->character->spec->name, 'role' => $member->character->spec->role, 'rank' => $member->rank); array_push($members, $char); } } $members = $this->array_sort($members, 'rank'); // traverse the rooster for output $output_per_rank = '<div class="wbr_rank"> <h1 class="wbr_rank_heading"> %s </h1> %s </div>'; // thumbail, name, level, race, class, rank $output_per_character = '<div class="wbr_character"><img class="rooster-thumbnail icon-medium rounded" src="%s" /><a href="%s" target="_blank"><strong>%s</strong></a><br />%s, %s, %s<br />%s</div>'; $t_rank = 0; $t_output = ""; $t_rank_output = ""; foreach ($members as $member) { // if we got a switch in rank... if ($member['rank'] > $t_rank) { $t_output .= sprintf($output_per_rank, WBR_get_rank($t_rank), $t_rank_output); // re-init $t_rank = $member["rank"]; $t_rank_output = ""; } $t_armory = WBR_CONFIG_ARMORY_HOST . strtolower(rawurlencode(WBR_CONFIG_QUERY_SERVER)) . '/' . rawurlencode($member["name"]) . '/advanced'; $t_rank_output .= sprintf($output_per_character, WBR_CONFIG_BATTLE_NET_RENDER_PATH . $member["thumbnail"], $t_armory, $member["name"], $member["level"], WBR_get_race($member["race"]), WBR_get_class($member["class"]), WBR_get_role($member["role"])); } return $t_output; return var_dump($members); }