Search code examples
typo3typo3-7.6.xtx-news

After extending NEWS with a new date field, how can I list from this news field


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


Solution

  • 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 '';
    }