После расширения 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

без эффекта.

Я использую NEWS 6.3 с TYPO3 7.6.


person SteveLeg    schedule 27.02.2019    source источник


Ответы (2)


Я предполагаю, что это не удается из-за проверки TCA, см. https://github.com/georgringer/news/blob/master/Classes/Domain/Model/Dto/NewsDemand.php#L556-L558

поэтому поле должно быть написано event_start_date.

person Georg Ringer    schedule 28.02.2019
comment
в 6.3 getDateField равен public function getDateField() { if (empty($this->dateField) || in_array($this->dateField, ['datetime', 'archive'])) { return $this->dateField; } else { return ''; } } - person SteveLeg; 28.02.2019

Возвращает пустую строку в NEWS 6.3

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

Хорошо с НОВОСТЯМИ 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 '';
}
person SteveLeg    schedule 28.02.2019