ZCMS专题内容块二次开发手册

作者:  最后修改:2014年01月22日  浏览数:689

1 创建本地内容块扩展项

插件中实现扩展项

1

 

如图在插件中添加ServiceIDcom.zving.special.service.ContentBlockTypeService

Class选项中添加自己实现类,类似代码如下:

public class TestContentBlock implements IContentBlockType {

//ID必须和名称一致

public static final String ID = "TestContentBlock";

//页面显示名称

public static final String NAME="Test";

public String getID() {

return ID;

}

//页面显示logo图片

public String getLogoFile() {

return "special/contentblocktypes/module_images.png";

}

//拖动显示页面

public String getEditURL() {

return "imageplayer/imagePlayer.zhtml";

}

 

public String getName() {

return NAME;

}

//拖动页面显示宽

public String getWidth() {

return "900";

}

//拖动页面显示高

public String getHeight() {

return "540";

}

//点击确定后后台方法处理

public String getHtml(String dataID, AbstractExecuteContext context) {

ZCImagePlayer schema = new ZCImagePlayer();

schema.setID(dataID);

if(!schema.fill()){

return null;

}

String platformID = context.eval("PlatformID");

if(StringUtil.isNull(platformID)){

platformID = PCPublishTarget.ID;

}

// 通过各种注册平台得到生成的html

  IImagePlayerPublshTarget target =  ImagePlayerPublishTargetService.getPublishTarget(platformID);

return target.publish(schema, context);

}

}

代码中对应相应代码下图:

2

3

 

点击完确实会执行后台方法如下图:

4

 

 2 创建网络内容块扩展项

实现网络内容块注册项:

 

5

如上图中,ServerIDcom.zving.special.service.WebWidgetContentTypeService

Class选项中添加自己实现类,类似代码如下:

public class TestWebContent implements IWebWidgetContentType {

//ID必须是类名WebContent前面名字

public String ID = "Test";

public String getID() {

return ID;

}

//页面显示logo

public String getLogoFile() {

return "special/contentblocktypes/module_weather.png";

}

//页面拖拽后显示页面

public String getEditURL() {

return "special/weatherEdit.zhtml";

}

//页面显示名称

public String getName() {

return "TestWeb";

}

//页面显示宽

public String getWidth() {

return "600";

}

//页面显示高度

public String getHeight() {

return "400";

}

//点击确定后,页面插入的html插入代码

public String getTemplate() {

return "special/weather.template.html";

}

}

如下图,代码对应页面显示功能:

 

6

 

 

7

 

点击后会调用该方法,将代码插入页面中

8

类似此模板代码如下:

<z:config type="Special" name="baidumap" />

<iframe id ="ifrm${DataID}" src="#" width="235" height="20" marginwidth="0" marginheight="0" hspace="0" vspace="0" frameborder="0" scrolling="no"></iframe>

<script>

{

var c =${Content};

var dom = document.getElementById("ifrm${DataID}");

dom.width=c.width;

dom.height=c.height;

if(c.displaytype =="select"){

dom.src="http://m.weather.com.cn/m/pn"+c.type+"/weather.htm?id="+c.citycode;

}else{

dom.src="http://m.weather.com.cn/m/pn"+c.type+"/weather.htm"

}

 

}

</script>