Skip to main content

一个辅助 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 还有一个链接(在页脚中)到浏览器视图,显示每种检测方法的结果。

变更日志

1.1.2 - (2009-08-20)

  • 通过缺少清单文件修复损坏的包 [lzdych]

1.1 - (2009-07-08)

  • 从检测视图中删除了内容提供者和可编辑边框 [lzdych]

  • 使用模板中的检测器修复了 README 示例中的错误 [lzdych]

  • 添加了与 Firefox 浏览器相关的显式条件属性 [lzdych]

  • 添加了 Firefox 相关的样式表模板 [lzdych]

1.0 - (2009-06-16)

  • 初始发行

项目详情


下载文件

下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。

源分布

collective.browserdetector-1.1.2.zip (49.3 kB 查看哈希

已上传 source