我正在Magento上为圣诞节做一个模块。 每天都会在网站的索引页面上显示弹出窗口。 此弹出窗口将包含图像和链接。
要加载弹出窗口,我定义要使用的css(module.phtml):
<?php
$today = explode(".",date("d.m.y"));
$month = $today[1];
$day = $today[0];
$file = 'POP UP '.$day.'.jpg';
$class = 'block block-AdventCalendar'.$day;
?>
<div class="<?php echo $class ?>">
</div>
CSS文件(app-base.css)中的示例:
.block-AdventCalendar1 {
background-image: url('../images/popupAdvent/POP UP 1.jpg');
background-size: 100% 100%;
color: #fff;
margin: 0;
height:350px;
width :700px;
}
此代码工作正常,但是当白天更改时,Magento会加载错误的CSS类。 要显示正确的图像,我必须每天清除Magento缓存。
但是,当我在phtml文件中修改某些内容时,会立即显示更改,只会重新加载内联CSS。
有人有想法强制phtml加载正确的CSS吗?
答案 0 :(得分:0)
尝试使用它:
Mage::app()->cleanCache();
在代码加载后清除Magento缓存。
答案 1 :(得分:0)
你也可以尝试JavaScript替代方案:
<script>
var dateObj = new Date();
var month = dateObj.getUTCMonth() + 1; //months from 1-12
var day = dateObj.getUTCDate();
var element = document.getElementById('your_div_id');
if (element) {
element.className += element.className ? ' block-AdventCalendar'+day : 'block-AdventCalendar'+day;
}
</script>
在要添加类的div之后添加此项。另外,为您的div提供唯一ID(<div id="your_div_id">...</div>
)
答案 2 :(得分:0)
问题不在于CSS。 如果我改变它或phtml,所有改变都是立即的。
只有div类保持不变
<div class="<?php echo $class ?>">