/**
  * 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();
Esempio n. 3
0
 /**
  * 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);
 }