diff --git a/FoodwatchBridge.php b/FoodwatchBridge.php
index 32ffddb..9c5c7ed 100644
--- a/FoodwatchBridge.php
+++ b/FoodwatchBridge.php
@@ -8,7 +8,7 @@ class FoodwatchBridge extends BridgeAbstract {
const DESCRIPTION = 'Get the latest news from Foodwatch.org.';
public function getIcon(){
- return 'https://www.foodwatch.org/typo3conf/ext/wwt3_site/Resources/Public/Images/Favicons/favicon.ico';
+ return 'https://www.foodwatch.org/typo3conf/ext/wwt3_sitepackage_base/Resources/Public/frontend/favicons/generated/apple-touch-icon-57x57.png';
}
public function collectData() {
@@ -18,29 +18,81 @@ class FoodwatchBridge extends BridgeAbstract {
or returnServerError('Could not request webpage: ' . $pageUrl);
// Process articles
- foreach($html->find('div.list-teaser__content') as $element) {
+ foreach($html->find('article.list-teaser') as $element) {
if(count($this->items) >= 10) {
break;
}
- $article_title = trim(strip_tags($element->find('h3', 0)->innertext));
- $article_uri = self::URI . substr($element->find('a', 0)->href, 0);
- //$article_thumbnail = self::URI . substr($element->find('img', 0)->src, 3);
- //$article_content = '';
- $article_content = trim(strip_tags($element->find('div.list-teaser__main', 0)->innertext));
- //$article_timestamp = strtotime($element->find('time', 0)->attr['datetime']);
- $article_uid = trim(strip_tags($element->find('div.list-teaser__meta', 0)->innertext));
+ $article_title = trim(strip_tags($element->find('h3.list-teaser__title', 0)->innertext));
+
+ // Find URL
+ $article_uri = self::URI . $element->find('h3.list-teaser__title a', 0)->href;
+
+ // Get meta information (category and date)
+ $article_meta = $element->find('div.list-teaser__meta', 0);
+ $article_category = '';
+ $article_date = '';
+ if ($article_meta) {
+ $meta_spans = $article_meta->find('span');
+ if (count($meta_spans) > 0) {
+ $article_category = trim(strip_tags($meta_spans[0]->innertext));
+ }
+ if (count($meta_spans) > 1) {
+ $article_date = trim(strip_tags($meta_spans[1]->innertext));
+ }
+ }
+
+ // Get content
+ $article_content = '';
+ $content_div = $element->find('div.basic-teaser__content p', 0);
+ if ($content_div) {
+ $article_content = trim(strip_tags($content_div->innertext));
+ }
+
+ // Get image if available
+ $article_thumbnail = '';
+ $image = $element->find('div.list-teaser__media img', 0);
+ if ($image) {
+ $article_thumbnail = self::URI . $image->src;
+ }
+
+ // Create unique ID
+ $article_uid = $article_title . ' - ' . $article_date;
// Store article in items array
if (!empty($article_title)) {
$item = array();
$item['uri'] = $article_uri;
$item['title'] = $article_title;
- //$item['enclosures'] = array($article_thumbnail);
- $item['content'] = $article_content;
- //$item['timestamp'] = $article_timestamp;
- $item['uid'] = $article_uid;
+
+ // Build content with image and text
+ $content = '';
+ if ($article_thumbnail) {
+ $content .= '
';
+ }
+ if ($article_content) {
+ $content .= '
' . $article_content . '
'; + } + if ($article_category) { + $content .= 'Kategorie: ' . $article_category . '
'; + } + + $item['content'] = $content; + + // Set timestamp if date is available + if ($article_date) { + $item['timestamp'] = strtotime($article_date); + } + + // Set enclosures if image is available + if ($article_thumbnail) { + $item['enclosures'] = array($article_thumbnail); + } + + $item['uid'] = $article_uid; + $item['categories'] = array($article_category); + $this->items[] = $item; } }