皮皮网
皮皮网

【面试问jquery源码】【ntlm源码】【phpcount源码】分栏模板源码_分栏模板源码是什么

来源:spring底层源码介意 发表时间:2024-11-30 08:54:25

1.题目不分栏内容分两栏怎么弄?
2.IFIX中如何引用CryStal Report
3.phpwind和discuz哪个好
4.Element 2 组件源码剖析之 Layout (栅格化)布局系统

分栏模板源码_分栏模板源码是分栏分栏什么

题目不分栏内容分两栏怎么弄?

       HTML 源码

       less 源码

       可以按照以上的方式左右分栏, less 如果不懂的话,可以按照层级逐一书写:

       less中: #app{ 样式 .left-box{ 样式 } } 

       就是css的: #app { 样式 } #app .left-box{ 样式}

IFIX中如何引用CryStal Report

       åœ¨è¿™é‡Œæˆ‘主要想和大家讨论一下Crystal Report的总体框架模式方面的问题,重点是如何使用VB有效的融合报表和数据,快速的进行报表开发工作。希望抛砖引玉,找到几种最好最快的开发模式。

       æœ¬æ–‡æš‚不涉及技术细节,所以您可能觉得太过简单。但这样的问题的确是我们开发中的第一号大问题。在以后的讨论中,我们可以针对具体的问题讨论具体的技术细节。

       æˆ‘准备了一份源代码,已经发给了部分网友,但是没有做详细的测试。我准备在明后天做完测试,如果各位有需要的话,应该在星期一左右可以发给你们(唉,星期六星期天还要加班!)。

       æ³¨æ„ï¼šæœ‰éœ€è¦çš„朋友请跟帖说明,不要只给我发短消息。

       ç¼©å†™è¯­è¯´æ˜Ž

       RPT Crystal Report Template File. 使用Crystal Report设计器生成的报表样式和模板文件,后缀名为RPT

       RDC Crystal Report Designer Component. Crystal Report的对象模型,用于在VB中操作Crystal Report.

       CRV Crystal Report Viewer. OCX 控件,用于在VB中提供报表预览界面。

       CRC Crystal Report Control. OCX 控件,在Crystal Report 8.0以前用于在VB中提供报表预览界面,现已被CRV取代。

       CDO Crystal Data Source Object. Crystal Report 提供的数据源对象,用于创建与数据库无关的动态数据源。

       ä¸€ï¼Œå¦‚何动态获取数据,生成报表?

       æŠ¥è¡¨çš„一个主要特征就是根据事先设计好的模板样式和运行时的动态数据生成一份可查看与打印的文档。

       ä¸€èˆ¬æ¥è¯´ï¼ŒVB的程序中整个报表流程中的主线,由它来对Crystal Report及其它工具发号施令,实现用户需求。

       VB是通过RDC模型来操作CrystalReport的。通常有如下两种模式生成报表:

       1,VB-RPT-DB

        VB调用RPT文件,RPT文件查询数据库得到数据,生成报表。此方法的详细流程如下:

        1)在Crystal Report 中设计好RPT文件,设计时可在CrystalReport中连接到数据库,得到查询数据,即时预览报表。

        2) 在VB中,通过RDC模型打开RPT文件,并将运行时和数据库连接所需的信息,如数据库名,用户,密码等传给RPT文件,如果RPT文件中有参数,还要传入参数。

        3)RPT文件连接到数据库,执行查询得到数据,生成报表。

        4) 在VB中,通过CRV控件打开报表进行预览或通过RDC模型进行打印,导出等操作。

       2,VB-DB-RPT

        VB先查询数据库得到结果集,再打开RPT文件并传入结果集,生成报表。此方法详细流程如下:

        1)在Crystal Report 中设计好RPT文件。由于此时结果集还未生成,只能使用TTX文件做为虚拟数据源,以便读取字段信息。所以在设计RPT文件之前,还要根据最终的结果集结构生成一个TTX文件。

        2)在VB中,连接到数据库,执行查询,得到结果集。

        3)在VB中,通过RDC模型打开RPT文件,传入结果集和参数,生成报表。

        4)在VB中,通过CRV控件打开报表进行预览或通过RDC模型进行打印,导出等操作。

       æ˜¾ç„¶ï¼ŒVB-RPT-DB模式远优于VB-DB-RPT模式,这体现在如下几个方面:

       1,设计时,VB-DB-RPT模式一般要求生成一个和最终结果集字段结构完全一致的TTX文件做为虚拟数据源,增大的开发和维护的工作量,而且还不能即时预览生成的报表。VB-RPT-DB模式则是直接和数据库相连,无需TTX文件,还能看到最终数据。

       2,运行时,VB-DB-RPT模式在得到结果集后,需要在VB中建立相应的结果集对象,并将其传入RPT文件,与VB-RPT-DB模式相比多了一个很大的对象--结果集对象。

       3,运行时,VB-DB-RPT模式的结果集从DB传到VB,再传到RPT, 而VB-RPT-DB模式的结果集直接从DB传到RPT,少了一次大的数据传递。

       4, 开发时,VB-DB-RPT模式一般每加一个报表,就要加两段代码:查询结果集和生成报表。而VB-RPT-DB模式可以很方便的实现一个接口应对所有的报表,新加报表几乎无需增加VB代码。二者的代码量不可同日而语。

       äºŒã€å¦‚何生成报表模板文件?

       è®¾è®¡æŠ¥è¡¨æ ¼å¼æ˜¯æ‰€æœ‰æŠ¥è¡¨å·¥ä½œçš„第一步。在CrystalReport中,有两个地方可以设计报表,Crystal Report集成设计器和内嵌在VB中的报表设计器。我个人觉得,内嵌报表设计器的做法弊远大于利,不推荐使用。

       ä¸‰ï¼Œå¦‚何查询DB,得到运行时数据。

        通过VB查询DB得到结果集的方式有很多种,大家都很熟悉。通过RPT查询DB的方式主要有:存储过程,视图,表, Crystal Query, 直接SQL查询。

        其中最简单的莫过于直接连接到表,进行表查询。可是一般的报表都不会只涉及到一个表。在RPT文件中进行多表查询并设置查询条件的方法虽然简单,但是分散了整体的查询逻辑,而且操作烦琐,不是一个好办法。视图和存储过程是最好的选择,不过视图在性能上不及存储过程,所以我推荐使用存储过程。

        存储过程和视图是放在数据库中的。如果不允许或不能在数据库中建立视图和存储过程等,还可以利用Crystal Report自已的SQL查询功能,将完整的SQL查询语句写在RPT文件中。

        从Crystal Report自己的说明来看,Crystal Query文件就像是Crystal Report自己的存储过程。不过这个工具不包含在Crystal Report 9中。Crystal Report 官方网站提供了单独的免费下载。这个工具有两个限制:在Crystal Queryk中的每个字段,字段值长度不能超过个字符, 总字段数据也不能超过个。我是从Crystal Report的帮助文件中看到这些信息的。如是真的话,Crystal Query就没有什么竞争力了。Crystal Report 也支持在设计RPT文件时直接写SQL,还可以带参数。这是个不错的功能。不知道是不是也有上述两个限制。

        我没有仔细测试Crystal Report内嵌SQL查询的功能,在此不宜多加评论。但我强烈推荐使用数据库的存储过程和视图。它有效的分离的报表工作中的逻辑和设计工作,利于分工合作,也利于编护和升级。

        使用Oracle的存储过程有如下限制,SQL Server 类似。

        > 要使用本地连接或ODBC连接到Oracle,不能使用OLE DB连接。建议使用本地连接。

        > 存储过程必须放到一个包内。结果集游标必须在包头声明。

        > 存储过程只能有输入参数。

        > 存储过程只能返回一个结果集,以输入输出型(IN OUT)的游标参数形式返回。

        > 结果集中的字段名称和类型通过打开游标的SQL语句直接确定。所以不能使用动态SQL,也不能通过嵌套调用存储过程的方式来将数据装入游标。

       å››ï¼Œå¦‚何传递多个数据源和参数。

        如果所有的数据源都是VB-RPT-DB模式,那么VB要做的连接工作就很简单,将一个动态建立的连接传给RDC就可以了。RDC再将连接传给每一个RPT中存在的数据源。即便在报表包含子报表时也是如此的简单。

        如果数据源是VB-DB-RPT模式,或都是好几种类型混合的。最好在设计报表的时候给每个数据源设定一个唯一名字(包括子报表的数据源),RDC就跟据名字来给每个数据源传递连接信息或结果集。

        事实上,在一个报表中即便存在多个数据源,由于Crystal Report要求互相之间要有主键的对应关系,而不能一个数据源处理完后再处理另一个数据源,所以这些多个的数据源在本质上仍然是一个数据源。我做过很多复杂的报表,很少碰到要用到多个数据源的。使用子报表的情况倒是占了一半左右。

        报表中的所参数都可以从VB中传入,建议也为所有的参数(包括子报表的参数)设定一个唯一的名字,由RDC跟据名字来传值,这样就不用理会报表中有哪些子报表了。

        在处理大量的报表时,将报表的RPT文件路径及其参数信息存入数据库,就可以实现新增报表无须修改VB程序。一般而言,一个系统中的绝大部分报表,其参数都差不多,很容易控制。

       2.1 准备一个通用模板。

       ä¸€ä¸ªé¡¹ç›®ä¸­çš„所有报表,通常有一个统一的格式和标准。准备一个带有最基本格式和标准的RPT文件作为模板是个聪明的做法。不过Crystal Report中的模板向导功能并不是很强,不如直接创建一个RPT文件,然后复制来得快。

       2.2 在Crystal Report 编辑环境中设定字段和数据的缺省模式。

       åœ¨Crystal Report的选项菜单(文件->选项)中设定要不同字段,不同数据类型的显示格式和字体,这一点非常重要。它可以最大程度的保证的模板设计完全符合标准。减少重复劳动。

       åœ¨æ–‡ä»¶ï¼ï¼žæŠ¥è¡¨é€‰é¡¹ä¸­ä¹Ÿæœ‰ä¸‰é¡¹å¾ˆé‡è¦çš„设置:

       1) 将数据库的NULL值转为默认值, 选中。

       2) 将其它NULL值转为默认值, 选中。

       3) 若无记录则取消打印, 不选。

       2.3 选择一个可以同时支持中英文的字体。

       å­—体的选择直接影响版面效果。有的字体不支持中文,显示中文时就会出现乱码。有的中文字体在纯英文下不能使用。有的字体在Windows /XP的中英文环境中大小不同。有的字体不是Windows 自带字体。

       æœ€å¥½åœ¨å„种环境下试过后再决定采用哪种字体。

       2.4 使用公式字段,汇总字段,运行时总计字段,以及变量实现数据的页面逻辑。

       Crystal Report中的公式其实就是一个表达式,它通过使用Crystal Report中的函数和操作符来操作数据源中的数据以得到最终想要显示的字段。在公式中还可以使用变量。

       åœ¨Crystal Report中有两种比较特别的公式:汇总公式和运行时总计公式。这两种公式都可以在公式编辑器(CR称之为公式工作室)中编辑,但比较复杂。CR提供了更简单的方法:在报表中选中要统计的字段,点出右键菜单,选中"插入…"项,就会弹出两个子菜单项:汇总,运行总计。

       æ±‡æ€»å­—段用于对特定的字段进行按组或全局的汇总统计。

       è¿è¡Œæ—¶æ€»è®¡å­—段在汇总字段的基础上加入条伯控制,使得在报表中跟据一个字段的不同取值分别得到另一个字段的总计数据成为可能。

       åœ¨å…¬å¼ç¼–辑器中可以使用变量。按作用域分,有局部变量,全局变量和共享变量。局部变量只在一个公式或函数中有效。全局变量在整个报表(但不包含子报表)中有效,共享变量在一个报表文件,包括子报表中都有效。

       2.5 使用子报表。

       è·Ÿæ®ä»¥å¾€çš„项目经验,有一半左右的报表要用到子报表。在Crystal Report中,一个报表事实上只能处理一个结果集。存在多个结果集,要求互相之间有主键的对应关系,在本质上仍然是一个。如果报表要显示多个部分,就必须使用子报表。除没有单独的页眉和页脚外,子报表具有完整报表的所有特性。

       é¡µé¢æ˜¾ç¤ºçš„时候,子报表的宽度会受到其在主报表中的宽度限制,所以在把子报表放入主报表的时候,一定要给予足够的宽度。

       ä¸»æŠ¥è¡¨å’Œå­æŠ¥è¡¨ä¹‹é—´å¯ä»¥é€šè¿‡å­—段-参数的关系进行链接。即将主报表中的字段作为子报表的参数。

       2.6 使用交叉表。

        设有A,B两个字段,要求在报表中将A的全部值显示在第一列的列头,将B的全部值显示在每一行的行首,在行和列的主体部分显示出跟据相应的A值和B值计算出来的结果,如下图所示。这就是一个交叉表。

        交叉表中Crystal Report 中的一个对象,可以很简单的创建,注意交叉表应放到报表的报表页脚部分(Report Footer),不能放在细节部分或页眉。否则会导致重复显示和数据不全。

        Crystal Report对交叉表的分页功能支持不佳,所以要尽可能的不让数据超过一页。

       2.7 使用分栏表。

       æ‰€è°“分栏表,就是把页面分成几栏来显示结果。这样就可以在同一行显示多条记录。

       åœ¨èŠ‚专家中选中详细资料节,注意只能选详细资料节的总节,不能选子节,就可以发出多栏格式化的选项,选中后界面上会多出一个布局的选项卡。在这个选项卡中就可以设置分栏。

       2.8 最好不要在每页显示总页数。

       æ˜¾ç¤ºæ€»é¡µæ•°ä¼šå¯¼è‡´æŠ¥è¡¨å¤šä¸€æ¬¡å…¨ç¨‹è¿ç®—,严重降低性能,最好不要在每页都显示总页数。

       2.9 把报表打印出来检查格式与数据。

       è¿™æ˜¯ä¸ªè¦è¯€ï¼Œä¸æ‰“印出来检查,你的格式与数据很难保证没有错误。

       2. 设置字段或小节的条件显示条件

       Crystal Report中的所有对象,大到一个小节,小到一个字段,都可限定显示的格式。在这些对象的格式化编辑器中,有个抑制显示的选项,其右有一个公式编辑按钮,点击这个按钮就可以进入公式编辑器,编辑一个逻辑表达式来控制抑制显示的条件。注意,只有勾上抑制显示的选项,条件公式才会起作用。

       2. 对字段进行有条件的格式化

       å¦‚果碰到类似这样要求,就要对字段进行有条件的格式化:将所有值大于的A字段加下划线显示。

       å¯¹å­—段的有条件格式化只能在公式编辑器(公式工作室)中实现。

       2. 在导出为RTF是要注意字段对齐。

       å¦‚果报表的字段是随意放置的,在导出RTF文件是将会出现位置的严重错乱。

phpwind和discuz哪个好

       discuz!(简称dz)和phpwind(简称pw)是国内最著名的两个PHP论坛系统,随着它们相继宣布开源以后,在各方面,不管技术上,还是功能上,还是界面上,都有了长足的发展,声威大振,远非国外那些功能简单的电子公告板系统可比了。其造成的一个副作用是大大带动了PHP在国内的普及(本人就是在寻找合适的论坛程序的时候,才开始关注PHP,进而不能自拔的 )。

       å®¢è§‚的说,目前的pw和dz各有短长,其互相之间的激烈竞争应该说提高了PHP论坛的水平,在功能上不仅赶上了以功能多和漏洞多而著称的动网论坛,而且因为它们的效率和速度远远超过动网,弄的动网市场大大萎缩,原来的一些动网论坛都纷纷转换成了dz或者pw,搞的动网都不得不开始弄PHP论坛了。

       è¦è¯´ä»–们哪个更好,是比较难的事情,毕竟各有短长,俺也不敢在这里妄下结论。不过从市场份额和网上的言论来看,目前dz还是略占上风的,而且去年国内好几个知名的大论坛都转换成了dz(比如凤凰网、牧文、tompda等),而pw在大网站方面收获甚小。

       ä½†æ˜¯æ¯•ç«Ÿå¯¹å¥½å¤šæ–°æ‰‹æ¥è¯´ï¼Œä»–们都要面临一个选择论坛程序的问题,因此,dz和pw哪个更好,也就成了经常被问的问题,这种没有答案的问题,自然要被反复问起。本文试图从比较深的层次来分析两个论坛的优劣,为新手提供选择的参考。如有错谬之处,欢迎批评指正。

       ä¸€ã€ç•Œé¢ç¯‡

       é¦–先,从界面上说,从整体上说,dz的界面比较美观,整体感好。

       pw的界面给人一种模仿dz的感觉。同时在界面的细节上,看起来pw还是没有dz完美。

       äºŒã€æŠ€æœ¯ç¯‡

       ä»ŽæŠ€æœ¯ä¸Šè¯´ï¼Œpw和dz都使用了文件方式的数据缓存技术,通过把常用的数据表,比如论坛版面设置参数、基本参数等,生成静态缓存文件(根据条件触发更新或者手动更新),来减少数据库读取次数,提高效率,在这个方面两者非常相似。

       1、模版技术

       ä»Žæ¨¡ç‰ˆæŠ€æœ¯ä¸Šè¯´ï¼Œdz从2.5f版就开始采用的这种静态模版技术,从俺个人角度上说,还是非常适合论坛这种频繁更新的网站程序使用的。它通过动态生成静态模版的方式,解决了模版解析效率的问题。

       åŒæ—¶ï¼Œdz的这种模版方式,使得修改界面也比较容易,很直观。

       è€Œpw使用echo语句的这种方式(姑且称其为模版),就寒碜多了,要增加了一个if判断条件,就要折腾半天。添加了混合PHP代码的模板,在 dreamweaver中也容易被误操作删除。特别是如果修改的时候稍有不慎,很可能会使网页成了白板(没有输出),让俺每次修改pw模版无不如履薄冰,战战兢兢。。。。恐怕这也是第三方模版中,dz远远多于pw的原因吧。

       ä¸è¿‡pw目前在模版上也在改进,现在看verycms 3.0就已经开始使用真正的模版技术,不过目前用的都还比较初级。。。

       2、速度问题

       ä»Žæ¨¡ç‰ˆä¸Šçœ‹ï¼Œä¸¤è€…的效率应该是差不多的,pw的模版其实就是直接包含的混合了PHP语句的一部分PHP文件,而dz的模版平时并不需要解析,所以效率应该是差不多的,但是网上总是有人声称网站使用dz的速度比pw慢,这方面本人没有测试过,不敢妄作评论。而且网站访问速度还是要受很多因素的影响,比如:本地网速、服务器带宽、心理。。。。。客观的评价还是很难的,除非使用专业技术手段。不过从官方网站的速度来看,明显还是pw占优啊,呵呵

       æœ€è¿‘看了一下dz的CSS文件,明显是用CSS用的有点过度了,在dz中大量使用了CSS,CSS文件高达KB左右(pw只有2KB左右),可能造成了IE渲染网页的时候,效率比较低。同时,由于dz的CSS文件过于庞大,只好采用了外置的方式(Link)。

       è¿™æ ·å¦‚果网速很慢,网页已经或者部分下载完,而CSS文件下载没完成(网速慢的时候,常常发生这种情况),那么网页根本就不能正常显示。

       åœ¨ç½‘速慢的时候,光dz的CSS文件,就要用好几秒,甚至十几秒的时间才能下载,而整个网页只能在CSS下载完成以后才能进行正确的显示,这就无怪乎在网速慢的时候,dz表现大大逊色于pw了。

       ç›¸åï¼Œpw在设计CSS的时候,明显是比较简洁,这对网页的渲染肯定是比较有利。同时,pw采用了把CSS文件嵌入的方式,尽管每次访问网页都造成了几K 个字节的流量,但是实际影响并不大,反而觉得网页打开速度比dz要快(这就是pw用了一个笨法子,却常常效果比dz强的典型案例)。

       è¿™æ–¹é¢ï¼Œå»ºè®®dz痛下决心简化过分臃肿的CSS文件,提高网页速度。

       ä¸‰ã€åŠŸèƒ½ç¯‡

       ä¸‹é¢ä¿ºå°±dz5.5和pw5.3的功能,做一个简单的,本人看来是比较深入,可能高手看来仍嫌浅显的分析,请大家指正:

       1、登录方式:

       pw的前台登录和后台登录采用了不同的Cookie方式,这样前后台分开的方式,个人感觉,有利于安全,也便于管理。后台帐号与前台帐号可以彻底分开。

       è€Œdz的前后台登录是用了一个帐号,尽管在进入后台的时候再次提示输入密码,不过还是不如pw方便。

       æ¯”较特别的是,dz在注册的时候,要求输入提示问题(选填),而且在登录界面中,也有提示输入的界面,个人感觉,绝对的画蛇添足,无聊。如果说使用提示问题来找回密码,还是有点道理的。用提示问题的方式,让新手看了无所适从,脑袋都晕了

       2、分栏显示:

       pw从5.0.1开始支持左右分栏显示了,然而功能太简单,不能树状显示子板块,此功能与其说有,不如说没有,弄的有点搞笑,属于半成品(倒是也符合pw的一贯特点--喜欢推出一些不完美的东西让大家修改)。

       çœ‹äº†dz5.5的分栏显示,做的还是比较完美的,感觉相当不错了。

       3、后台管理的效率:

       pw的横向操作非常不错,大大节省了管理的难度,特别是在根据用户组设置权限的时候,非常的那个方便啊,这方面dz需要改进。

       dz提供了一个方案的方式来解决后台重复操作问题,应该说也有一定道理,但是用起来不太容易上手,如果是设置一个单独的项目,就比较繁琐。

       4、个人空间(文集)功能:

       dz5.5内置了minispace个人空间功能,可以说自从discuz合并了supsite以后,在论坛功能的外展方面,占据了很大优势,吸引了很多个人网站的注意力。

       è¿™ä¸ªminispace用dz官方的话说,是这样的:

       â€œå®Œå…¨åˆ©ç”¨è®ºå›åŽŸæœ‰èµ„源,会员不必更多付出,即可拥有个性展示页面

       ä¸Ž X-Space 完美结合,可顺畅实现 MiniSpace 与 X-Space 自然过渡 ”

       å¤§ä½“看了一下,发现这个minispace做的很不错,利用它,用户可以把自己的优秀帖子整理出来,形成一个文集的方式,方便别人访问。以前在别的论坛见过这个功能,觉得很不错,没想到dz把它整合进去了。这个功能已经可以满足大部分论坛的功能要求了,如果要求更高,比如希望能让用户发布b0客文章,按照官方的说法,也可以迁移到X-space中去。但更重要的是,minispace是开源的,而X-space的源代码并不开放。

       è¯´åˆ°X-space,我们觉得,pw在功能上虽然足以和dz匹敌,但是在论坛的外延上,却比dz落后了好多。X-space能实现以论坛为中心的个人空间功能,而pwblog(已经改名为Lxblog,正式版未推出,本文仅以5.1.5版本为例)却和论坛貌合神离,帖子推送功能虽然从4.3.2就有了,然而却一直不好用,4.x推送以后,图片和附件都不正常,5.1.5虽然可以推送正常了,然而在论坛中更新的帖子,在b0客中却不再出现回帖,可以说推送功能在pwblog中只是一个无用的点缀而已。

       è¯´åˆ°åº•ï¼Œæˆ‘们常常希望的只是一个论坛帖子文集功能的方式,pwblog把论坛中的内容重复推送到b0客中,既浪费空间,又没有意义,这方面dz远远胜过了 pw,值得表扬。但minispace的功能还是略显简单了些,比如没有文集帖子的分类功能、没有首页推荐帖子等等(也许论坛帖子的分类意义不大,不过有总比没有强吧?)

       5、防灌水技术

       pw5.3终于接受了俺提出的新手注册第N贴以前发帖使用验证码的方式,这样既不影响老用户的使用,又通过验证码方式来限制恶意灌水机器人。dz未提供此功能,但是具有可以设定第N贴以后不用自定义问答的功能(dz的验证码很烂,根本看不清,用自定义问答似乎更好一些)。

       åœ¨é˜²æ­¢è‡ªåŠ¨æ³¨å†Œæ–¹é¢ï¼Œpw和dz都使用了自定义问答方式防止自动注册的办法,具体原理很简单,两者实现的都差不多。区别在于,dz要求设置个以上的问题才能生效,而pw只能设置一个问题。另外,还有一个区别,就是pw可以自定义问答中内部使用的form变量名,可能在防止恶意自动注册方面,会更加有效一些。pw的自定义问题只能用于注册,而dz的可以用在注册、发帖和短消息等方面。

       ä»Žç›®å‰çš„具体应用来看,用一个问题就基本上解决了自动注册的问题(长时间实践发现的结果),当然也不排除特大型网站,用一个问题容易被攻破的可能性,这方面dz可能就更有效一些。只是dz限制要求个以上才能生效的做法,令人费解。

       6、前台管理功能

       pw具备副版主功能,不过和一般的思路不同,副版主是由版主任命的,这样恐怕会导致权限混乱问题,所以也很少有人用这个功能。

       åœ¨å‰å°çš„管理功能中,pw更方便一些,不仅的主题列表中能进行管理,在帖子内容页面中的管理方式比dz用下拉方式更直观一些。而且在一个主题里面删除帖子,pw比dz直观多了。

       è´¹è§£çš„是,pw5.3版本中移动帖子,都会在帖子前面加入移动提示“本帖被 xxxx 从 xxxx 移动到本区(xxxxå¹´xx月xx日) ”,无法消除,真是难看极了(以前版本没有这个毛病)

       dz实现了“沉贴”的功能,可以把那些偶尔被人翻上来的无用垃圾贴沉下去,确实方便多了。。。。有次俺在pw中为了沉一个帖子,不得不提前了N个帖子。而且dz的版主管理功能,加亮、精华等操作都能一气呵成,比pw方便好多。

       7、所见即所得编辑器

       dz5.5和pw5.3开始,不约而同的把所见即所得编辑器换成了ubbcode(两个论坛名称不一样,这里用个通俗一点的名称,暂称为UBBCode)方式的编辑器,而放弃了原来的HTML可视化编辑器。

       è¯´èµ·æ¥ï¼Œè¿™ä¸ªubbcode可视化编辑器确实解决了以前采用代码方式,无法可视化,导致好多非IT人士发帖无法控制格式;而和动网一样使用HTML方式,又产生大量冗余代码和安全性隐患的问题。

       ä¸è¿‡é€ æˆçš„后果却是,在转贴的时候,以前可以直接从别人的网页上,连图片带文字一起转过来,却是非常方便,虽然有盗链之嫌。换成了这种编辑器,再也没法那么方便了,因此在换了编辑器以后,官方论坛中是怨声载道一片。。。。而且新的编辑器还有好多小BUG,更加是引起了广泛不满(另注:用了一段DZ后发现,dz 5.3的所见即所得编辑器好像存在很多问题,几乎无法用,这方面可能还不如pw的编辑器好用一些)

       8、附件上传和所见即所得功能:

       pw的附件还是只能提交帖子上传以后才能进行图文混排,这方面dz要好的多,可以上传前就进行混排,方便多了

       dz对不参与上传的图片附件还是显示太多信息,看起来影响美观(似乎是受vbb和phpbb的影响比较大)。而pw只是显示了“图片”字样和描述信息,但是更恶心的是,却把这些图片放到正文文字上方 ,真是屡教不改啊

       9、附件防盗链技术的分析:

       dz采用了隐藏图片地址,和检测访问来源(可选)的办法来防盗链,应该说服务器负担比较大,效果还行,但不能彻底解决问题。

       pw用的办法更简单,但更有效一些:就是定期或者自动修改附件目录名,应该说这是一个投资少见效快的好办法,技术上也很简单。不过最新的pw5.3版本也引入了隐藏附件地址的方式,后台也似乎无法关闭此项功能,似乎有点画蛇添足的味道了。。。。

       å‘现dz也可以在后台手工修改附件目录,也可以起到一定效果,只是没有自动修改的功能。

       ã€å¹¿å‘ŠåŠŸèƒ½ï¼š

       dz比pw要好一些,广告功能更完善一些。比如贴内广告,在帖子下面的位置类似动网的位置,看起来更整齐一些,而pw的位置就让帖子布局显得比较凌乱,不好看。dz的贴间广告可以插入大的Google Banner广告,或者其它图片形式的广告,展示效果很好。

       ç›¸æ¯”dz,pw广告的插入位置更少一些,效果也差一些。

       ã€å¤´åƒæ˜¾ç¤ºï¼š

       dz不能限制上传头像的长宽尺寸,只能限制总像素数,显得不够灵活,不如pw方便。而且超出了一定尺寸的头像,被自动缩放和拉伸了,看起来很难看。而且 dz还自动给头像加了一个边框,甚是恶心。可见dz把简单的事情给弄复杂化了,其实只要和pw一样,限制其尺寸,根本不需要拉伸。

       ã€é™„件尺寸限制:

       pw只能设定所有附件的尺寸,而dz可以对个别格式的附件设定上传尺寸,比较灵活一些,特别适合一些flash网站,或者技术型网站(比如上传大尺寸图纸等)。

       ã€è¯è¯­è¿‡æ»¤ï¼š

       pw只能使用普通方式过滤,不支持大小写(很简单的事情,官方就是不办,举手之劳啊)。

       è€Œdz不仅能识别大小写,而且具有了一定的模糊识别功能,相当不错了。当然,要是能直接支持正则表达式就更爽了。

       ã€è‡ªå®šä¹‰ä»£ç åŠŸèƒ½ï¼š

       pw至今不支持自定义wincode代码,比较僵化。要增加功能,就只能修改js文件,太过麻烦。。。。

       dz在这方面做的比较完美,要增加或者减少代码、修改播放界面尺寸都很容易,在后台设置一下就可以了

       ã€å›žæ”¶ç«™åŠŸèƒ½ï¼š

       dz可以设定自动清理,而pw不能

       ã€IP来源显示功能:

       dz的IP地址和来源显示类似动网,看起来不太方便,需要点击小电脑图标才行。还是pw的IP地址来源显示看起来比较舒服一些。

       ã€é˜²CC攻击:

       pw早在4.3.2就增加了抗CC攻击功能,而且设置起来比较简单,新手也能看懂。当初俺就是因为这个原因才用了pw。

       dz5.5虽然号称带有cc攻击防护,不过看起来比较难于理解,在后台找了半天也没找到,估计新手是操作不了的。当年某著名站长论坛(用dz)可就是被CC攻击搞的长期开不了张的,看起来dz的防CC攻击功能还有待改进。

       ã€å¤‡ä»½åŠŸèƒ½

       pw能支持对pw程序以外的数据表进行备份,而且判断标准不是根据表前缀。可以单独备份pw表以外的数据表,对于那些建立了新表的插件,备份数据超级容易,这方面比较人性化。

       dz只是根据表前缀来进行备份,比如你设置一个表,叫做cdb_test,那么它会把它认为是论坛数据表而进行备份。但是如果你设置一个表,叫做test,那就自己想办法去吧。。。。

       ä½†æ˜¯dz比pw强的是,备份可以压缩,压缩后下载和转存备份文件应该会节省巨大的空间和时间,对于超大型论坛应该是非常管用的。dz备份可以指定文件名,而且备份数据用十六进制表示(安全一些,但是占用空间会大一些),估计导入和恢复的中文内码问题就不会存在了。

       å¦å¤–,dz还可以备份MySQL Dump备份(不推荐使用)。

       ã€æ–‡ä»¶å’Œæ•°æ®åº“校验:

       dz内置了文件和数据库校验的功能,pw只是官方提供了一个文件校验工具,不过用起来有点莫明其妙,有时候提示使用的函数在php文件中根本不存在

       ã€ä¸»é¢˜æŽ¨èå’Œç›¸å…³è´´åŠŸèƒ½ï¼š

       dz通过qihoo实现了相关贴的功能,而且还可以支持主题推荐,这方面比pw强了很多。

       ã€æ¨¡ç‰ˆå’Œé£Žæ ¼è®¾ç½®

       phpwind可以在后台设置风格CSS文件,虽然新手不太容易上手,但确实还是比较方便的。

       dz更进一步,把css的内容给解释成了表单的形式,让新手也能操作,不过带来的缺点更加大了:如果你想在CSS中增加控制(比如调整行间距等),就不知道该怎么弄了,只好去修改模版。好在dz还提供了一个附加功能:在后台可以直接修改模版,而且编辑界面中还带搜索功能,总算是亡羊补牢了

       dz以较大优势在功能上超过pw,而且在dz有些胜过pw的功能上,好多都是以较大优势取胜。

       å››ã€æ€»ç»“

       æ€»ä½“来说,dz在功能上,界面上,技术上,论坛功能外延上,都胜过了pw。但pw也并非一无是处,其抗CC攻击功能,简洁快速的界面,强大的管理功能,独到的防盗链技术,都很有特色。所谓仁者见仁,智者见智,选择pw还是dz,仍然是一个个性化的问题,具体取决于你对他们的某项特点是否看重。

       å¦å¤–,感觉dz在浏览器兼容性上有点小问题,有时候会出现提示,什么从来路不明的什么东西提交信息,检查norton internet security配置之类的烦人问题,而且dz的验证码太恶心,根本看不明白,都赶上动网的烂验证码了,基本上没法用,只好关掉算完。

       éœ€è¦è¯´æ˜Žçš„是,如果是新手,需要选择论坛,还是建议选择dz,因为功能比较多,论坛的外延开发的比较好(supsite/X-space做的很不错),用起来方便一些,而且模版修改起来比较简单,容易上手。

       pw只是适合老手,和对论坛外延功能不太感兴趣的那些人使用,而且pw的模版修改起来相当困难,稍有不慎就容易出错,对新手不合适。

       PW适合娱乐站,速度快,功能多,官方集成各种插件,几乎不用维护

       pw现有的功能=dz+银行+多附件上传+在线会员统计+特殊用户组添加+节日送礼

       ä¸ªäººè®¤ä¸ºphpwind比较方便些,对于那些不想花时间装插件的人来说上手更容易

Element 2 组件源码剖析之 Layout (栅格化)布局系统

       深入剖析 Element 2 组件中的栅格化布局系统,此系统通过基础的模板模板分栏,为开发者提供快速简便的源码源码布局解决方案。本文将带你探索栅格系统如何通过行(row)与列(col)组件实现布局的分栏分栏灵活性与高效性。我们关注的模板模板是如何创建一致、规范、源码源码面试问jquery源码简洁的分栏分栏网页布局,提升用户体验。模板模板

       网页栅格化布局是源码源码提升页面设计与开发效率的关键工具,它让页面布局更加统一且易于复用。分栏分栏Grid.Guide、模板模板Bootstrap 等工具提供了灵活的源码源码栅格系统,允许开发者自定义最大宽度、分栏分栏ntlm源码列数及边界,模板模板以生成优化的源码源码栅格方案。Element 2 则借鉴 Ant Design 的理念,采用栅格系统基础上的等分原则,以应对设计区域内的大量信息收纳需求。

       栅格化布局系统的phpcount源码核心在于行(row)与列(col)组件。组件行(row)作为列(col)的容器,通过渲染函数构建,支持自定义HTML标签渲染,允许开发者根据需要灵活定制布局结构。列(col)组件则通过渲染函数构建,提供丰富的history源码配置选项,包括间距、对齐方式等,以满足不同布局需求。

       行(row)组件支持通过属性动态调整样式与自定义标签,如gutter属性用于设置栅格间隔,type属性可选择使用Flex布局以实现更灵活的nest源码布局模式。justify与align属性分别控制Flex布局下的水平与垂直对齐方式,提供多种排列选项。此外,组件还通过计算属性计算样式,以抵消列(col)组件的内边距,确保布局的精确性。

       列(col)组件则通过渲染函数构建,支持自定义标签渲染,同时包含多个配置属性,如span用于指定列的宽度,gutter属性获取父组件row的间距设置,并根据此计算自己的内边距。组件还动态计算样式,以实现栅格、间隔、左右偏移的灵活调整。响应式布局特性使组件能够在不同屏幕尺寸下自动调整布局,提供适应性设计。

       通过组件的渲染函数与属性配置,Element 2 的栅格化布局系统实现了一种高效、灵活且可扩展的布局解决方案,为开发者提供了强大的工具来构建响应式、美观且功能丰富的网页布局。

相关栏目:综合