From 3a496e3b18f7b542c1f318092345e7eb2eb79504 Mon Sep 17 00:00:00 2001 From: logmanoriginal Date: Sat, 4 Aug 2018 20:46:55 +0200 Subject: [PATCH] [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 --- bridges/FilterBridge.php | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/bridges/FilterBridge.php b/bridges/FilterBridge.php index e8b451c7..a20b5b9f 100644 --- a/bridges/FilterBridge.php +++ b/bridges/FilterBridge.php @@ -26,11 +26,34 @@ class FilterBridge extends FeedExpander { ), 'defaultValue' => 'permit', ), + 'title_from_content' => array( + 'name' => 'Generate title from content', + 'type' => 'checkbox', + 'required' => false, + ) )); protected function 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) { case $this->getFilterType() === 'permit': if (preg_match($this->getFilter(), $item['title'])) {