xref: /dokuwiki/vendor/openpsa/universalfeedcreator/lib/Creator/PHPCreator.php (revision 2cadabe7de17786c9119ff71ba98edc20715e781)
1*572dd708SAndreas Gohr<?php
2*572dd708SAndreas Gohr
3*572dd708SAndreas Gohr/**
4*572dd708SAndreas Gohr * PHPCreator is a FeedCreator that implements a PHP output, suitable for an include
5*572dd708SAndreas Gohr *
6*572dd708SAndreas Gohr * @since   1.7.3
7*572dd708SAndreas Gohr * @author  Barry Hunter <geo@barryhunter.co.uk>
8*572dd708SAndreas Gohr */
9*572dd708SAndreas Gohrclass PHPCreator extends FeedCreator
10*572dd708SAndreas Gohr{
11*572dd708SAndreas Gohr
12*572dd708SAndreas Gohr    /**
13*572dd708SAndreas Gohr     * PHPCreator constructor.
14*572dd708SAndreas Gohr     */
15*572dd708SAndreas Gohr    public function __construct()
16*572dd708SAndreas Gohr    {
17*572dd708SAndreas Gohr        $this->contentType = "text/plain";
18*572dd708SAndreas Gohr        $this->encoding = "utf-8";
19*572dd708SAndreas Gohr    }
20*572dd708SAndreas Gohr
21*572dd708SAndreas Gohr    /** @inheritdoc */
22*572dd708SAndreas Gohr    public function createFeed()
23*572dd708SAndreas Gohr    {
24*572dd708SAndreas Gohr        $feed = "<?php\n";
25*572dd708SAndreas Gohr        $feed .= "class FeedItem {}\n";
26*572dd708SAndreas Gohr        $feed .= "  \$feedTitle='".addslashes(FeedCreator::iTrunc(htmlspecialchars($this->title), 100))."';\n";
27*572dd708SAndreas Gohr        $feed .= "  \$feedDescription='".addslashes($this->getDescription())."';\n";
28*572dd708SAndreas Gohr        $feed .= "  \$feedLink='".$this->link."';\n";
29*572dd708SAndreas Gohr        $feed .= "  \$feedItem = array();\n";
30*572dd708SAndreas Gohr        for ($i = 0; $i < count($this->items); $i++) {
31*572dd708SAndreas Gohr            $feed .= "   \$feedItem[$i] = new FeedItem();\n";
32*572dd708SAndreas Gohr            if ($this->items[$i]->guid != "") {
33*572dd708SAndreas Gohr                $feed .= "    \$feedItem[$i]->id='".htmlspecialchars($this->items[$i]->guid)."';\n";
34*572dd708SAndreas Gohr            }
35*572dd708SAndreas Gohr            $feed .= "    \$feedItem[$i]->title='".addslashes(
36*572dd708SAndreas Gohr                    FeedCreator::iTrunc(htmlspecialchars(strip_tags($this->items[$i]->title)), 100)
37*572dd708SAndreas Gohr                )."';\n";
38*572dd708SAndreas Gohr            $feed .= "    \$feedItem[$i]->link='".htmlspecialchars($this->items[$i]->link)."';\n";
39*572dd708SAndreas Gohr            $feed .= "    \$feedItem[$i]->date=".htmlspecialchars($this->items[$i]->date).";\n";
40*572dd708SAndreas Gohr            if ($this->items[$i]->author != "") {
41*572dd708SAndreas Gohr                $feed .= "    \$feedItem[$i]->author='".htmlspecialchars($this->items[$i]->author)."';\n";
42*572dd708SAndreas Gohr                if ($this->items[$i]->authorEmail != "") {
43*572dd708SAndreas Gohr                    $feed .= "    \$feedItem[$i]->authorEmail='".$this->items[$i]->authorEmail."';\n";
44*572dd708SAndreas Gohr                }
45*572dd708SAndreas Gohr            }
46*572dd708SAndreas Gohr            $feed .= "    \$feedItem[$i]->description='".addslashes($this->items[$i]->getDescription())."';\n";
47*572dd708SAndreas Gohr            if ($this->items[$i]->thumb != "") {
48*572dd708SAndreas Gohr                $feed .= "    \$feedItem[$i]->thumbURL='".htmlspecialchars($this->items[$i]->thumb)."';\n";
49*572dd708SAndreas Gohr            }
50*572dd708SAndreas Gohr        }
51*572dd708SAndreas Gohr        $feed .= "?>\n";
52*572dd708SAndreas Gohr
53*572dd708SAndreas Gohr        return $feed;
54*572dd708SAndreas Gohr    }
55*572dd708SAndreas Gohr}
56