Plone技术培训讲师:潘俊勇上海润普网络信息技术有限责

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

Plone技术培训讲师:潘俊勇上海润普网络信息技术有限责任公司版权所有www.zopechina.com课程安排●第一天:–Zope总体介绍、主要的概念和原理、权限–Plone介绍、原理、定制、工具开发接口●第二天:–Python脚本、开发接口、页面模板技术–Plone皮肤●第三天:–Plone扩展开发、集成–润普知识门户方案介绍课程资料●PPT讲稿–配以注释说明–提供更多参考的链接●training.zopechina.com–例程、辅助练习工具●课后练习作业–巩固白天学习的内容●Freemind:全面的知识参考大纲●在线书籍–opebook–ope开发人员指南–lone完全指南本节内容●zope总体介绍,和相关概念●zope对象发布原理●zope用户和权限管理Zope是什么●Zope–ZObjectPublishingEnvironment–www.zope.org●Web应用服务器(web开发框架)●竞争产品–Weblogic–ColFusion为什么选择Zope●免费的开源产品●自包含的系统●大量的扩展包●scale可扩展(ZEO)●直接使用浏览器开发,安全分配开发工作●细粒度的和可扩展的权限框架.●支持undo、history等功能●几乎支持所有的操作系统●使用PythonZope的历史●Zope公司–1996:开放Bobo,DocumentTemplate,BoboPos.–1998.11:开放Principia,改名zope●CMF:内容管理框架–Plone:Plone基金会–Archetypes:CMF扩展开发框架–CPS:法国Nuxeo公司–Silva:瑞典Infrae公司●Zope3:完全组件架构的Zope重写–Z3ECM:企业内容管理●Zope基金会:将在今年8月成立●美国海军/北约/美洲银行/SGI/法国政府...Zope2系统架构Zope目录结构●Software和Instance–Software是Zope的软件部分–Instance是Zope的运行环境–使用mkzopeinstance.py可创建多个Instance●Software–bin–lib/python–lib/python/Products●Instance–binetclogvarProductsExtensionimportzope的运行●Windows–服务–runzope.bat●Linux–zopectlstart/stop–zopectldebug(调试程序)Zope概念和原理●ZMI:Through-The-Web开发●面向对象:高度面向对象●对象透明存储:ZODB–ZEO●对象发布:objectpublishing–获取机制●权限管理ThroughtTheWeb管理●直接使用浏览器开发和管理ZMI=ZopeManagementInterface●不需要访问文件系统–ZMI类似资源管理器–Zope对象系统类似文件系统●用途–脚本人员:快速的脚本开发–内容管理人员:添加、编辑内容–系统管理员:权限管理、配置参数–(Zope扩展开发,一般不用ZMI)面向对象●对象(object):数据和逻辑的封装–ZMI:zope对象的管理界面–※对象导航:对象层次结构●属性(attributes):对象的数据–※Zope:Properties●方法(method):对属性的逻辑操作–和一个对象绑定的函数(function)–Zope的方法对象●类和实例:抽象和重用.(ZClass/Product)●继承:ZMI的doc标签●对象存活期:Persistent/Request/SessionZODB数据库●ZODB:ZopeObjectDataBase●高性能,对象cache管理●支持事务–和关系数据库的事务机制配合●存储可适配:FileStorage/DirStorage/APE●可分区挂接:ZODBMountPoint●对象导入和导出●多层的undo功能、历史版本(Pack)●对ZODB的访问完全透明●增量备份:repozo.py●支持ZEOZEO:架构●ZopeEnterpriseObject数据库服务器●作用–负载均衡–容错–适应地理分布的结构–调试程序ZEO:实现方法●原理–CacheClientStorage–数据同步机制●创建mkzeoinstance.py●配置zeo.confzope.conf对象发布原理对象发布过程对象发布-请求(request)●:8080/Resources?batch_start=100–:8080–/Resources(对象的路径)–?batch_start=100(调用传递的参数)●组装REQUEST变量–※formcookiesessionURL–form参数的Marshall●form源头:get(链接)/post(表单)●booleanintlongfloatstringrequiredignore_emptydatelisttuplelinestokenstext对象发布-遍历(traversal)●http://localhost/vertebrates/mammals/monkey/screech●遍历方法–a.__bobo_traverse__(next)–a.next–a[next]●遍历权限–※restrictedTraverse●SetAccessRule获取(acquization)●获取:对象可获取容器对象的属性和行为–※A/C/D/B●继承VS获取:先天VS后天●作用–找到服务性质对象:放在上层,以便获取–通过context改变对象的行为–获取在Zope2中无所不在–URL/Script/DTML/PageTempate●contextVSContainer–context是调用路径的上下文对象常用的获取API●显/隐式获取对象–obj.aq_aquire(attr_name):获取函数–obj.aq_explicit:得到一个必须显式获取的对象●aq_parent:context上级对象●aq_inner:得到直接的容器关系●aq_base:去除获取包装对象发布方法●找到发布对象后–直接调用–寻找默认方法:index_html–字符串化str●※HTTPRESPONSE–REQUEST.RESPONSE–response.write('')–response.setHeader('Content-Type','text/html;charset=utf-8')–response.redirect()对象发布:总结●对象发布:根据URL,定位对象,执行,返回结果●request变量是对各种请求的抽象●路径依次遍历,定位到对象●获取提供了灵活的对象查找机制●request.RESPONSE返回结果Zope权限概念●Zope权限管理:设置某用户在某个对象上,能否执行某个操作–代码映射:操作-权限项–问题:权限项太多●引入角色:对应某个对象上的一组权限。●在对象上给用户某个角色,实现批量授权–问题:对象太多●引入获取:自动从对象上级目录获取权限●给父目录设置权限,自动也给子目录设置权限–问题:用户太多●引入组:用户的集合●为组分配角色,组中的用户自动获得角色权限设置●权限判别路径–用户-角色-权限项-操作–用户-组-角色-权限-操作●权限设置:–用户-角色(类型:本地/继承/系统)–组-角色(类型:本地/继承/系统)–用户-组(类型:系统/本地?/继承?)–角色-权限●开发人员在网站根目录ZMI下统一设置●Plone中最终用户改变状态,批量改变权限权限模型图用户文件夹●acl_users–保存用户认证信息–定义用户系统角色–定义用户的系统组●任何地方都可建立独立的用户文件夹–通过获取找到进行认证的用户文件夹●pluggable–自带–LDAP–数据库–...Zope/Plone的权限●常见权限–View:查看具体内容–Addportalcontent:添加内容–Listfoldercontents:列举文件夹内容清单–Deleteobjects:删除内容–Modifyportalcontent:编辑内容–Addportalmember:注册到网站–Replytoitem:评注Plone的角色●自动分配的角色–Anonymous:匿名用户–Authenticated:认证用户●可手工分配的角色–Owner:所有者–Member:成员–Reviewer:审批人–Manager:管理员Zope2的开发技术●脚本逻辑:–PythonScript–ExternalMethod●动态页面:–PageTemplate–DTML●数据库访问–SQLMethod●产品开发–ProductZope的一些服务(工具)●SiteAccessRule:网站访问规则●virtual_hosting_monster:虚拟主机●Cache:缓存管理–RAMCache–HTTPCache●Session:session的管理●zcatalog:查询搜索●error_log:错误日志●MailHost:邮件发送

1 / 32
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功