图片中的图片(lightbox/greybox)支持plone
Products.pipbox的Python项目详细描述
简介
pip=图片中的图片
pipbox=图片框在plone中
pipbox是一个向后兼容层,它提供了plone 4的 plone 3.3.x中的ajax弹出式支持。
这允许lightbox样式的弹出窗口,可以作为图像、ajax html和 或iframes。
Pipbox目前做三件事:
< Buff行情>- 加载plone.app.jquery tools;
- 添加许多标准的plone 4弹出表单;
- 提供将jquery工具bling连接到css选择器的框架。 没有javascript。
pipbox已经用plone 3.3.x进行了测试,它基本上与plone 4兼容, 但没什么理由用它。如果你把它和plone 4一起使用, 您需要关闭(在portal_javascripts中)由提供的popupforms.js 有利于PLONE提供的管道箱。
在pipbox和plone.app.jquerytools就位后,可以使用plone.app.jquerytools 添加弹出窗口的记录机制。
您也可以使用表驱动的设置,表中的设置允许 您可以通过jquery选择器指定dom元素。这些通常会 成为<;a ref…/>;或<;img src…/>;元素。指定url应该如何 已加载(作为图像、ajax或iframe)。您也可以选择提供 url的表达式搜索/替换对和 JS引擎。
选项使用javascript对象表示法指定并存储在属性表中 在门户属性中。
覆盖示例
比如说,你想点击新闻图片 打开图像的lightbox样式放大版本。要做到这一点,你需要 指定:
< Buff行情>- plone元素的jquery样式选择器,例如".newsImageContainer a"
- 加载方法的"image"("ajax"和"iframe"是其他可选方法)
- 一个正则表达式搜索/替换来转换ref或src url。 在本例中,我们将URL更改为指向预览大小 图像。因此,我们的搜索/替换对是"/image\u view\u fullscreen" 以及"预览"。
- 您还可以指定其他覆盖配置参数。
pipbox的站点设置是表驱动的,在 portal_properties.pipbox_properties.selector_规格。在这个表中,每一行都是一个json 对象规范,因此,以上所有内容都需要像这样的行:
{type:'overlay',subtype:'image',selector:'.newsImageContainer a',urlmatch:'/image_view_fullscreen$',urlreplace:'_preview'}
另一个快速示例,为通过kupu放置的图像提供完整的图像弹出窗口:
{type:'overlay', subtype:'image', selector:'img.image-right,img.image-left,img.image-inline', urlmatch:'/image_.+$',urlreplace:''}
有什么不同?我们的目标是<;img…/>;标记,这些标记没有ref属性。 pipbox从src属性中获取目标url,这样我们就可以有一个弹出视图 未链接到该视图的图像元素的。还要注意,我们使用的是 在搜索/替换中使用正则表达式,这样我们就可以去掉图像预览、图像迷你, 等
并且,将站点地图放入带有公开设置的iframe弹出窗口中的配置 来自a href:
的目标{type:'overlay',subtype:'iframe',selector:'#siteaction-sitemap a',config:{expose:{color:'#00f'}}}
选项卡示例
jquery工具将制表符、垂直折叠和水平折叠统一为"制表符"。标签是 绑定到"窗格"–选择制表符时显示的DOM元素。
通过提供"tabcontainer"选择器和选择选项卡的"tabs"选择器来标识选项卡 容器中的元素。提供"窗格"选择器以查找显示的窗格。
所以,如果我们想将带有"pbtabs"类选择器的显示列表转换为选项卡显示,我们 可以使用设置:
{type:'tabs',tabcontainer:'dl.pbtabs',tabs:'dt',panes:'dl.tabs > dd'}
为了帮助使用css,pipbox将用'pbactive'类标记tabcontainer和窗格 当js不可用时,帮助您确保制表符正常降级的选择器。
目前没有对选项卡的css支持;我们可能会添加一些看起来像 普拉塔BS。此外,可能还有子类型支持ajax加载选项卡内容。
选项
完整的选项列表:
< Buff行情>- type:'overlay','tabs'(其他jquery工具效果将出现)
- config:jquery tools字典中的配置选项
对于套印格式,添加选项:
< Buff行情>- 子类型:"image""iframe""ajax"
- 选择器:用于查找元素的jquery选择器
- urlmatch:目标url的一部分的正则表达式
- urlreplace:匹配表达式的替换表达式
- 宽度:弹出窗口的宽度。让unset通过css确定。 由图像覆盖的图像宽度覆盖。
对于ajax覆盖,添加选项:
< Buff行情>- formselector:用于为任何 要处理的加载内容中的窗体 通过执行ajax加载来替换覆盖 内容。
- noform:提交ajax表单并返回 内容与窗体选择器不匹配。可用操作包括 "close"只需关闭覆盖,"reload"重新加载页面,然后 "重定向"可重定向到另一页。如果选择"重定向",则 必须在重定向选项中指定URL。
- closeSelector:使用此选项指定将要使用的jquery选择器 在覆盖中查找应关闭覆盖的元素 点击。最明显的例子是表单的取消按钮。
- 重定向:如果为noform操作指定"重定向",请使用 重定向选项以指定完整的目标URL。
对于选项卡,添加选项:
< Buff行情>- tabcontainer:一个jquery选择器,用于标识选项卡的容器
- tabs:一个jquery选择器,用于标识应该 成为标签。
- 窗格:用于将窗格绑定到选项卡的jquery选择器。
ajax
一些pipbox选项允许使用ajax获取内容。当你 通过ajax将内容加载到覆盖图或选项卡中,几乎总是 只需要加载内容的一部分。例如,如果你 拿起一个plone页面,您可能只需要"content div"的内容。
为此,只需向目标url添加css(或jquery)选择器。 jquery的load方法(pipbox使用的)将只获取内部的内容 选择。
例如,假设您希望显示标准的plone站点地图 在一个覆盖层中。您可以使用:
{type:'overlay',subtype:'ajax',selector:'#siteaction-sitemap a',urlmatch:'$',urlreplace:' #content > *'}
urlmatch/urlreplace代码在url末尾添加一个选择器 调用jquery的load获取内容,只获取 #内容分区
如果不指定从加载页的dom中选择的内容,则将得到 页面正文部分的所有内容。
有些浏览器缓存ajax加载,因此会向url添加一个随机参数。
ajax表单
pipbox可以自动处理覆盖范围内的表单 通过执行ajax post操作,然后用 结果:
使用"formselector"选项指定此处理的表单。内容 重新使用原始覆盖中指定的筛选器。
例如,如果您希望在 覆盖,您可以指定:
{type:'overlay',subtype:'ajax',selector:'#siteaction-contact a',urlmatch:'$',urlreplace:' #content>*', formselector:'form'}
另一个示例:使用弹出窗口(从"操作"菜单)删除确认和重命名表单:
{type:'overlay',subtype:'ajax',selector:'a#delete,a#rename',urlmatch:'$',urlreplace:' #region-content','closeselector':'[name=form.button.Cancel]'}
这里有一些不同之处。首先,没有表单选择器 指定;这是因为我们不想安装ajax提交处理程序 当我们重命名或删除显示的对象时。第二,我们指定 关闭选择器,按下取消按钮将关闭覆盖 无需提交表格。