浅谈CMS标签设计思路

来源:互联网 发布:骂交警被拘 知乎 编辑:程序博客网 时间:2024/04/29 20:21
分类: ASP相关 972人阅读 评论(2)收藏 举报

 
 
在ESCMS 2.0的设计中,最头痛的还是标签设计部分..这部分我重写了N次,在这里说说标签设计过程与用户体验.

因为是第一个版本,我并没有打算生成静态,原因如下:

ESCMS是面向中小企业网站的小型CMS,生成静态对效率影响不大,反而会增加工作量.

用户直接直观的做页面,并插入函数就可以调试,在这种小型网站非常实用,这也是1.0的设计思路

 

所以,第一次设计时,我按照1.0的思路设计了以下函数:

[vb:showcolumns] view plaincopyprint?
·········10········20········30········40········50········60········70········80········90········100·······110·······120·······130·······140·······150
  1. function webname()  
  2.   
  3. function webcopyright()  
  4.   
  5. function alone(id,ishtml,size)  
  6.   
  7. function newslist(id,style,rows,sizes......)  

前台在调用时,需要知道函数名称,比如调用网站名称

[vb] view plaincopyprint?
  1. <%=webname()%>  

或 新闻列表

<%=newslist(1,"样式一",23,4,5....)%>

这样.

然后,在后台定义一个样式一,内容如下:

[xhtml] view plaincopyprint?
  1. <ul>  
  2.   
  3. [LIST]  
  4.   
  5. <li {FH:2:class="twostyle"}><a href="{newslink}" mce_href="{newslink}">{title}</a></li>  
  6.   
  7. [/LIST]  
  8.   
  9. </ul>  

这样大大增强了函数调用列表的方便性,很方便,很灵活..

 

但后来我觉得,要让用户记住这么一大堆函数,是不可能的,他必须对应一本手册来边看边做..这样也未尝不可,但是,我觉得这样浪费时间,应该减少函数..于是设计了一个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的

 

随便写的,请指教..
 

原创粉丝点击