mirror of
https://github.com/RSS-Bridge/rss-bridge.git
synced 2024-11-23 01:55:27 +03:00
[FilterBridge] Add option to build title from content
Adds a new option '&title_from_content=on' to build the title for feed items from the feeds content. The title is generated from the first whitespace after 50 characters of the content or the entire content if the total size is lower than 50 characters. References #587
This commit is contained in:
parent
df58f5bbdb
commit
3a496e3b18
1 changed files with 23 additions and 0 deletions
|
@ -26,11 +26,34 @@ class FilterBridge extends FeedExpander {
|
||||||
),
|
),
|
||||||
'defaultValue' => 'permit',
|
'defaultValue' => 'permit',
|
||||||
),
|
),
|
||||||
|
'title_from_content' => array(
|
||||||
|
'name' => 'Generate title from content',
|
||||||
|
'type' => 'checkbox',
|
||||||
|
'required' => false,
|
||||||
|
)
|
||||||
));
|
));
|
||||||
|
|
||||||
protected function parseItem($newItem){
|
protected function parseItem($newItem){
|
||||||
$item = parent::parseItem($newItem);
|
$item = parent::parseItem($newItem);
|
||||||
|
|
||||||
|
if($this->getInput('title_from_content') && array_key_exists('content', $item)) {
|
||||||
|
|
||||||
|
$content = str_get_html($item['content']);
|
||||||
|
|
||||||
|
$pos = strpos($item['content'], ' ', 50);
|
||||||
|
|
||||||
|
$item['title'] = substr(
|
||||||
|
$content->plaintext,
|
||||||
|
0,
|
||||||
|
$pos
|
||||||
|
);
|
||||||
|
|
||||||
|
if(strlen($content->plaintext) >= $pos) {
|
||||||
|
$item['title'] .= '...';
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
switch(true) {
|
switch(true) {
|
||||||
case $this->getFilterType() === 'permit':
|
case $this->getFilterType() === 'permit':
|
||||||
if (preg_match($this->getFilter(), $item['title'])) {
|
if (preg_match($this->getFilter(), $item['title'])) {
|
||||||
|
|
Loading…
Reference in a new issue