Skip to content
31 changes: 24 additions & 7 deletions components/com_content/Model/ArticlesModel.php
Original file line number Diff line number Diff line change
Expand Up @@ -480,18 +480,35 @@ function ($data) use ($db)
switch ($dateFiltering)
{
case 'range':
$startDateRange = $db->quote($this->getState('filter.start_date_range'));
$endDateRange = $db->quote($this->getState('filter.end_date_range'));
$query->where(
'(' . $dateField . ' >= ' . $startDateRange . ' AND ' . $dateField .
' <= ' . $endDateRange . ')'
);
$startDateRange = $db->quote($this->getState('filter.start_date_range', ''));
$endDateRange = $db->quote($this->getState('filter.end_date_range', ''));

$startDateRangeUsed = !empty($startDateRange);
$endDateRangeUsed = !empty($endDateRange);

if ($startDateRangeUsed && $endDateRangeUsed)
{
$query->where(
'(' . $dateField . ' IS NOT NULL AND ' . $dateField . ' >= ' . $startDateRange
. ' AND ' . $dateField . ' <= ' . $endDateRange . ')'
);
}
elseif ($startDateRangeUsed)
{
$query->where('(' . $dateField . ' IS NOT NULL AND ' . $dateField . ' >= ' . $startDateRange . ')');
}
elseif ($endDateRangeUsed)
{
$query->where('(' . $dateField . ' IS NOT NULL AND ' . $dateField . ' <= ' . $endDateRange . ')');
}

break;

case 'relative':
$relativeDate = (int) $this->getState('filter.relative_date', 0);
$query->where(
$dateField . ' >= ' . $query->dateAdd($nowDate, -1 * $relativeDate, 'DAY')
'(' . $dateField . ' IS NOT NULL AND '
. $dateField . ' >= ' . $query->dateAdd($nowDate, -1 * $relativeDate, 'DAY') . ')'
);
break;

Expand Down