Below is a differential between the unpatched vulnerable code and the patched update, for reference.
--- a/joomsport-sports-league-results-management/includes/joomsport-actions.php
+++ b/joomsport-sports-league-results-management/includes/joomsport-actions.php
@@ -1992,7 +1992,7 @@
. ' AND player_id = %d'
. ' AND team_id = %d';
- $wpdb->query($wpdb->prepare($query, array($dur - $kicks[$intK]->kickMin, intval($this->season_id), intval($kicks[$intK]->player_id), intval($kicks[$intK]->team_id))));
+ $wpdb->query($wpdb->prepare($query, array($dur - intval($kicks[$intK]->kickMin), intval($this->season_id), intval($kicks[$intK]->player_id), intval($kicks[$intK]->team_id))));
}
}
}
--- a/joomsport-sports-league-results-management/includes/joomsport-shortcodes.php
+++ b/joomsport-sports-league-results-management/includes/joomsport-shortcodes.php
@@ -302,6 +302,7 @@
$options['limit'] = $args['quantity'];
$options['group_id'] = $args['group_id'];
$options['ordering'] = $eventid.' DESC';
+ $options['groupby'] = 1;
$eventObj = new classJsportEvent($args['event']);
$players = classJsportgetplayers::getPlayersFromTeam($options);
if(count($players['list'])){
--- a/joomsport-sports-league-results-management/includes/joomsport-templates.php
+++ b/joomsport-sports-league-results-management/includes/joomsport-templates.php
@@ -43,7 +43,10 @@
public static function joomsport_content($content){
if($content) return $content;
- if ( !in_the_loop() ) return $content;
+ //if ( !in_the_loop() ) return $content;
+ if (!is_singular() || !in_the_loop()) {
+ return $content;
+ }
global $controllerSportLeague;
remove_filter('has_post_thumbnail', "joomsport_filter_has_team_thumb");
remove_filter('post_thumbnail_html', 'joomsport_filter_pt');
@@ -62,9 +65,24 @@
echo get_the_password_form();
return;
}
+
+ $ob_level = ob_get_level();
+
ob_start();
$controllerSportLeague->execute();
- return ob_get_clean();
+ $joomsport_content = ob_get_clean();
+
+ if (!empty($joomsport_content)) {
+
+ while (ob_get_level() > $ob_level) {
+ ob_end_clean();
+ }
+
+ return $joomsport_content;
+ }
+
+
+
}
return $content;
--- a/joomsport-sports-league-results-management/includes/meta-boxes/joomsport-meta-match.php
+++ b/joomsport-sports-league-results-management/includes/meta-boxes/joomsport-meta-match.php
@@ -1044,6 +1044,16 @@
$is_field = array_merge($is_field,$mstatuses);
}
+ $season_id = get_post_meta($post->ID,'_joomsport_seasonid',true);
+
+ $sportID = JoomSportHelperObjects::getSportType($season_id);
+ $sportTemplClass = JoomSportHelperObjects::getSportTemplate($sportID);
+ if(class_exists($sportTemplClass) && method_exists($sportTemplClass,'filterMatchStatuses')){
+
+ $is_field = $sportTemplClass::filterMatchStatuses($is_field);
+ }
+
+
$m_played = get_post_meta($post->ID,'_joomsport_match_played',true);
$m_date = get_post_meta($post->ID,'_joomsport_match_date',true);
$m_time = get_post_meta($post->ID,'_joomsport_match_time',true);
--- a/joomsport-sports-league-results-management/includes/posts/joomsport-post-match.php
+++ b/joomsport-sports-league-results-management/includes/posts/joomsport-post-match.php
@@ -119,6 +119,7 @@
}
public static function getSubEvents(){
+ if (!current_user_can('manage_options')) { wp_die('-1', 403); }
check_ajax_referer("joomsportajaxnonce", "security");
global $wpdb;
--- a/joomsport-sports-league-results-management/includes/posts/joomsport-post-season.php
+++ b/joomsport-sports-league-results-management/includes/posts/joomsport-post-season.php
@@ -217,6 +217,7 @@
<?php
}
public static function joomsport_season_parentseas(){
+ if (!current_user_can('manage_options')) { wp_die('-1', 403); }
check_ajax_referer("joomsportajaxnonce", "security");
$terms_id = isset($_POST['tournament_id'])?intval($_POST['tournament_id']):0;
@@ -228,6 +229,7 @@
wp_die();
}
public static function joomsport_season_groupedit(){
+ if (!current_user_can('manage_options')) { wp_die('-1', 403); }
check_ajax_referer("joomsportajaxnonce", "security");
global $wpdb;
$group_id = isset($_POST['group_id'])?intval($_POST['group_id']):0;
@@ -243,6 +245,7 @@
wp_die();
}
public static function joomsport_season_genermodal(){
+ if (!current_user_can('manage_options')) { wp_die('-1', 403); }
check_ajax_referer("joomsportajaxnonce", "security");
$group_id = isset($_POST['group_id'])?intval($_POST['group_id']):0;
@@ -251,6 +254,7 @@
wp_die();
}
public static function joomsport_season_grouplist(){
+ if (!current_user_can('manage_options')) { wp_die('-1', 403); }
check_ajax_referer("joomsportajaxnonce", "security");
global $wpdb;
@@ -288,6 +292,7 @@
wp_die();
}
public static function joomsport_season_groupdel(){
+ if (!current_user_can('manage_options')) { wp_die('-1', 403); }
check_ajax_referer("joomsportajaxnonce", "security");
global $wpdb;
@@ -942,6 +947,7 @@
}
public static function joomsport_md_load(){
+ if (!current_user_can('manage_options')) { wp_die('-1', 403); }
check_ajax_referer("joomsportajaxnonce", "security");
$mdId = isset($_POST['mdId'])?intval($_POST['mdId']):0;
--- a/joomsport-sports-league-results-management/includes/posts/joomsport-post-team.php
+++ b/joomsport-sports-league-results-management/includes/posts/joomsport-post-team.php
@@ -145,6 +145,7 @@
<?php
}
public static function joomsport_team_seasonrelated(){
+ if (!current_user_can('manage_options')) { wp_die('-1', 403); }
check_ajax_referer("joomsportajaxnonce", "security");
$season_id = isset($_POST['season_id'])?intval($_POST['season_id']):0;
--- a/joomsport-sports-league-results-management/includes/taxonomies/joomsport-taxonomy-matchday.php
+++ b/joomsport-sports-league-results-management/includes/taxonomies/joomsport-taxonomy-matchday.php
@@ -68,6 +68,7 @@
}
public static function joomsport_mday_savematch(){
+ if (!current_user_can('manage_options')) { wp_die('-1', 403); }
if(isset($_POST['formdata'])){parse_str(sanitize_text_field(wp_unslash($_POST['formdata'])), $output);}
if(isset($output["tag_ID"])){
@@ -78,6 +79,7 @@
wp_die();
}
public static function joomsport_mday_saveknock(){
+ if (!current_user_can('manage_options')) { wp_die('-1', 403); }
if(isset($_POST['formdata'])){parse_str(sanitize_text_field(wp_unslash($_POST['formdata'])), $output);}
if(isset($output["tag_ID"]) && current_user_can('manage_options')){
--- a/joomsport-sports-league-results-management/joomsport.php
+++ b/joomsport-sports-league-results-management/joomsport.php
@@ -3,7 +3,7 @@
Plugin Name: JoomSport
Plugin URI: http://joomsport.com
Description: Sport league plugin
-Version: 5.7.8
+Version: 5.7.9
Author: BearDev
Author URI: http://BearDev.com
License: GPLv3
--- a/joomsport-sports-league-results-management/sportleague/base/wordpress/classes/class-jsport-getplayers.php
+++ b/joomsport-sports-league-results-management/sportleague/base/wordpress/classes/class-jsport-getplayers.php
@@ -146,7 +146,7 @@
$query .= (isset($player_id) && $player_id ? ' AND l.player_id = '.$player_id : '');
$query .= (isset($departed) && $departed!="" ? ' AND l.departed = '.intval($departed) : '');
- if($stdoptions == 'std'){
+ if($stdoptions == 'std' || (isset($groupby) && $groupby)){
$query .= ' GROUP BY l.player_id';
}
@@ -173,7 +173,7 @@
}
$query_count .= (isset($player_id) && $player_id ? ' AND l.player_id = '.$player_id : '');
- if($stdoptions == 'std'){
+ if($stdoptions == 'std' || (isset($groupby) && $groupby)){
$query_count .= ' GROUP BY l.player_id';
}
}
--- a/joomsport-sports-league-results-management/sportleague/base/wordpress/classes/extrafields/class-extrafield-date.php
+++ b/joomsport-sports-league-results-management/sportleague/base/wordpress/classes/extrafields/class-extrafield-date.php
@@ -16,6 +16,8 @@
}
if($ef){
+ $efP = explode(" ", $ef);
+ $ef = $efP[0]??$ef;
switch ($dateage) {
case '1':
return self::calcAge($ef);
--- a/joomsport-sports-league-results-management/sportleague/classes/objects/class-jsport-match.php
+++ b/joomsport-sports-league-results-management/sportleague/classes/objects/class-jsport-match.php
@@ -361,7 +361,7 @@
}
$term_list = get_the_terms($this->id, 'joomsport_matchday');
- if(count($term_list)){
+ if($term_list && count($term_list)){
return $term_list[0]->term_id;
}
}
--- a/joomsport-sports-league-results-management/sportleague/helpers/js-helper-tabs.php
+++ b/joomsport-sports-league-results-management/sportleague/helpers/js-helper-tabs.php
@@ -46,7 +46,7 @@
?>
<li class="nav-item">
- <a data-toggle="tab" href="#<?php echo esc_attr($tabs[$intA]['id']);?>" class="navlink<?php echo (($intA == 0 && !$jscurtab) || ($jscurtab == '#'.$tabs[$intA]['id'])) ? ' active' : ''; ?>">
+ <a data-toggle="tab" href="#<?php echo esc_attr($tabs[$intA]['id']);?>" class="navlink<?php echo (($intA == 0 && !$jscurtab) || ($jscurtab == '#'.$tabs[$intA]['id'])) ? ' active' : ''; ?>" data-target="#<?php echo $tabs[$intA]['id'];?>">
<i class="<?php echo esc_attr($tab_ico);?>" <?php if($tab_icoImg){echo ' style="background:url('.wp_get_attachment_image_url($tab_icoImg,array(24,24),false).'")';}?>></i> <span><?php echo wp_kses_post($tabs[$intA]['title']);
?></span></a></li>
<?php
--- a/joomsport-sports-league-results-management/sportleague/helpers/js-helper.php
+++ b/joomsport-sports-league-results-management/sportleague/helpers/js-helper.php
@@ -248,7 +248,16 @@
}
$m_played = get_post_meta( $match->id, '_joomsport_match_played', true );
- if (in_array($m_played,array(-1,1))) {
+ if(class_exists($sportTemplClass) && method_exists($sportTemplClass,'filterHomeScore')){
+ $args = array("match"=>$match,"home_score"=>$home_score);
+ $home_score = $sportTemplClass::filterHomeScore($args);
+ }
+ if(class_exists($sportTemplClass) && method_exists($sportTemplClass,'filterAwayScore')){
+ $args = array("match"=>$match,"away_score"=>$away_score);
+ $away_score = $sportTemplClass::filterAwayScore($args);
+ }
+
+ if (in_array($m_played,array(-1,1,-10,-11))) {
$text = '';
if(class_exists($sportTemplClass) && method_exists($sportTemplClass,'getScoreFESmall')){
$args = array("match"=>$match,"home_score"=>$home_score,"away_score"=>$away_score);
@@ -304,9 +313,19 @@
$home_score = get_post_meta( $match->id, '_joomsport_home_score', true );
$away_score = get_post_meta( $match->id, '_joomsport_away_score', true );
}
+ $sportID = JoomSportHelperObjects::getSportType($match->season_id);
+ $sportTemplClass = JoomSportHelperObjects::getSportTemplate($sportID);
+ if(class_exists($sportTemplClass) && method_exists($sportTemplClass,'filterHomeScore')){
+ $args = array("match"=>$match,"home_score"=>$home_score);
+ $home_score = $sportTemplClass::filterHomeScore($args);
+ }
+ if(class_exists($sportTemplClass) && method_exists($sportTemplClass,'filterAwayScore')){
+ $args = array("match"=>$match,"away_score"=>$away_score);
+ $away_score = $sportTemplClass::filterAwayScore($args);
+ }
$m_played = get_post_meta( $match->id, '_joomsport_match_played', true );
$jmscore = get_post_meta($match->id, '_joomsport_match_jmscore',true);
- if (in_array($m_played,array(-1,1))) {
+ if (in_array($m_played,array(-1,1,-10,-11))) {
$bonus1 = '';
$bonus2 = '';
$sep = JSCONF_SCORE_SEPARATOR;
--- a/joomsport-sports-league-results-management/sportleague/views/default/season.php
+++ b/joomsport-sports-league-results-management/sportleague/views/default/season.php
@@ -10,7 +10,7 @@
$term_list = get_the_terms($rows->object->ID, 'joomsport_tournament');
$descr = '';
-if(count($term_list)){
+if($term_list && count($term_list)){
$descr = $term_list[0]->description;
}
?>