【问题标题】:Is there a metod to have a trash can in Plone?有没有办法在 Plone 中有一个垃圾桶?
【发布时间】:2015-11-03 21:05:26
【问题描述】:

我想为 Plone (4.3.7) 站点的所有成员提供恢复意外删除文件的可能性。 我只为此目的找到了 ecreall.trashcan,但我在安装时遇到了一些问题。将其添加到 buildout.conf 并执行 bin/buildout 后,输出包含一些错误,例如...

文件“build/bdist.linux-x86_64/egg/ecreall/trashcan/skins/ecreall_trashcan_templates/isTrashcanOpened.py”,第 11 行 返回会话和 session.get('trashcan', False) 或 False SyntaxError: 'return' 外部函数

文件“build/bdist.linux-x86_64/egg/ecreall/trashcan/skins/ecreall_trashcan_templates/object_trash.py”,第 23 行 返回上下文。翻译(味精) SyntaxError: 'return' 外部函数

文件“build/bdist.linux-x86_64/egg/ecreall/trashcan/skins/ecreall_trashcan_templates/object_restore.py”,第 23 行 返回上下文。翻译(味精) SyntaxError: 'return' 外部函数

...

因此,我没有在站点设置中找到要启用或配置的任何新插件。

有人知道可能是什么,还是有另一种方法可以做我想做的事? 请....提前谢谢

【问题讨论】:

    标签: python plone plone-4.x


    【解决方案1】:

    像“return outside function”这样的输出是harmless during install,编译器认为它需要编译稍后只会在Plone内部运行的脚本(它在函数内部,但编译器不知道)。

    在实验中,Trashcan 似乎需要一个 zcml slug,即在您的 buildout.cfg 中,在 [buildout] 部分中,扩展 zcml 短语:

    ############################################
    # ZCML Slugs
    # ----------
    # Some eggs need ZCML slugs to tell Zope to
    # use them. This is increasingly rare.
    
    zcml =
        ecreall.trashcan
        (further lines)
    

    至少,它显示在 ZMI 快速安装程序中,我没有进一步调查。

    【讨论】:

    • 好的,明白了...谢谢!此时的问题是:我在哪里启用这个插件,在哪里?
    • 在快速安装程序中安装后(或可能通过控制面板>插件),您会在操作菜单中找到“移动到垃圾箱”(或“恢复”,如果页面已经那里),并且内容区域中将有一个垃圾桶图标将您带到垃圾桶。插件部分似乎没有配置面板。
    • 正如你所建议的 Ulrich,我在 zcml 下插入了 ecreall.trash 可以。之后插件出现在插件面板中,我已经启用它。好的,现在有一个小垃圾桶图标,但也有很多问题。一个内容可能再次被删除,并且它没有进入垃圾箱,我必须使用 -move 到垃圾箱的功能。我必须在图标中单击 2 次才能进入垃圾桶内部或外部,并且当我认为要退出时,它会在我在其他文件夹中导航或第一次返回时重新出现。这些内容不会显示给我,并且一条消息警告我再次进入垃圾桶:(
    【解决方案2】:

    如果您没有找到合适的插件,请知道在 Plone 中,垃圾箱只能是工作流程的问题。 您可以自定义您的工作流程,添加一个新的 trash 转换,将内容移动到用户看不到的状态(trashed)(可能保持对 Manager 和/或站点管理员)。

    您可能还必须自定义 content_status_modify 脚本,因为在内容上的垃圾之后您必须被重定向到另一个位置(否则您将收到 Unhautorized 错误)。

    【讨论】:

    • 感谢 keul,但我想为已删除内容的用户提供恢复内容的可能性
    【解决方案3】:

    我在控制面板中找到了使用 -Content Rules- 的解决方案(!!!)。
    首先,我创建了一个名为 TRASHCAN 的文件夹,在内容规则之后,我添加了一个规则,如果文件/页面/图像将被删除,则将其复制到文件夹垃圾桶中。
    此规则可以在垃圾桶文件夹中禁用,因此您可以确定删除里面的对象。

    【讨论】:

    • 不错的解决方案!我只看到一个问题:如果您在删除时复制垃圾箱中的内容,稍后您会恢复它,它实际上是一个不同的对象:您丢失了内容历史、关系以及可能还有内部链接.
    • 有趣的发现 keul。我注意到另一件事,非常重要......当我进入内容并删除某些内容(选择对象并按下删除)时,它会进入垃圾文件夹,但如果我打开一个元素并选择动作删除,这不会去在垃圾桶里……我不知道为什么……
    【解决方案4】:

    adi.trash 可能就是您要找的。通常的免责声明:Io sono authorista。

    【讨论】:

    • @fabiosko:谢谢,当然我很好奇你的体验 :-)
    猜你喜欢
    • 2021-04-04
    • 1970-01-01
    • 2021-06-22
    • 2011-02-12
    • 2018-11-28
    • 1970-01-01
    • 1970-01-01
    • 2021-03-27
    • 2012-09-21
    相关资源
    最近更新 更多