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 
    }
Exemple #3
0
 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;
 }
Exemple #10
0
 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;
 }