Magento仿兰亭倒计时效果
来源:互联网 发布:淘宝聚划算怎么参加 编辑:程序博客网 时间:2024/04/28 05:57
View.php文件
<?phpclass Light_Countdown_Block_Product_View extends Mage_Catalog_Block_Product_Abstract{private $_startTime = null;public function __construct(){$this->_template = 'countdown/product/view.phtml';}public function getStartTime(){return json_encode($this->_startTime*1000);}/** * * Enter description here ... * @return Mage_Customer_Model_Session */public function getCustomer(){return Mage::getSingleton('customer/session');}public function hasCatalogRule(){if(!$this->getCustomer()->isLoggedIn()){return false;}return true;}/** * * Enter description here ... * @param Mage_Catalog_Model_Product $product * @return string */public function getToTime(Mage_Catalog_Model_Product $product){$specialTo = $product->getSpecialToDate();if($specialTo){$specialTo = date('Y-m-d H:i:s',strtotime('+1 day',strtotime($specialTo)));}return $specialTo;}/** * * Enter description here ... * @param Mage_Catalog_Model_Product $product * @return string */public function getFromTime(Mage_Catalog_Model_Product $product){$specialFrom = $product->getSpecialFromDate();return $specialFrom;}public function isAvailableSpecial(){$_date = Mage::getModel('core/date')->date();$specialFrom = $this->getProduct()->getSpecialFromDate();$specialTo = $this->getToTime($this->getProduct());if(!$specialFrom){return false;}if($this->hasCatalogRule()){$storeId = $this->getProduct()->getStoreId();$finalPrice = Mage::getResourceModel('catalogrule/rule')->getRulePrice(Mage::app()->getLocale()->storeTimeStamp($this->getStore($storeId)), $this->getWebsiteId($storeId), $this->getCustomerGroupId(), $this->getProduct()->getId());$specialPrice = $this->getProduct()->getSpecialPrice();if($finalPrice!=$specialPrice&&$finalPrice<$specialPrice){return false;}}if(!$specialTo||!$specialFrom||($specialFrom&&$specialTo&&$specialFrom<$specialTo)){if($specialFrom){if(($specialFrom<$_date&&$specialTo>$_date)||($specialFrom<$_date&&!$specialTo)){return true;}}else{if($specialTo>$_date||!$specialTo){return true;}}}return false;}public function getSavePrice(){$product = $this->getProduct();/* @var $product Mage_Catalog_Model_Product */$specialPrice = $product->getSpecialPrice();if($this->hasCatalogRule()){$finalPrice = Mage::getResourceModel('catalogrule/rule')->getRulePrice(Mage::app()->getLocale()->storeTimeStamp($this->getStore($storeId)), $this->getWebsiteId($storeId), $this->getCustomerGroupId(), $this->getProduct()->getId());$finalPrice = $finalPrice>$specialPrice?$specialPrice:$finalPrice;}else{$finalPrice = $specialPrice;}$discount = $product->getPrice()-$finalPrice;return Mage::app()->getStore()->getCurrentCurrencyCode().' '.$this->helper('core')->currency(number_format($discount,2), true, false);}public function getStore($storeId){return Mage::app()->getStore($storeId);}public function getWebsiteId($storeId){return Mage::app()->getStore($storeId)->getWebsiteId();}public function getCustomerGroupId(){return Mage::getSingleton('customer/session')->getCustomerGroupId();}public function getSavePercent(){$product = $this->getProduct();$storeId = $product->getStoreId();/* @var $product Mage_Catalog_Model_Product */$specialPrice = $product->getSpecialPrice();if($this->hasCatalogRule()){$finalPrice = Mage::getResourceModel('catalogrule/rule')->getRulePrice(Mage::app()->getLocale()->storeTimeStamp($this->getStore($storeId)), $this->getWebsiteId($storeId), $this->getCustomerGroupId(), $this->getProduct()->getId());$finalPrice = $finalPrice>$specialPrice?$specialPrice:$finalPrice;}else{$finalPrice = $specialPrice;}$discount = $product->getPrice()-$finalPrice;return number_format($discount*100/$product->getPrice(),2).'%';}public function getSpecialFromDate(){return $this->getProduct()->getSpecialFromDate();}public function getSpecialToDate(){return $this->getProduct()->getSpecialToDate();}/** * estimate whether count down should be shown * @return bool */public function canShowCountdown($type=null){$product = $this->getProduct();/* @var $product Mage_Catalog_Model_Product */$fromDate = $product->getSpecialFromDate();$toDate = $this->getToTime($product);if($this->isAvailableSpecial()){if($this->hasCatalogRule()){$specialPrice = $product->getSpecialPrice();$finalPrice = Mage::getResourceModel('catalogrule/rule')->getRulePrice(Mage::app()->getLocale()->storeTimeStamp($this->getStore($storeId)), $this->getWebsiteId($storeId), $this->getCustomerGroupId(), $this->getProduct()->getId());if($finalPrice<$specialPrice){return false;}}if($toDate){$date = Mage::getModel('core/date')->date('Y-m-d H:i:s');$array = $this->dateSubtract($date, $toDate);if($type&&$type===1){if($array['year']>0||$array['month']>0||$array['day']>10){return true;}}if($type&&$type===2){if($array['year']===0&&$array['month']===0&&$array['day']<=10&&$array['day']>0){return true;}}if($type&&$type===3){if($array['year']===0&&$array['month']===0&&$array['day']==0&&($array['hour']>0||$array['minute']>0||$array['second']>0)){return true;}}}else{if($type&&$type===1&&$fromDate){return true;}}}return false;}public function getPosition(){$product = $this->getProduct();/* @var $product Mage_Catalog_Model_Product */$fromDate = $product->getSpecialFromDate();$toDate = $this->getToTime($product);$timeArray = array();$date = Mage::getModel('core/date')->date('Y-m-d H:i:s');$array = $this->dateSubtract($date, $toDate);$day = $array['day']%10;$timeArray['day'] = $this->getCoor($day,120);$hour = $array['hour'];if(strlen((string)$hour)==1){$hour = '0'.$hour;}$h1 = substr($hour, 0,1);$h2 = substr($hour, 1,1);$timeArray['hour'] = array($this->getCoor($h1),$this->getCoor($h2));$minute = $array['minute'];if(strlen((string)$minute)==1){$minute = '0'.$minute;}$m1 = substr($minute, 0,1);$m2 = substr($minute, 1,1);$timeArray['minute'] = array($this->getCoor($m1),$this->getCoor($m2));$second = $array['second'];if(strlen((string)$second)==1){$second = '0'.$second;}$s1 = substr($second, 0,1);$s2 = substr($second, 1,1);$timeArray['second'] = array($this->getCoor($s1),$this->getCoor($s2));return $timeArray;}public function getCoor($num,$x=0,$y=0){$x_t = $x;$y_t = 30*$num;$x_b = $x;$y_b = 300+30*$num;return array('t'=>array('x'=>$x_t,'y'=>$y_t),'b'=>array('x'=>$x_b,'y'=>$y_b));}/** * * two date subtract * @param datetime $date1 * @param datetime $date2 * @return Array */public function dateSubtract($date1,$date2){$d1 = new Zend_Date($date1);$d2 = new Zend_Date($date2);$mod = Mage::getModel('core/date');/*@var $mod Mage_Core_Model_Date */$d3 = new Zend_Date($d2->getTimestamp()-$d1->getTimestamp());$this->_startTime = Mage::getModel('core/date')->timestamp(Mage::getModel('core/date')->date(null,$d3));$array = $d3->toArray();$array['year'] -=1970;$array['month'] -=1;$array['day'] -=1;return $array;}/** * estimate whether day count down should be shown * @return bool */public function canShowDayCountdown(){$d = new Zend_Date($this->_startTime);$array = $d->toArray();}/** * estimate whether hour count down should be shown * @return bool */public function canShowHourCountdown(){if(!$this->canShowDayCountdown()){$product = $this->getProduct();/* @var $product Mage_Catalog_Model_Product */$fromDate = $product->getSpecialFromDate();$toDate = $product->getSpecialToDate();$array = $this->dateSubtract($fromDate, $toDate);}return false;}}
模板文件view.phtml
<?php /* @var $this Light_Countdown_Block_Product_View */?><?php $product = $this->getProduct();?><?php /* @var $product Mage_Catalog_Model_Product */ ?><?php if($this->isAvailableSpecial()):?><div class="w-discountCountDown_N"><div class="save_price">You Save: <br><span><?php echo $this->getSavePrice();?></span><em></em><i></i></div> <div class="price_off"><span><?php echo $this->getSavePercent() ?></span>Off</div> <?php if($this->canShowCountdown(1)):?> <div endtime="<?php echo $this->getSpecialToDate()?>" class="pro_count moreDays" id="pro_slime"><div class="remaining">remaining<i></i></div></div><?php endif;?><?php if($this->canShowCountdown(2)||$this->canShowCountdown(3)):?><?php $array = $this->getPosition()?> <div endtime="<?php echo $this->getSpecialToDate();?>" class="pro_count days <?php echo $this->canShowCountdown(3)?'times':''?>" id="pro_slime"> <ul class="cd" id="pro_slime_d6"> <li id="pro_slime_t_d6" class="day_t" style="background-position: -<?php echo $array['day']['t']['x']?>px -<?php echo $array['day']['t']['y']?>px;"></li> <li id="pro_slime_b_d6" class="day_b" style="background-position: -<?php echo $array['day']['b']['x']?>px -<?php echo $array['day']['b']['y']?>px;"></li> </ul> <ul class="cd"> <li class="days">DAYS</li> </ul> <ul class="cd" id="pro_slime_d5"> <li id="pro_slime_t_d5" class="t" style="background-position: -<?php echo $array['hour'][0]['t']['x']?>px -<?php echo $array['hour'][0]['t']['y']?>px;"></li> <li id="pro_slime_b_d5" class="b" style="background-position: -<?php echo $array['hour'][0]['b']['x']?>px -<?php echo $array['hour'][0]['b']['y']?>px;"></li> </ul> <ul class="cd" id="pro_slime_d4"> <li id="pro_slime_t_d4" class="t" style="background-position: -<?php echo $array['hour'][1]['t']['x']?>px -<?php echo $array['hour'][1]['t']['y']?>px;"></li> <li id="pro_slime_b_d4" class="b" style="background-position: -<?php echo $array['hour'][1]['b']['x']?>px -<?php echo $array['hour'][1]['b']['y']?>px;"></li> </ul> <ul class="cd"> <li class="s"></li> </ul> <ul class="cd" id="pro_slime_d3"> <li id="pro_slime_t_d3" class="t" style="background-position: -<?php echo $array['minute'][0]['t']['x']?>px -<?php echo $array['minute'][0]['t']['y']?>px;"></li> <li id="pro_slime_b_d3" class="b" style="background-position: -<?php echo $array['minute'][0]['b']['x']?>px -<?php echo $array['minute'][0]['b']['y']?>px;"></li> </ul> <ul class="cd" id="pro_slime_d2"> <li id="pro_slime_t_d2" class="t" style="background-position: -<?php echo $array['minute'][1]['t']['x']?>px -<?php echo $array['minute'][1]['t']['y']?>px;"></li> <li id="pro_slime_b_d2" class="b" style="background-position: -<?php echo $array['minute'][1]['b']['x']?>px -<?php echo $array['minute'][1]['b']['y']?>px;"></li> </ul> <ul class="cd"> <li class="s"></li> </ul> <ul class="cd" id="pro_slime_d1"> <li id="pro_slime_t_d1" class="t" style="background-position: -<?php echo $array['second'][0]['t']['x']?>px -<?php echo $array['second'][0]['t']['y']?>px;"></li> <li id="pro_slime_b_d1" class="b" style="background-position: -<?php echo $array['second'][0]['b']['x']?>px -<?php echo $array['second'][0]['b']['y']?>px;"></li> </ul> <ul class="cd" id="pro_slime_d0"> <li id="pro_slime_t_d0" class="t" style="background-position: -<?php echo $array['second'][1]['t']['x']?>px -<?php echo $array['second'][1]['t']['y']?>px;"></li> <li id="pro_slime_b_d0" class="b" style="background-position: -<?php echo $array['second'][1]['b']['x']?>px -<?php echo $array['second'][1]['b']['y']?>px;"></li> </ul><div class="remaining">remaining<i></i></div></div><?php endif;?></div><?php endif;?><script>var startTime = eval(<?php echo $this->getStartTime();?>);new Special({startTime : startTime});</script>
- Magento仿兰亭倒计时效果
- 2011版兰亭(lightinthebox.com)的Magento模板
- 倒计时效果
- 倒计时效果
- 倒计时效果
- 倒计时效果
- 倒计时效果
- 倒计时效果
- 倒计时效果
- 倒计时效果
- 倒计时效果
- Android仿淘宝倒计时
- 仿淘宝倒计时
- JS节日倒计时效果
- Jquery实现倒计时效果
- JavaScript实现倒计时效果
- CSS3圆环倒计时效果
- js实现倒计时效果
- 基于Android的Linux内核的电源管理:Early Suspend
- 北京圣思园下载地址
- 看股票哪些内容
- 翻译:Linux的电源管理架构
- Ipsec Nat-Traversal 2
- Magento仿兰亭倒计时效果
- [Spring3.x源码]IoC(一)例子
- centos 6.3安装eclipse问题
- 磁盘阵列配置与说明
- 获取手机IP地址的方法(android)
- HBase基本命令
- iptables/netfilter全攻略详解
- Intent 和 Intent Filter
- Application_Error的使用