vdlp / oc-rssfetcher-plugin
从各种来源获取RSS标题以放置在您的网站上。
3.3.0
2024-05-06 11:52 UTC
Requires
- php: ^8.0.2
- composer/installers: ^1.0 || ^2.0
- laminas/laminas-feed: ^2.20
- laminas/laminas-http: ^2.18
- october/rain: ^3.0
Requires (Dev)
- ergebnis/composer-normalize: ^2.42
README
Vdlp.RssFetcher
抓取RSS/Atom源到您的网站。它可以自动使用cronjob或手动触发。
安装
composer require vdlp/oc-rssfetcher-plugin
RSS & Atom源
该插件使用laminas/laminas-feed
包来解析RSS和/或Atom源。有关该包的更多信息,请访问https://docs.laminas.dev/laminas-feed/
组件
插件配置了4个示例源,并包含一些组件,可以帮助您在网站上显示项目和/或源。
项目
显示您提供的最大项目数限制的最新RSS项目列表。
在CMS页面中实现代码的示例
title = "A list of items"
url = "/items"
layout = "default"
is_hidden = 0
[rssItems]
maxItems = 10
==
{% component 'rssItems' %}
可分页的项目
显示带附加分页元素的最新RSS项目列表。
在CMS页面中实现代码的示例
title = "A list of items (paginatable)"
url = "/items"
layout = "default"
is_hidden = 0
[rssPaginatableItems]
itemsPerPage = 3
==
{% component 'rssPaginatableItems' %}
源
显示源列表。
在CMS页面中实现代码的示例
title = "A list of sources"
url = "/sources"
layout = "default"
is_hidden = 0
[rssSources]
==
{% component 'rssSources' %}
事件
要操作RSS项目,可以使用一些事件
vdlp.rssfetcher.item.processTitle
vdlp.rssfetcher.item.processContent
vdlp.rssfetcher.item.processLink
使用方法如下
Event::listen('vdlp.rssfetcher.item.processTitle', function (&$title) {
$title = $title . 'A';
});
Event::listen('vdlp.rssfetcher.item.processContent', function (&$content) {
$content = strip_tags($content);
});
报告小部件
此插件还包含一个RSS头条新闻小部件,可在仪表板上显示最新标题。此小部件有三个可配置属性:maxItems
、title
和dateFormat
。
Cronjob
配置cronjob有许多方法。以下是一个基本的cronjob配置示例
5/* * * * php path/to/artisan vdlp:fetch-rss >> /dev/null 2>&1
上面的行负责每5分钟抓取所有源。
vdlp:fetch-rss
命令接受可选的source_id
参数。如果您只想在此时抓取一个源,请提供源ID。
从代码执行
在您的插件代码中,您还可以使用以下代码执行Artisan命令
<?php
use Artisan;
// ...
Artisan::call('vdlp:fetch-rss', ['source' => 2]);
或使用RssFetcher
单例
RssFetcher::instance()->fetch(2);
问题
如果您在使用此插件时遇到问题,请创建GitHub上的问题或在octobercms@vdlp.nl上联系我们。
贡献
任何帮助都受欢迎。或者您可以自由地在GitHub上创建拉取请求。