在ESCMS 2.0的设计中,最头痛的还是标签设计部分..这部分我重写了N次,在这里说说标签设计过程与用户体验.
因为是第一个版本,我并没有打算生成静态,原因如下:
ESCMS是面向中小企业网站的小型CMS,生成静态对效率影响不大,反而会增加工作量.
用户直接直观的做页面,并插入函数就可以调试,在这种小型网站非常实用,这也是1.0的设计思路
所以,第一次设计时,我按照1.0的思路设计了以下函数:
前台在调用时,需要知道函数名称,比如调用网站名称
或 新闻列表
<%=newslist(1,"样式一",23,4,5....)%>
这样.
然后,在后台定义一个样式一,内容如下:
这样大大增强了函数调用列表的方便性,很方便,很灵活..
但后来我觉得,要让用户记住这么一大堆函数,是不可能的,他必须对应一本手册来边看边做..这样也未尝不可,但是,我觉得这样浪费时间,应该减少函数..于是设计了一个F函数来调用字段..
F函数如下设计
function F(cols,pars)
一共两个参数
第一个来指定我要调什么,第二个来指定调用的参数..
这样一来,所有的单个字段的调用,全解决了,基本上还能用中文或者任何简写,如
=F("网站名称",0) 或 =F("wn",0) 或 =F("webname",0)
=F("栏目说明",20)
=F("发表日期",6)
来指定不同的调用,基本上整站通用..而且用户可以加入自己可以记住的简写,这样基本上能解决所有喜欢自定义的用户了.
那列表多参数的怎么办呢?
没关系,
=F("新闻列表","样式一,20,3,4,56,6") 或=F("newlist","样式一,20,,4,56,6")
还可以不用写默认的参数值,基本不用记什么..不知道的全留空..
这样就解决了多参数的问题..整站用F函数就搞定了..
但是,还有个问题..如果想不让用户记这些多参数怎么办呢?(靠,谁这么懒?)
算了,谁让咱是设计产品呢,那就简化了吧..
前台肯定是没法处理了,就留给后台样式管理..
用户添加 样式一 ,在选择类型的时候,选择新闻列表,则自动列表参数设置,如栏目,条数等..这样,用户连栏目的ID也不用去找了..后台添加新闻列表样式就可以.
调用
F("自定义","新闻列表样式一")
是不是更方便了呢?
sorry,兄弟,你当我白痴呢,我就喜欢用前台参数...后台定义的我不喜欢,前台后台,转来转去麻烦!! 这位大哥生气了..
另外一位也生气了..我调用个网站名称还要设置一个长度参数?我就想要一个参数..
好吧,你不喜欢就不要定义吧,继续留在前台..于是,前台设计思路就成这样了
F("网站名称")
F("网站名称$20")
F("新闻标题$20")
F("新闻列表样式一$1,2,3,3,4,,5")
啊哦...好了,你想在后台定义就在后台定义,想在前台定义就在前台定义,想不写就不写...现在总可以了吧?
怎么实现呢? 这些标签 都是在后台可以自定义的..但是参数可以在调用的时候重置.如F("标题$20")可以用我后台定义了标题的样式,长度为10,但我前台调用的时候,可以重置为20,新闻列表可能我后台定义了20条,但前台两个地方使用的时候不一样,那我就分两次调用,加上不同的参数就可以..不加参数就以后台设置为主,后台没设置?那就给一个默认值..
标签的设计,最后都归到一个函数中去了...这样简化了很多繁烦的事情..
ESCMS是ASP写的,但标签的思路却不局限于ASP,而适用于所有的CMS设计中..
在下个版本中,生成静态,用户可以直接把原来的ASP文件放在templates文件夹下,改下后缀(也可以不改),就可以实现模板了,直接生成..因为,我的模板中 <%=F("..")%> 是书写标签的一种方式,另外,为了更友好,生成静态中,标签也可以 {es[网站名称]} 或 {es[网站名称,20]} 来写..其实,方便程度是一样的..
另外,谈一种废弃的我认为很好的标签思路:
=F("新闻列表一$样式:横向一,条数:20,标题字数:20,摘要:30,分页:是")
这样的写法..实际上我认为是很好的,但我的用户反对,说这样书写不方便,还不如直接记参数,想想也对,用熟练的话,
1,20,30 这样的数字很容易看出来,哪个对应哪个,再多写一个条数啊,标题啊,倒不方便了..于了,放弃了该方法
不过,该版本暂未发布,仅在QQ群19429815提供测试版本下载,希望能一起学习,进步
ESCMS下个版本基于ASP.net MVC的
随便写的,请指教..