观自在书院

海纳百川有容则大 壁立千仞无欲则刚

博客园 首页 新随笔 联系 订阅 管理

这些天一直在看Rainbow,现在基本上看了一遍它的代码,感觉很震撼,改变了很多以前自己的编程思想。也许RainBow的效率不高,但它的代码太优雅了。前面不少朋友的BLOG已经介绍了它的一些基本特征,下面随便写一下自己的几点经验和困惑。

1.因为RainBow中大量使用的是从FRAMEWORK基类中自己扩展的类,所以一定要注意继承关系。比如开发RAINBOW的模块时一定要继承PortalModuleControl,否则您的控件将无法正常使用

2.删除一个模块时一定要所有页面里用过的这个模块,否则会导致触发器冲突,无法正常删除,但这种情况下好像数据库相关的存储过程一般都被删掉了,也许可以算RainBow的一个BUG。

3.RAINBOW大量使用了自定义的数据类型,像HtmlEditorDataType之类的,它的类定义位于UI文件夹下的DataTypes文件夹下,一般都继承自BaseDataType

4.当使用多站点的配置时,系统会默认的建立一个用户名和密码都为admin的帐户,并给予管理权限,还建立home和admin栏目,这些都是硬编码在Configuration/portalDb.cs中,需要更改的可以到这里进行修改。

5.不要轻易改动admins用户组名,因为它的源码里有些地方使用了PortalSecurity.IsInRoles("Admins") 这样的判断来判定管理员权限,改动后会造成不一致

6.workflow无法工作的问题。从国外的论坛上找到了答案

  You have to make to changes in 2 different files:
  Admin/ModuleSetting.aspx.cs & UI/WebControls/PortalModuleControl.cs

   In PortalModuleControl.cs +- Line 56
   from: private bool _supportsWorkflow = false;
   to: public bool _supportsWorkflow = false;

   In ModuleSetting.aspx.cs +- Line 365
   from: if ( pm.SupportsWorkflow )
    to: if ( pm._supportsWorkflow )
   另外你需要在每个模块的类的构造函数里加上这么一句SupportsWorkflow = true;

一些困惑:

1.默认的内容页面布局是三栏,简单页面下还是能适应的,但稍微复杂一点的就很麻烦了,比如说上面是两栏,下面是三栏的那种,上面两栏倒好办,左边的宽些,右边的窄些,放在左窗格和中窗格里它会自动向右扩展,但底下的就不行了,因为上面的左边比较宽,所以下面的三栏会有两栏被挤到右方,非常难看,除了自己将窗格改成5个(上面两个,下面三个,但这样后面的简单页面又没法办了),不知道还有什么别的办法没有?(http://bbs.xzfad.com/jsj/

2.如果页面做的比较花哨,每个页面中每个标签中的title和背景的风格都不一样,这种情况下好像根本没法处理,因为好像Rainbow中没提供这种到标签级的用户自定义风格。(如http://bbs.xzfad.com/demo/

3.模块的访问权限控制好像有问题,新建一个模块加到页面时guest访问没问题,但如果改一次访问权限后即使把所有用户组和未验证用户都可以访问选上,用GUEST访问时还是无法显示,我从代码里也没找出问题,不知道有人遇到过这种情况吗?

posted on 2004-09-11 11:59  观自在书院  阅读(2114)  评论(1编辑  收藏  举报