跳转到主要内容

有时是Products.slideshowfolder的有用扩展

项目描述

有时是Products.slideshowfolder的有用扩展

SlideshowImage

SlideshowImage内容类型使用对站点中某个现有正常图像的引用来作为链接或别名。这允许创建一个作为slideshowfolder的文件夹,显示实际上存储在其他地方的照片。

从几个普通文件夹和一个普通图像开始。

>>> portal.images
<ATFolder at /plone/images>
>>> portal.images.contentValues()
[<ATImage at /plone/images/foo-image-title>]
>>> foo_image = portal.images['foo-image-title']
>>> folder.contentValues()
[<ATFolder at /plone/Members/test_user_1_/slideshow>]
>>> folder.slideshow.contentValues()
[<ATImage at
  /plone/Members/test_user_1_/slideshow/bar-image-title>]

打开浏览器并登录为可以添加SlideshowImages的用户。

>>> from Products.Five import testbrowser
>>> from Products.PloneTestCase import ptc
>>> portal.error_log._ignored_exceptions = ()
>>> member_browser = testbrowser.Browser()
>>> member_browser.handleErrors = False
>>> member_browser.open(portal.absolute_url())
>>> member_browser.getLink('Log in').click()
>>> member_browser.getControl(
...     'Login Name').value = ptc.default_user
>>> member_browser.getControl(
...     'Password').value = ptc.default_password
>>> member_browser.getControl('Log in').click()
>>> member_browser.open(folder.slideshow.absolute_url())

添加一个SlideshowImage。将“图像引用”字段设置为图像文件夹中的实际图像。

>>> member_browser.getLink(
...     url='createObject?type_name=SlideshowImage').click()
>>> member_browser.getControl(
...     'Image Reference').value = foo_image.UID()

由于所有值都来自引用的图像,因此没有正常图像字段可编辑。

>>> member_browser.getControl('Title')
Traceback (most recent call last):
LookupError: label 'Title'
>>> member_browser.getControl('Description')
Traceback (most recent call last):
LookupError: label 'Description'
>>> member_browser.getControl(name='image_file')
Traceback (most recent call last):
LookupError: name 'image_file'
>>> member_browser.getControl('Creators')
Traceback (most recent call last):
LookupError: label 'Creators'

保存新的SlideshowImage。

>>> member_browser.getControl('Save').click()

字段值是从引用的图像中拉取的。

>>> print member_browser.contents
<...
...Changes saved...
...Foo Image Title...
...Foo CreÃtor...
...Foo Image description...
>>> member_browser.getLink('Click to view full-size image')
<Link text='Foo Image Title[IMG] [IMG]
Click to view full-size image...'
url='http://nohost/plone/Members/test_user_1_/slideshow/foo-image-title/image_view_fullscreen'>
>>> member_browser.open(
...     folder.slideshow['foo-image-title'].absolute_url())
>>> print member_browser.contents
GIF...

目录也反映了引用图像的数据。

>>> len(portal.portal_catalog(
...     Type='Slideshow Image',
...     Description='Foo Image description'))
1

当原始图像被编辑时,字段编目和索引的值也会更新。

打开浏览器并以图像的创建者身份登录。

>>> owner_browser = testbrowser.Browser()
>>> owner_browser.handleErrors = False
>>> owner_browser.open(portal.absolute_url())
>>> owner_browser.getLink('Log in').click()
>>> owner_browser.getControl(
...     'Login Name').value = ptc.portal_owner
>>> owner_browser.getControl(
...     'Password').value = ptc.default_password
>>> owner_browser.getControl('Log in').click()

更改图像元数据。

>>> owner_browser.open(foo_image.absolute_url()+'/edit')
>>> owner_browser.getControl(
...     'Description').value = 'Foo Image edited'
>>> owner_browser.getControl('Save').click()

目录现在反映了引用图像的SlideshowImage的更改。

>>> len(portal.portal_catalog(
...     Type='Slideshow Image',
...     Description='Foo Image description'))
0
>>> len(portal.portal_catalog(
...     Type='Slideshow Image',
...     Description='Foo Image edited'))
1

幻灯片文件夹

在文件夹中使用slideshowfolder视图的SlideshowImages表现得就像普通图像一样。

将文件夹变成幻灯片文件夹。

>>> member_browser.open(folder.slideshow.absolute_url())
>>> member_browser.getLink('Make slideshow').click()
>>> print member_browser.contents
<...
...This folder is now designated a slideshow...

通过检查JavaScript来确保SlideshowImage包含在幻灯片中。collective.slideshowfolder软件包还扩展了字幕,包括图像的创建者以供信用。

>>> member_browser.open(
...     folder.slideshow.absolute_url()+'/slideshow_settings.js')
>>> print member_browser.contents
registerPloneFunction...
...http://nohost/plone/Members/test_user_1_/slideshow/bar-image-title/image_large...
...Photo: Foo Full NÃme...
...Bar ImÃge description...
...http://nohost/plone/Members/test_user_1_/slideshow/foo-image-title/image_large...
...Photo: Foo CreÃtor...
...Foo Image edited...

幻灯片组件

集体幻灯片文件夹包还提供了一个组件,该组件基于上下文“幻灯片”引用中指定的第一个文件夹或集合的内容,在组件中渲染幻灯片2。

将文件夹转换为幻灯片文件夹。

>>> slideshowfolder = self.folder.slideshow
>>> self.loginAsPortalOwner()
>>> portal.portal_workflow.doActionFor(
...     slideshowfolder, 'publish')
>>> slideshowfolder.unrestrictedTraverse(
...     '@@folder_slideshow_view').makeSlideshow()

打开浏览器并登录为可以添加组件的用户。

>>> from Products.Five import testbrowser
>>> from Products.PloneTestCase import ptc
>>> browser = testbrowser.Browser()
>>> browser.handleErrors = False
>>> browser.open(portal.absolute_url())
>>> browser.getLink('Log in').click()
>>> browser.getControl('Login Name').value = ptc.portal_owner
>>> browser.getControl('Password').value = ptc.default_password
>>> browser.getControl('Log in').click()

添加幻灯片文件夹组件。

>>> browser.getLink('Manage portlets').click()
>>> right_column = browser.getForm(index=3)
>>> right_column.getControl('Slideshow portlet').selected = True
>>> right_column.submit()
>>> browser.getControl('Save').click()
>>> browser.getLink('Log out').click()

转到网站上没有幻灯片的区域。

>>> context = portal.news.aggregator
>>> browser.open(context.absolute_url())
>>> 'portletSlideshow' in browser.contents
False

为上下文添加幻灯片文件夹引用。

>>> context.addReference(slideshowfolder,
...                      relationship="slideshow")
<Reference sid:... tid:... rel:slideshow>

现在幻灯片组件将被渲染。

>>> browser.open(context.absolute_url())
>>> print browser.contents
<...
...mootools...
...portletSlideshow...
...id="myShow"...
...registerPloneFunction...
...http://nohost/plone/Members/test_user_1_/slideshow/bar-image-title/image_large...

变更日志

0.8 - 2009-07-08

  • 修复组件添加视图

0.7 - 2009-03-22

  • 修复标题中的另一个Unicode错误(aaronv)

0.6 - 2009-03-21

  • 修复标题中的Unicode错误(aaronv)

0.5 - 2009-02-07

  • 修复生成组件JavaScript中的类型错误(感谢aaronv!)

0.4 - 2008-12-03

  • 修复组件JavaScript

  • 使组件完全可编辑

  • 为组件设置更合理的默认高度和宽度

0.3 - 2008-12-02

  • 支持基于幻灯片文件夹引用的幻灯片组件

0.2 - 2008-11-13

  • 在标题中将图像创建者作为信用添加

0.1 - 2008-11-12

  • 初始发布

项目详情


下载文件

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

源分发

collective.slideshowfolder-0.8.tar.gz (12.6 kB 查看散列)

上传时间

由支持

AWSAWS云计算和安全赞助商DatadogDatadog监控FastlyFastlyCDNGoogleGoogle下载分析MicrosoftMicrosoftPSF赞助商PingdomPingdom监控SentrySentry错误日志StatusPageStatusPage状态页