partkeepr

fork of partkeepr
git clone https://git.e1e0.net/partkeepr.git
Log | Files | Refs | Submodules | README | LICENSE

commit 53f29f83815ff1ea1aa69b3c496a6088a0aa3a9c
parent 8fe2e65259c5fbbe7d772ecd9d2690a18c63ca4a
Author: Felicitus <felicitus@felicitus.org>
Date:   Mon, 11 Jul 2011 18:52:27 +0200

Added basic RSS feed which lists the 40 most recent parts added

Diffstat:
Acronjobs/CreateRSSFeed.php | 60++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Afrontend/rss.php | 15+++++++++++++++
Msrc/de/RaumZeitLabor/PartKeepr/Part/Part.php | 8++++++++
3 files changed, 83 insertions(+), 0 deletions(-)

diff --git a/cronjobs/CreateRSSFeed.php b/cronjobs/CreateRSSFeed.php @@ -0,0 +1,60 @@ +<?php +namespace de\RaumZeitLabor\PartKeepr\Cronjobs; + +declare(encoding = 'UTF-8'); + +include(__DIR__."/../src/de/RaumZeitLabor/PartKeepr/PartKeepr.php"); + +use de\RaumZeitLabor\PartKeepr\PartKeepr; +use de\RaumZeitLabor\PartKeepr\Util\Configuration; + +PartKeepr::initialize(); + +$dql = PartKeepr::getEM()->createQuery("SELECT p FROM de\RaumZeitLabor\PartKeepr\Part\Part p ORDER BY p.createDate DESC"); +$dql->setMaxResults(40); + +$parts = $dql->getResult(); + +$rssDOM = new \DOMDocument("1.0", "UTF-8"); +$rssElement = $rssDOM->createElement("rss"); +$rssElement->setAttribute("version", "2.0"); +$rssDOM->appendChild($rssElement); + +$channel = $rssDOM->createElement("channel"); + +$rssElement->appendChild($channel); +$pTitle = $rssDOM->createElement('title', 'PartKeepr RSS Feed'); +$pLink = $rssDOM->createElement('link', 'http://www.partkeepr.org'); +$pDescription = $rssDOM->createElement('description', 'PartKeepr new part feed'); +$pLang = $rssDOM->createElement('language', 'en'); + +// Here we simply append all the nodes we just created to the channel node +$channel->appendChild($pTitle); +$channel->appendChild($pDescription); +$channel->appendChild($pLink); +$channel->appendChild($pLang); + +foreach ($parts as $part) { + $item = $rssDOM->createElement("item"); + + $title = $rssDOM->createElement("title"); + + $titleContent = $rssDOM->createTextNode($part->getName()); + $title->appendChild($titleContent); + + $description = $rssDOM->createElement("description"); + $descriptionContent = $rssDOM->createTextNode($part->getCategoryPath()); + $description->appendChild($descriptionContent); + + $pubDate = $rssDOM->createElement("pubDate", $part->getCreateDate()->format(DATE_RFC822)); + + $item->appendChild($title); + $item->appendChild($description); + $item->appendChild($pubDate); + + $channel->appendChild($item); + +} + +$rssDOM->save(Configuration::getOption("partkeepr.files.path")."/feed.rss"); + diff --git a/frontend/rss.php b/frontend/rss.php @@ -0,0 +1,14 @@ +<?php +namespace de\RaumZeitLabor\PartKeepr\Frontend; +declare(encoding = 'UTF-8'); + +use de\RaumZeitLabor\PartKeepr\PartKeepr, + de\RaumZeitLabor\PartKeepr\Util\Configuration; + +include("../src/de/RaumZeitLabor/PartKeepr/PartKeepr.php"); + +header("Content-Type: text/xml; charset=UTF-8"); + +PartKeepr::initialize(""); + +echo file_get_contents(Configuration::getOption("partkeepr.files.path")."/feed.rss");+ \ No newline at end of file diff --git a/src/de/RaumZeitLabor/PartKeepr/Part/Part.php b/src/de/RaumZeitLabor/PartKeepr/Part/Part.php @@ -283,6 +283,14 @@ class Part extends BaseEntity implements Serializable, Deserializable { } /** + * Returns the category path + * @return string + */ + public function getCategoryPath () { + return $this->categoryPath; + } + + /** * Sets the storage location for this part * @param \de\RaumZeitLabor\PartKeepr\StorageLocation\StorageLocation $storageLocation The storage location */