主题 : PaginationDirective 漏洞
级别: 解元
UID: 6322
积分:207 加为好友
威望: 0 精华: 1
主题:18 回复:67
注册时间:2010-05-03
在线时长:0
1#   发表于:2012-04-07 21:20:45  IP:219.58.*.*
jeecms_2012  PaginationDirective 应写成以下


public class PaginationDirective implements TemplateDirectiveModel {
/**
 * 是否为内容分页。1:内容分页;0:栏目分页。默认栏目分页。
 */
public static final String PARAM_CONTENT = "content";

@SuppressWarnings("unchecked")
public void execute(Environment env, Map params, TemplateModel[] loopVars,
TemplateDirectiveBody body) throws TemplateException, IOException {
CmsSite site = FrontUtils.getSite(env);
String content = DirectiveUtils.getString(PARAM_CONTENT, params);
Map<String, TemplateModel> paramWrap = new HashMap<String, TemplateModel>(params);
Map<String, TemplateModel> origMap = DirectiveUtils.addParamsToVariable(env, paramWrap);
if ("1".equals(content)) {
String sysPage = DirectiveUtils.getString(PARAM_SYS_PAGE, params);
String userPage = DirectiveUtils.getString(PARAM_USER_PAGE, params);
if (!StringUtils.isBlank(sysPage)) {
String tpl = TPL_STYLE_PAGE_CONTENT + sysPage + TPL_SUFFIX;
env.include(tpl, UTF8, true);
} else if (!StringUtils.isBlank(userPage)) {
String tpl = getTplPath(site.getSolutionPath(),
TPLDIR_STYLE_PAGE, userPage);
env.include(tpl, UTF8, true);
} else {
// 没有包含分页
}
} else {
FrontUtils.includePagination(site, params, env);
}
DirectiveUtils.removeParamsFromVariable(env, paramWrap, origMap);
}

增加代码为:(3行)
Map<String, TemplateModel> paramWrap = new HashMap<String, TemplateModel>(params);
Map<String, TemplateModel> origMap = DirectiveUtils.addParamsToVariable(env, paramWrap);

DirectiveUtils.removeParamsFromVariable(env, paramWrap, origMap);

[@cms_pagination userPage='style...'   param1=param1  param2=param2 .../]
改变后,可带无限参数,不然,参数传递不到模板。
级别: 总版主
UID: 10736
积分:148478 加为好友
威望: 205 精华: 42
主题:287 回复:126198
注册时间:2010-09-08
在线时长:17.06
2#   发表于:2012-04-09 08:35:50  IP:220.9.*.*
你好,谢谢你对我们的支持,这个问题会向研发部提交。
路漫漫其修远兮,吾将上下而求索!
1 共1页