1

I have extended NEWS with a new date field (eventStartDate) and I would like to list all news with this date greater than X.

At this moment, the WHERE clause checks tx_news_domain_model_news.datetime not my new field tx_news_domain_model_news.eventStartDate.

This is what I get

 whereClause => '(tx_news_domain_model_news.datetime >= '1551200578' 
 AND tx_news_domain_model_news.pid IN ('123456')) 
 AND (tx_news_domain_model_news.type='Tx_SLNewsExtended_News')'

This is what I would like

 whereClause => '(tx_news_domain_model_news.eventStartDate>= '1551200578' 
 AND tx_news_domain_model_news.pid IN ('123456')) 
 AND (tx_news_domain_model_news.type='Tx_SLNewsExtended_News')'

I set

settings.datefield = eventStartDate

with no effect.

I'im using NEWS 6.3 with TYPO3 7.6

Peter Kraume
  • 3,577
  • 2
  • 21
  • 39
SteveLeg
  • 87
  • 12

2 Answers2

0

I guess it fails because of the TCA check, see https://github.com/georgringer/news/blob/master/Classes/Domain/Model/Dto/NewsDemand.php#L556-L558

so the field must be written event_start_date.

Georg Ringer
  • 7,779
  • 1
  • 16
  • 34
  • in 6.3 getDateField is `public function getDateField() { if (empty($this->dateField) || in_array($this->dateField, ['datetime', 'archive'])) { return $this->dateField; } else { return ''; } }` – SteveLeg Feb 28 '19 at 14:25
0

Returns empty string in NEWS 6.3

public function getDateField()
{
    if (empty($this->dateField) || in_array($this->dateField, ['datetime', 'archive'])) {
        return $this->dateField;
    } else {
        return '';
    }
}

Ok with NEWS 7.0

public function getDateField()
{
    if (in_array($this->dateField, ['datetime', 'archive'])
        || isset($GLOBALS['TCA']['tx_news_domain_model_news']['columns'][$this->dateField])) {
        return $this->dateField;
    }
    return '';
}
SteveLeg
  • 87
  • 12