1. 功能背景

        基于满足图片的各种动画显示效果,ZCMS2.0提供了满足客户需要的图片播放器,简单、易操作。

  1)图片播放器的样式需要可以扩展;

  2)切换不同的图片播放器,需要显示当前图片播放器的效果预览图;

  3) 图片播放器可以配置是否需要审核。

 

2. 实现设计

  1) 新建图片播放器,可以根据自己的需要选择不同的图片播放器类型。

08

 

  2)图片播放器添加图片

09

 

  3)图片播放器显示效果如下:

 11

 

3. 实现说明

3. 1  增加栏目的扩展配置,用来配置图片播放器是否需要审核

  1) 实现栏目扩展配置的扩展           

  public class ImagePlayerCatalogConfigUIAction extends ZhtmlExtendAction {

  @Override

  public void execute(ZhtmlContext context) throws ExtendException {

  context.include("imageplayer/imagePlayerCatalogConfigExtend.zhtml");

  }

  public boolean isUsable() {

  return true;

  }

  }

  2)注册图片播放器栏目扩展点

12

  3) 显示效果为

14

 

3. 2  通过扩展服务的方式来实现图片播放器的扩展。扩展服务的定义和具体使用如下

  1)扩展服务的定义

  public class ImagePlayerTypeService extends AbstractExtendService<AbstractImagePlayerType> {

  public static ImagePlayerTypeService getInstance() {

  return (ImagePlayerTypeService) findInstance(ImagePlayerTypeService.class);

  }

  public static Mapx<String, Object> getImagePlayerTypeNameMap() {

  Mapx<String, Object> mapx = new Mapx<String, Object>();

  for (AbstractImagePlayerType t : ImagePlayerTypeService.getInstance().getAll()) {

  mapx.put(t.getID(), t.getName());

  }

  return mapx;

  }

  }

 

  2)扩展服务的插件配置

15

  3)实现图片播放器的扩展

  public class TitleAndDigitalPlayerType extends AbstractImagePlayerType {

  //图片播放器代码

  public static final String typeCode = "titleanddigital";

  //图片播放器名称

  public static final String typeName ="@{Imageplayer.TitleAndDgitalPlayerTypeName}";

  //图片播放器模板文件名称

  public static final String templateFileName = "template.html";

  //图片播放器预览图片名称

  public static final String getPreviewimageName = "thumbIMG.jpg";

  //图片播放器使用js名称

  public static final String jsName = "sChange.js";

  @Override

  public String getTemplateFileName() {

  return templateFileName;

  }

  @Override

  public String getImageTypeCode() {

  return typeCode;

  }

  @Override

  public String getImageTypeName() {

  return typeName;

  }

  @Override

  public String getPreviewImageName() {

  return getPreviewimageName;

  }

  @Override

  public String getJsName() {

  return jsName;

  }

  public String getID() {

  return typeCode;

  }

  public String getName() {

  return typeName;

  }

  @Override

  public List<String> getNeedFiles() {

  List<String> fileList = new ArrayList<String>();

  String prefix = ImagePlayerBL.getSourceFilePath(typeCode);

  fileList.add(prefix + jsName);

  return fileList;

  }

  }

 

  4)实现图片播放器的扩展注册

16