static function add_round($p) { global $wpdb; $data = \WP_Clanwars\Utils::extract_args($p, array('match_id' => 0, 'group_n' => 0, 'map_id' => 0, 'tickets1' => 0, 'tickets2' => 0)); if ($wpdb->insert(self::table(), $data, array('%d', '%d', '%d', '%d', '%d'))) { $insert_id = $wpdb->insert_id; return $insert_id; } return false; }
function widget($args, $instance) { wp_enqueue_script('wp-clanwars-tabs'); extract($args); $now = Utils::current_time_fixed('timestamp'); $instance = wp_parse_args((array) $instance, $this->default_settings); $title = apply_filters('widget_title', empty($instance['title']) ? __('ClanWars', WP_CLANWARS_TEXTDOMAIN) : $instance['title']); $matches = array(); $games = array(); $options = array('id' => empty($instance['visible_games']) ? 'all' : $instance['visible_games'], 'orderby' => 'title', 'order' => 'asc'); $_games = \WP_Clanwars\Games::get_game($options); $from_date = 0; if (isset($this->newer_than_options[$instance['hide_older_than']])) { $age = (int) $this->newer_than_options[$instance['hide_older_than']]['value']; if ($instance['hide_older_than'] === 'custom') { // custom $age = (int) $instance['custom_hide_duration'] * self::ONE_DAY; if ($age > 0) { $from_date = $now - $age; } } else { if ($age > 0) { // 0 means show all matches $from_date = $now - $age; } } } foreach ($_games as $game) { $options = array('from_date' => $from_date, 'game_id' => $game->id, 'limit' => $instance['show_limit'], 'order' => 'desc', 'orderby' => 'date', 'sum_tickets' => true); $matchResult = \WP_Clanwars\Matches::get_match($options); if ($matchResult->count()) { $games[] = $game; $matches = array_merge($matches, $matchResult->getArrayCopy()); } } usort($matches, array($this, '_sort_games')); ?> <?php echo $before_widget; ?> <?php if ($title && !$instance['hide_title']) { echo $before_title . $title . $after_title; } ?> <ul class="clanwar-list<?php if ($instance['display_game_icon']) { echo ' shows-game-icon'; } ?> "> <?php if (sizeof($games) > 1) { ?> <li> <ul class="tabs"> <?php $obj = new stdClass(); $obj->id = 0; $obj->title = __('All', WP_CLANWARS_TEXTDOMAIN); $obj->abbr = __('All'); $obj->icon = 0; array_unshift($games, $obj); for ($i = 0; $i < sizeof($games); $i++) { $game = $games[$i]; $link = $game->id == 0 ? 'all' : 'game-' . $game->id; ?> <li<?php if ($i == 0) { echo ' class="selected"'; } ?> ><a href="#<?php echo $link; ?> " title="<?php echo esc_attr($game->title); ?> "><?php echo esc_html($game->abbr); ?> </a></li> <?php } ?> </ul> </li> <?php } ?> <?php foreach ($matches as $i => $match) { $is_upcoming = false; $t1 = $match->team1_tickets; $t2 = $match->team2_tickets; $wld_class = $t1 == $t2 ? 'draw' : ($t1 > $t2 ? 'win' : 'loss'); $date = mysql2date(get_option('date_format') . ', ' . get_option('time_format'), $match->date); $timestamp = mysql2date('U', $match->date); $game_icon = wp_get_attachment_url($match->game_icon); $is_upcoming = $timestamp > $now; $is_playing = $now > $timestamp && $now < $timestamp + 3600 && ($t1 == 0 && $t2 == 0); $item_classes = ['clanwar-item', 'game-' . $match->game_id]; if ($i % 2 != 0) { $item_classes[] = 'alt'; } ?> <li class="<?php esc_attr_e(join(' ', $item_classes)); ?> "> <?php if ($is_upcoming) { ?> <div class="upcoming"><?php _e('Upcoming', WP_CLANWARS_TEXTDOMAIN); ?> </div> <?php } elseif ($is_playing) { ?> <div class="playing"><?php _e('Playing', WP_CLANWARS_TEXTDOMAIN); ?> </div> <?php } else { ?> <div class="scores <?php echo $wld_class; ?> "><?php echo sprintf(__('%d:%d', WP_CLANWARS_TEXTDOMAIN), $t1, $t2); ?> </div> <?php } ?> <div class="opponent-team"> <?php if ($instance['display_game_icon'] && $game_icon !== false) { ?> <img src="<?php echo $game_icon; ?> " alt="<?php echo esc_attr($match->game_title); ?> " class="icon" /> <?php } ?> <?php $team1_flag = \WP_Clanwars\Utils::get_country_flag($match->team1_country); $team2_flag = \WP_Clanwars\Utils::get_country_flag($match->team2_country); if ($instance['display_both_teams']) { $team_title = sprintf('%s %s vs. %s %s', $team1_flag, esc_html($match->team1_title), $team2_flag, esc_html($match->team2_title)); } else { $team_title = sprintf('%s %s', $team2_flag, esc_html($match->team2_title)); } if ($match->post_id != 0) { echo sprintf('<a href="%s" title="%s">%s</a>', get_permalink($match->post_id), esc_attr($match->title), $team_title); } else { echo $team_title; } ?> </div> <div class="date"><?php echo $date; ?> </div> </li> <?php } ?> </ul> <?php echo $after_widget; ?> <?php }
static function add_map($options) { global $wpdb; $defaults = array('title' => '', 'screenshot' => 0, 'game_id' => 0); $data = \WP_Clanwars\Utils::extract_args($options, $defaults); if ($wpdb->insert(self::table(), $data, array('%s', '%d', '%d'))) { return $wpdb->insert_id; } return false; }
function column_team2($item) { return \WP_Clanwars\Utils::get_country_flag($item->team2_country) . ' ' . $item->team2_title; }
function on_import_browse() { $query_args = Utils::extract_args(stripslashes_deep($_GET), array('q' => '')); $logged_into_cloud = CloudAPI::is_logged_in(); $cloud_account = CloudAPI::get_user_info(); $search_query = trim((string) $query_args['q']); $installed_games = \WP_Clanwars\Games::get_game('')->getArrayCopy(); $store_ids = array_filter(array_map(function ($game) { return $game->store_id; }, $installed_games)); $active_tab = ''; $install_action = 'wp-clanwars-import'; if (empty($search_query)) { $api_response = CloudAPI::get_popular(); $active_tab = 'popular'; } else { $api_response = CloudAPI::search($search_query); $active_tab = 'search'; } $api_games = array(); if (!is_wp_error($api_response)) { array_walk($api_response, function (&$game) use($store_ids) { $game->is_installed = in_array($game->_id, $store_ids); }); $api_games = $api_response; } else { $api_error_message = $api_response->get_error_message(); } $view = new View('import_browse'); $context = compact('api_games', 'api_error_message', 'search_query', 'active_tab', 'install_action', 'logged_into_cloud', 'cloud_account'); wp_enqueue_script('wp-clanwars-game-browser'); wp_enqueue_script('wp-clanwars-login'); $view->render($context); }
static function add_game($options) { global $wpdb; $defaults = array('title' => '', 'abbr' => '', 'icon' => 0, 'store_id' => ''); $data = \WP_Clanwars\Utils::extract_args($options, $defaults); if ($wpdb->insert(self::table(), $data, array('%s', '%s', '%d', '%s'))) { return $wpdb->insert_id; } return false; }
static function add_match($p) { global $wpdb; $data = \WP_Clanwars\Utils::extract_args($p, array('title' => '', 'date' => \WP_Clanwars\Utils::current_time_fixed('timestamp', 0), 'post_id' => 0, 'team1' => 0, 'team2' => 0, 'game_id' => 0, 'match_status' => 0, 'description' => '', 'external_url' => '')); if ($wpdb->insert(self::table(), $data, array('%s', '%s', '%d', '%d', '%d', '%d', '%s', '%s'))) { $insert_id = $wpdb->insert_id; return $insert_id; } return false; }
function column_country($item) { return \WP_Clanwars\Utils::get_country_flag($item->country) . ' ' . \WP_Clanwars\Utils::get_country_title($item->country); }
static function add_team($args) { global $wpdb; $defaults = array('title' => '', 'logo' => 0, 'country' => '', 'home_team' => 0); $data = \WP_Clanwars\Utils::extract_args($args, $defaults); if ($wpdb->insert(self::table(), $data, array('%s', '%d', '%s', '%d'))) { $insert_id = $wpdb->insert_id; if ($data['home_team']) { self::set_hometeam($insert_id); } return $insert_id; } return false; }
static function html_country_select_helper($p = array(), $print = true) { $all_countries = self::all_countries(); extract(\WP_Clanwars\Utils::extract_args($p, array('select' => '', 'name' => '', 'id' => '', 'class' => '', 'show_popular' => false))); ob_start(); $attrs = array(); if (!empty($id)) { $attrs[] = 'id="' . esc_attr($id) . '"'; } if (!empty($name)) { $attrs[] = 'name="' . esc_attr($name) . '"'; } if (!empty($class)) { $attrs[] = 'class="' . esc_attr($class) . '"'; } $attrstr = implode(' ', $attrs); if (!empty($attrstr)) { $attrstr = ' ' . $attrstr; } echo '<select' . $attrstr . '>'; if ($show_popular) { $popular = \WP_Clanwars\Teams::most_popular_countries(); if (!empty($popular)) { foreach ($popular as $i => $data) { $abbr = $data['country']; $title = isset($all_countries[$abbr]) ? $all_countries[$abbr] : $abbr; echo '<option value="' . esc_attr($abbr) . '">' . esc_html($title) . '</option>'; } echo '<optgroup label="-----------------" style="font-family: monospace;"></optgroup>'; } } // copy array with array_merge so we don't sort global array $sorted_countries = array_merge(array(), $all_countries); asort($sorted_countries); foreach ($sorted_countries as $abbr => $title) { echo '<option value="' . esc_attr($abbr) . '"' . selected($abbr, $select, false) . '>' . esc_html($title) . '</option>'; } echo '</select>'; $output = ob_get_clean(); if ($print) { echo $output; return; } return $output; }