在使用新的日期字段扩展新闻之后,如何从此新闻字段中列出

时间:2019-02-27 16:29:31

标签: typo3 typo3-7.6.x tx-news

我用新的日期字段(eventStartDate)扩展了新闻,我想列出该日期大于X的所有新闻。

此刻,WHERE子句检查tx_news_domain_model_news.datetime而不是我的新字段tx_news_domain_model_news.eventStartDate。

这就是我得到的

 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')'

这就是我想要的

 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')'

我设置了

settings.datefield = eventStartDate

无效。

我要在TYPO3 7.6中使用NEWS 6.3

2 个答案:

答案 0 :(得分:0)

我想它由于TCA检查而失败,请参阅https://github.com/georgringer/news/blob/master/Classes/Domain/Model/Dto/NewsDemand.php#L556-L558

因此必须将字段写为event_start_date

答案 1 :(得分:0)

在NEWS 6.3中返回空字符串

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

好用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 '';
}