WF系统通过广告版位实现网站换肤功能
之前分享过SA系统通过站点扩展字段的方式实现网站换肤功能,最近项目需求网站可以实现节日换肤,根据不同的节日进行网站换肤,同时展示相关的节日背景图片。
如果使用原来的站点扩展字段来实现,需要添加图片字段。每次节日切换都需要重新上传一次节日大图,如果预先设置好不同节日大图的字段,这样图片的字段数量又太多了。于是,想到了可以利用广告功能来实现,通过广告的开启和关闭来控制节日的切换,节日大图可以存放到广告图片里面。
后台配置:
1、新建一个广告版位用于节日换肤,版位名称自定义就可以,这里以“节日横幅”为例,广告的版位的宽度和高度根据实际情况来定义
2、广告版位建立后,点击查看按钮,获取广告版位ID
3、在节日横幅的广告版位下添加对应节日的广告,注意:要设置好广告的上下线时间,和广告状态
模板配置:
1、在 \Views\main\Shared 目录下添加 “广告版位节日大图.cshtml”的视图文件,具体代码如下:
@inject AdvertisementSpaceService AdvertisementSpaceService @Power.VisualizationPartialView(new { Description = "广告版位节日大图", Parameters = new { Id = new { DisplayName = "版位Id", Type = "Int32", ControlType = "Integer" } } }) @{ //参数 string Sort = Param.Sort ?? "AdvertisementId ASC"; //排序 int advertisementSpaceId = 0; if (Param != null && Param.Id != null) { advertisementSpaceId = Param.Id; } var advertisements = AdvertisementSpaceService.GetAdvertisementsBySpaceId(advertisementSpaceId, Sort); } @if (advertisements != null && advertisements.Count() > 0) { foreach (var advertisementInformation in advertisements) { <script type="text/javascript"> //加载css文件 function LoadCSS(url){ var s = document.createElement("link"); s.rel = "stylesheet"; s.type = "text/css"; s.href = url; document.getElementsByTagName("head")[0].appendChild(s); } LoadCSS("@Url.AppendVersion($"~/content/{this.Context.GetCurrentSite().Identifier}/base/css/festival.css")"); </script> <style> .wrap{background-image: url(@Power.Url.GetContentUrl(advertisementInformation.AdvertisementFile));} </style> break; } }
2、在首页模板里面添加“广告版位节日大图”标签的引用,id参数根据刚刚获取的广告版位ID填写
3、根据第1点,广告版位节日大图标签里引入的css文件路径,添加相关的css文件,css的具体内容根据项目的实际情况进行输出换肤的样式代码
前台换肤操作:
对需要开启的节日广告进行开启操作即可,注意,上线时间和下线时间必须在开启范围内,否则没有效果
用户登录
还没有账号?
立即注册