一个辅助 Plone 扩展,可以更轻松地包含特定于几种类型的浏览器或平台的资源。
项目描述
关于
一个 helper Plone 扩展,可以更轻松地包含特定于不同类型浏览器或平台的 CSS、JS、KSS 或 HTML 等资源。
安装
此软件包需要 Plone 3.x 或更高版本(也应与 2.5.x 一起使用)。
安装无需扩展
将此包安装在系统路径包或 Zope 实例的 lib/python 目录中。您可以使用 easy_install 或通过 setup.py 脚本执行此操作。
安装软件包后,它需要在您的 Zope 实例中注册。这可以通过将collective.browserdetector-configure.zcml 文件放入etc/package-includes 目录中的内容来完成:
<include package="collective.browserdetector" />
或者,您可以将该行添加到已注册的包或产品中的 configure.zcml 中。
安装与构建
如果您使用buildout来管理您的实例,则安装collective.browserdetector 会更简单。您可以通过将collective.browserdetector 添加到您的实例的eggs 行来安装它:
[instance] eggs = collective.browserdetector zcml = collective.browserdetector
最后一行告诉 buildout 生成一个 zcml 片段,告诉 Zope 配置collective.browserdetector。
如果另一个包依赖于collective.browserdetector egg或者直接包含它的zcml,你不需要在buildout配置中指定任何东西:buildout会自动检测到这一点。
更新配置后,您需要运行“bin/buildout”,它将负责更新您的系统。
用法
有几种浏览器,大多数是较旧的版本,它们以与最新版本的普通浏览器不同的方式呈现网站。因此,如果您需要在您的网站上支持这些浏览器,一种可能的方法是包含针对其不同行为的修复程序,即包含针对特定浏览器的单个资源。
默认情况下,Plone 包括 IEFixes.css 文件(以及其他一些文件),例如,与所有 IE 浏览器相关的修复/黑客攻击在哪里,但是如果您需要针对每个 IE 版本进行不同的修复怎么办?依次出现collective.browserdetector。
1.懒惰方式(快速开始)
通过快速安装程序安装浏览器检测器
转到 ZMI:/portal_skins/collective.browserdetector
为您的浏览器选择 css 模块(按其名称)并对其进行自定义
将您的 css hack 添加到自定义 css 文件中
转到 ZMI:/portal_css 并注册您的新资源,请参阅通用设置配置示例::
<stylesheet title="" id="IE6.css" media="screen" rel="stylesheet" rendering="import" cacheable="True" compression="safe" cookable="True" enabled="1" expression="python:portal.restrictedTraverse('@@browser-detector').isIE6"/>
不要忘记设置正确的表达式,但别担心,在这个例子中,你唯一需要注意的是它的最后一部分“isIE6”,你应该根据目标浏览器使用正确的检测器属性(可用列表检测器属性包括在下面)
就是这样。
2. 使用策略或主题
将collective.browserdetector 注册为您的策略包的依赖项(在metadata.xml 配置文件模块中)
在皮肤层中包含带有修复的 css 文件(您可以从collective.browserdetector/collective/browserdetector/skins/collective.browserdetector复制准备好的css文件)
通过通用设置注册您的 css 文件(有关示例,请参见collective.browserdetector/collective/browserdetector/profiles/default/cssregistry.xml.example)
就是这样。
3.探测器属性
以下是可用于条件的检测器属性:
isSecure, isWebKit, isOpera, isChrome, isSafari, isSafari3, isSafari4, isIE, isIE7, isIE8, isIE6, isGecko, isGecko3, isGecko2, isFirefox, isFirefox1, isFirefox2, isFirefox3, isWindows, isMac, isLinux, isSafariOnMac, isSafariOnWin, isGeckoOnMac, isGeckoOnLinux, isGeckoOnWin, isFirefoxOnMac, isFirefoxOnLinux, isFirefoxOnWin, isOperaOnMac, isOperaOnLinux, isOperaOnWin, isChromeOnMac, isChromeOnLinux, isChromeOnWin
有关更多信息,请参阅 interfaces.py 模块。
4.小贴士
您也可以对 kss 和 javascript 资源使用检测器条件
您可以在模板中使用检测器根据浏览器/平台呈现不同的 (X)HTML,例如:
<tal:block define="detector nocall:context/browser-detector"> <tal:firefox condition="detector/isFirefox"> HERE COMES THE CODE FOR FIREFOX </tal:firefox> <tal:ie condition="detector/isIE"> HERE COMES THE CODE FOR IE </tal:ie> </tal:block>
此外,您可以在浏览器检测器 portlet 中显示浏览器检测信息。转到 portlet 管理页面 (@@manage-portlets) 并添加新的 portlet “Browser Detector”。Portlet 还有一个链接(在页脚中)到浏览器视图,显示每种检测方法的结果。
版权和学分
collective.browserdetector 在 GPL 下获得许可。有关详细信息,请参阅 LICENSE.txt。
作者:卢卡斯·兹迪奇。
主页:DMS4U。
为NEXTUP开发。
变更日志
1.1.2 - (2009-08-20)
通过缺少清单文件修复损坏的包 [lzdych]
1.1 - (2009-07-08)
从检测视图中删除了内容提供者和可编辑边框 [lzdych]
使用模板中的检测器修复了 README 示例中的错误 [lzdych]
添加了与 Firefox 浏览器相关的显式条件属性 [lzdych]
添加了 Firefox 相关的样式表模板 [lzdych]
1.0 - (2009-06-16)
初始发行