Для справки вот вспомогательный метод, который я придумал для проверки новизны. Он поддерживает как выпадающий список, так и даты, а также поддерживает либо пустую дату.
public function isNew($product)
{
if ($product->getData('featured_product')) {
return true;
}
if ($product->getData('news_from_date') == null && $product->getData('news_to_date') == null) {
return false;
}
if ($product->getData('news_from_date') !== null) {
if (date('Y-m-d', strtotime($product->getData('news_from_date'))) > date('Y-m-d', time())) {
return false;
}
}
if ($product->getData('news_to_date') !== null) {
if (date('Y-m-d', strtotime($product->getData('news_to_date'))) < date('Y-m-d', time())) {
return false;
}
}
return true;
}
ОБНОВЛЕНИЕ: Спасибо @Rooooomine за упоминание о том, что это ручное преобразование даты, которое я предложил, является очень плохой идеей из-за потенциальных языковых проблем. Проверьте Mage::app()->getLocale()->isStoreDateInInterval($product->getStoreId(), $newsFromDate, $newsToDate)
вместо этого.