brookinsconsulting / bcrssfeeds
eZ Publish 旧版扩展,它提供了一个模板操作符和获取函数,在模板中提供了额外的 eZ Publish RSS 源功能
Requires
- php: >=5.0.0
- ezsystems/ezpublish-legacy-installer: *
This package is auto-updated.
Last update: 2024-09-29 04:31:09 UTC
README
此扩展实现了一个解决方案,提供模板操作符和获取函数,以在模板中提供额外的 eZ Publish RSS 源功能。
版本
-
BC RSS Feeds 的当前版本是 0.1.0
-
上次重大更新:2015 年 5 月 31 日
版权
-
BC RSS Feeds 版权所有 1999 - 2016 Brookins Consulting,2008 Kristof Coomans,2008 Bertrand Dunogier 以及 1999 - 2015 eZ Systems AS。
-
更多信息请参阅:COPYRIGHT.md
许可证
BC RSS Feeds 在 GNU 通用公共许可证下授权。
完整的许可证协议包含在 LICENSE 文件中。
BC RSS Feeds 是免费软件:您可以自由分发和/或修改它,只要遵守自由软件基金会发布的 GNU 通用公共许可证的条款,无论是许可证的第二版还是您选择的任何后续版本。
BC RSS Feeds 是免费分发的,希望对您有用,但没有任何保证;甚至没有关于其可销售性或适用于特定用途的隐含保证。有关详细信息,请参阅 GNU 通用公共许可证。
GNU GPL 在某些条件下赋予您使用、修改和重新分发 BC RSS Feeds 的权利。GNU GPL 许可证随软件分发,请参阅 doc/LICENSE 文件。
它也可在以下网址找到:https://gnu.ac.cn/licenses/gpl.txt
您应该已经收到一份 GNU 通用公共许可证副本,与 BC RSS Feeds 一起放在 doc/LICENSE 中。如果没有,请参阅 https://gnu.ac.cn/licenses/。
在 GNU GPL 许可证下使用 BC RSS Feeds 是免费的(自由的意思)。
有关更多信息或疑问,请联系:license@brookinsconsulting.com
需求
使用 BC RSS Feeds 扩展存在以下需求
eZ Publish 版本
-
确保您使用 eZ Publish 5.x(必需)或更高版本。
-
设计与测试使用 eZ Publish 社区项目 2014.11
PHP 版本
- 确保您有 PHP 5.x 或更高版本。
功能
依赖关系
- 此解决方案仅依赖于 eZ Publish 旧版
模板操作符
此解决方案覆盖以下模板操作符
- 模板操作符:
bcrssfeed
获取函数
此解决方案覆盖以下模板获取函数
-
获取函数:
list
-
获取函数:
subtree_list
-
获取函数:
has_export_by_node
-
获取函数:
export_by_node
安装
通过 Composer 安装扩展
从您的项目根目录运行以下命令以安装扩展
bash$ composer require brookinsconsulting/bcrssfeeds dev-master;
扩展激活
通过将以下内容添加到您的 settings/override/site.ini.append.php
来激活此扩展
[ExtensionSettings]
# <snip existing active extensions list />
ActiveExtensions[]=bcrssfeeds
重新生成内核类覆盖自动加载
重新生成内核类覆盖自动加载(必需)。
php ./bin/php/ezpgenerateautoloads.php;
清除缓存
清除eZ Publish平台/eZ Publish Legacy缓存(必需)。
php ./bin/php/ezcache.php --clear-all;
用法
该解决方案在正确安装后默认配置为虚拟工作。
您可以根据需要,在模板中使用模板操作符和获取函数。
获取函数 'subtree_list' 示例
您可以根据需要编辑您的 pagelayout.tpl 模板覆盖,并在所需位置添加以下代码
{def $rssfeedlist = fetch( 'rssfeeds', 'subtree_list', hash( 'node_id', $current_node.node_id, 'max_depth', 0 ) )
$rssfeed = $rssfeedlist.0
$has_rssfeed = is_object( $rssfeed )}
{if $has_rssfeed}
{def $rssfeed_uri = $rssfeed.access_url
$rssfeed_alt_text = concat( "'", $current_node.name, '\' section\'s RSS Feed. Subscribe to this rss feed for notifications of new content to this secti\
on')
$rssfeed_url = concat( '/rss/feed/', $rssfeed_uri )}
<div id="rssBanner">
<a href={$rssfeed_url|ezurl} title="{$rssfeed_alt_text}"><img id="rssIconImage" src={"rss_feed_page_icon.png"|ezimage} alt="{$rssfeed_alt_text}" title="{$rs\
sfeed_alt_text}" /></a>
</div>
{/if}
(可选)您还可以编辑您网站的css文件,并添加以下样式
#rssBanner {
position: relative;
float: right;
width: 32px;
height: 32px;
}
img#rssIconImage {
position: relative;
float: right;
width: 32px;
height: 32px;
}
模板操作符 'bcrssfeed' 示例
模板操作符 'bcrssfeed' 概述
此操作符用于方便地在网站上显示RSS订阅源。想法是项目的不同部分/章节将显示不同的RSS订阅源。
如果您考虑这种结构
/
/News
/News/Article1
/News/Article2
/Company/Article1
/Company/Article1
我们想要的
- 浏览'新闻'部分时显示'新闻'RSS订阅源
- 浏览'公司'部分时显示'公司'RSS订阅源
- 浏览其他部分时(内容根目录,或其他任何模块)显示'默认'RSS订阅源
该操作符将考虑一次只显示一个订阅源,并直接输出 <Link...> 标签。
模板操作符 'bcrssfeed' 设置要求
创建一个名为'RSS Feed'(或您认为方便的任何名称)的内容类,至少有2个属性,均为文本行:标题和URL,均为必填项。
创建一个名为 'system' 的文件夹(例如,一个不会在frontoffice中显示的文件夹),例如命名为 'RSS Feeds'。
模板操作符 'bcrssfeed' 设置自定义
确定应该附加哪个内容类的RSS订阅源。附加在此处表示在浏览该节点以下时,将提供特定的RSS订阅源。
对于这些类,添加一个新属性,名称为 'rss_feed',作为对象关系。选择方法可以设置为 '下拉列表',默认节点设置为上面创建的 'RSS Feeds' 容器。
最后,全局覆盖文件 'rssfeedoperator.ini',并将 ContentClasses 指令设置为上述选择的内容类的列表。如果考虑 '文件夹' 和 'frontpage' 都可以附加RSS订阅源,则配置将如下所示
[Settings]
ContentClasses[]
ContentClasses[]=frontpage
ContentClasses[]=folder
模板操作符 'bcrssfeed' 使用示例
首先,需要将操作符添加到您的 pagelayout 中,以便添加RSS订阅源链接。这可以这样完成
{rss_feed({rsfeed( is_set( $module_result.node_id)|choose( 0, $module_result.node_id ) )}
预期参数是要获取RSS订阅源的节点ID。如果没有节点(例如,在内容模块外部),我们提供0作为参数。
出于性能原因,应将此代码块放置在缓存块内部。
假设我们想默认显示名为'默认'的RSS订阅源。
我们首先在 'RSS Feeds' 文件夹中创建一个名为 'RSS Feed' 类的新对象。我们使用 '默认' 作为其标题,并使用 'http://exemple.com/rss/feed/default' 作为订阅源的URL。
然后,我们编辑内容树根目录,并在 rss_feed 属性中选择 '默认' 对象。
现在,如果我们想在浏览 '新闻' 子树时显示 '新闻' RSS订阅源,我们再次遵循这两个步骤:在 'RSS Feeds' 文件夹中创建一个新的 'RSS Feed' 内容对象,设置标题为 '新闻',URL为 'http://exemple.com/rss/feed/news',然后编辑 '新闻' 内容对象,并将新创建的 '新闻' RSS Feed 对象作为RSS Feed属性或我们的文件夹/主页。
故障排除
阅读常见问题解答
有些问题比其他问题更常见。最常见的问题列在 doc/FAQ.md
支持
如果您发现本文件或常见问题解答(FAQ)中没有处理的问题,可以通过支持系统联系Brookins Consulting:http://brookinsconsulting.com/contact