管理和自动化Plone网站上的社会出版
项目描述
简介
为管理者提供一个视图小部件(以及底层的机制),允许将内容发布到社交网络(目前仅限Twitter)。可以通过为内容启用它来自动化社会发布。
要启用视图小部件,只需使用 collective.socialpublisher.interfaces.IPublishable 标记您想要的内容类型。您可以从ZMI或通过ZMCL进行操作。
<class class="Products.ATContentTypes.content.event.ATEvent"> <implements interface="collectinve.socialpublisher.interfaces.IPublishable" /> </class> NOTE: this is already done by the package in this alpha stage.
Twitter账户管理由 collective.twitter.accounts 完成。
您可以通过注册一个提供 collective.socialpublisher.interfaces.ISocialPublisherUtility 的实用工具来提供发布者。有关详细信息,请参阅 collective.socialpublisher.utility。
要启用自动发布,您必须为每个内容启用它(等待全局配置),并创建一个调用 @@social-auto-publish 的cron。您可以使用 Products.cron4plone 或通过buildout进行操作,如下所示
[instance] ... zope-conf-additional = <clock-server> method /plonesite/@@social-auto-publish period 1000 user admin password admin </clock-server>
另请参阅 http://collective-docs.readthedocs.org/en/latest/misc/asyncronoustasks.html。
在以下平台上测试
Plone 4.1 + 4.2rc1
发布管理器
让我们创建一个事件
>>> from plone.app.testing import setRoles >>> from plone.app.testing import TEST_USER_ID >>> portal = layer['portal'] >>> setRoles(portal, TEST_USER_ID, ['Manager']) >>> evid = portal.invokeFactory('Event', 'event') >>> event = portal[evid]
并检查它是否已启用发布
>>> from collective.socialpublisher.interfaces import IPublishable >>> IPublishable.providedBy(event) True
获取管理器
>>> from collective.socialpublisher.interfaces import IPublishStorageManager >>> manager = IPublishStorageManager(event, None) >>> manager is None False
存储必须是 PersistentDict
>>> from persistent.dict import PersistentDict >>> isinstance(manager.storage,PersistentDict) True
账户必须是空字典,文本是空字符串。
>>> manager.get_accounts() {} >>> manager.get_text() ''
我们可以为给定的发布者保存账户
>>> publisher = 'twitter' >>> account_id = 'simahawk' >>> manager.set_account(publisher,account_id) >>> manager.get_account(publisher) 'simahawk' >>> manager.get_accounts() {'twitter': 'simahawk'}
让我们添加另一个发布者/账户。
>>> publisher = 'facebook' >>> account_id = 'simahawkfb' >>> manager.set_account(publisher,account_id) >>> manager.get_account(publisher) 'simahawkfb' >>> manager.get_accounts() {'twitter': 'simahawk', 'facebook': 'simahawkfb'}
我们还可以保存要发布的文本
>>> manager.set_text('foo bar') >>> manager.get_text() 'foo bar'
然后我们可以像这样硬重置设置
>>> manager._reset_storage() >>> manager.get_accounts() {} >>> manager.get_text() ''
待办事项
测试 + 文档
添加对linkedin和facebook的支持
使自动发布内容的查询动态/可配置
…
更改日志
1.0a3
[添加] test buildout.cfg
[改进] 改进了测试
[改进] 改进了文档
[添加] 使用 p.a.registry + controlpanel 的全局配置
[改进] 您现在可以全局关闭自动发布
1.0a2
[修复] 旧的twitter导入
[改进] '更新'按钮,用于保存设置而不发布
【重要】‘one-shot-text’ 标志,用于仅更改当前发布的文本,而不覆盖已存储的文本
【重要】如果存在 cron4plone,则显示任何可用的 cron 调度
【重要】略微改进了样式
1.0a1
初始版本
鸣谢
本产品由 Domsense 开发。
项目详情
下载文件
下载适用于您平台的文件。如果您不确定选择哪一个,请了解有关 安装包 的更多信息。
源代码分发
collective.socialpublisher-1.0a3.zip 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | dbe82c119024aa9e4acca9d42690fd2560afa162e1f7cb79d14d998fb61fd39f |
|
MD5 | 127845855219f2bb56736de4d2ce5a5f |
|
BLAKE2b-256 | f63c398d6112ff30cdcadb1fdec171df9f0c17dfb0ab66bae93477883bf324d1 |