В статистике команды есть пункт "Матчи без пропущенных командой мячей".
Задача добавить пункт "Матчи без забитых командой мячей".
Помогите разобраться с PHP.
Что уже сделано:
Для начала сделаем повтор имеющегося пункта статистики. Для этого файле components/com_joomleague/views/teamstats/tmpl/default_stats.php копируем код расположенный с 258 по 265 строку.
<tr class="sectiontableentry1">
<td class="statlabel"><?php echo JText::_('COM_JOOMLEAGUE_TEAMSTATS_NO_GOALS_AGAINST'); ?></td>
<td class="statvalue"><?php echo $this->nogoals_against->totalzero; ?></td>
<?php if ( $this->config['home_away_stats'] ): ?>
<td class="statvalue"><?php echo empty($this->nogoals_against->homezero)? 0 : $this->nogoals_against->homezero; ?></td>
<td class="statvalue"><?php echo empty($this->nogoals_against->awayzero)? 0 : $this->nogoals_against->awayzero; ?></td>
<?php endif; ?>
</tr>
Меняем в коде "nogoals_against" на "nogoals_for". И вставляем правленный код ниже изначального.
<tr class="sectiontableentry1">
<td class="statlabel"><?php echo JText::_('COM_JOOMLEAGUE_TEAMSTATS_NO_GOALS_FOR'); ?></td>
<td class="statvalue"><?php echo $this->nogoals_for->totalzero; ?></td>
<?php if ( $this->config['home_away_stats'] ): ?>
<td class="statvalue"><?php echo empty($this->nogoals_for->homezero)? 0 : $this->nogoals_for->homezero; ?></td>
<td class="statvalue"><?php echo empty($this->nogoals_for->awayzero)? 0 : $this->nogoals_for->awayzero; ?></td>
<?php endif; ?>
</tr>
Далее в файле /components/com_joomleague/views/teamstats/view.html.php копируем 46 строку
$this->assignRef( 'nogoals_against', $model->getNoGoalsAgainst( ) );
и тоже производим замену "nogoals_against" на "nogoals_for"
Измененную строку вставляем ниже оригинала
$this->assignRef( 'nogoals_for', $model->getNoGoalsFor( ) );
Затем такую же процедуру производим в файле components/com_joomleague/models/teamstats.php
рядом с кодом из строк с 234 по 257
function getNoGoalsAgainst( )
{
if ( (!isset( $this->nogoals_against )) || is_null( $this->nogoals_against ) )
{
$query = ' SELECT '
. ' COUNT( round_id ) AS totalzero, '
. ' SUM( t1.id = '.$this->team->id.' AND team2_result=0 ) AS homezero, '
. ' SUM( t2.id = '.$this->team->id.' AND team1_result=0 ) AS awayzero '
. ' FROM #__joomleague_match as matches '
. ' INNER JOIN #__joomleague_project_team pt1 ON pt1.id = matches.projectteam1_id '
. ' INNER JOIN #__joomleague_team t1 ON t1.id = pt1.team_id '
. ' INNER JOIN #__joomleague_project_team pt2 ON pt2.id = matches.projectteam2_id '
. ' INNER JOIN #__joomleague_team t2 ON t2.id = pt2.team_id '
. ' WHERE pt1.project_id = '.$this->projectid.' '
. ' AND published=1 '
. ' AND alt_decision=0 '
. ' AND ((t1.id = '.$this->team->id.' AND team2_result=0 ) '
. ' OR (t2.id = '.$this->team->id.' AND team1_result=0 ))'
. ' AND (matches.cancel IS NULL OR matches.cancel = 0)'
;
$this->_db->setQuery($query);
$this->nogoals_against = $this->_db->loadObject( );
}
return $this->nogoals_against;
}
Вставляем правленный код:
function getNoGoalsFor( )
{
if ( (!isset( $this->nogoals_for )) || is_null( $this->nogoals_for ) )
{
$query = ' SELECT '
. ' COUNT( round_id ) AS totalzero, '
. ' SUM( t1.id = '.$this->team->id.' AND team2_result=0 ) AS homezero, '
. ' SUM( t2.id = '.$this->team->id.' AND team1_result=0 ) AS awayzero '
. ' FROM #__joomleague_match as matches '
. ' INNER JOIN #__joomleague_project_team pt1 ON pt1.id = matches.projectteam1_id '
. ' INNER JOIN #__joomleague_team t1 ON t1.id = pt1.team_id '
. ' INNER JOIN #__joomleague_project_team pt2 ON pt2.id = matches.projectteam2_id '
. ' INNER JOIN #__joomleague_team t2 ON t2.id = pt2.team_id '
. ' WHERE pt1.project_id = '.$this->projectid.' '
. ' AND published=1 '
. ' AND alt_decision=0 '
. ' AND ((t1.id = '.$this->team->id.' AND team2_result=0 ) '
. ' OR (t2.id = '.$this->team->id.' AND team1_result=0 ))'
. ' AND (matches.cancel IS NULL OR matches.cancel = 0)'
;
$this->_db->setQuery($query);
$this->nogoals_for = $this->_db->loadObject( );
}
return $this->nogoals_for;
}
Таким образом, у нас дважды отобразилась статистика по матчам в которых команда не пропускала.
Теперь надо разобратся в последнем коде и заменить переменные. Для этого требуется помощь знающих людей.