This week only. Pastebin PRO Accounts Christmas Special! Don't miss out!Want more features on Pastebin? Sign Up, it's FREE!
Guest

Magento: verificando se produto é novidade.

By: juliovedovatto on Sep 22nd, 2011  |  syntax: PHP  |  size: 1.52 KB  |  views: 122  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1.         /**
  2.          * Verificar se o produto é novidade, comparando campos "NewsFromDate" e "NewsToDate" do produto.
  3.          *
  4.          * @author Julio Vedovatto <juliovedovatto@gmail.com>
  5.          * @uses Zend_Date
  6.          * @param Mage_Catalog_Model_Product $_product
  7.          * @throws Exception
  8.          * @return boolean
  9.          */
  10.         public function isProdutoNovidade(Mage_Catalog_Model_Product $_product) {
  11.                 $is_novidade = false;
  12.                 try {
  13.                         $locale = Mage::app()->getLocale();
  14.                        
  15.                         if (!$_product instanceof Mage_Catalog_Model_Product)
  16.                                 throw new Exception('Produto inválido');
  17.                                
  18. //                      Pegar a data atual, pegando apenas a parte da data (sem comparação com hora)
  19.                         $now = $locale->date(null, 'yyyy-MM-dd', null, false);
  20. //                      Pegar datas de início e fim do produto        
  21.                         $data_ini = $_product->getNewsFromDate();
  22.                         $data_fim = $_product->getNewsToDate();
  23.                        
  24.                         if (empty($data_ini) || empty($data_fim))
  25.                                 throw new Exception('NewsFromDate ou NewsToDate não foi preenchido.');
  26.  
  27. //                      Converter $data_ini e $data_fim p/ Zend_Date para comparação.Desabilitando o uso de timezone (já que vem sem horas do banco)        
  28.                         $data_ini = $locale->date($data_ini, null, null, false);
  29.                         $data_fim = $locale->date($data_fim, null, null, false);
  30.                        
  31.                         $is_novidade = ($data_ini->isEarlier($now) | $data_ini->equals($now)) && ($data_fim->isLater($now) | $data_fim->equals($now));
  32.                        
  33.                 } catch (Exception $err) {
  34.                         Mage::logException('Erro ao converter data para comparação. [Erro]: ' . $err->getMessage());
  35.                         $is_novidade = false;
  36.                 }
  37.                
  38.                 return $is_novidade;
  39.         }
clone this paste RAW Paste Data