From 4b6a22f6a390c19168e1b53c68b324c736d433d4 Mon Sep 17 00:00:00 2001 From: Sean Harvey Date: Wed, 10 Dec 2008 06:49:06 +0000 Subject: [PATCH] ENHANCEMENT Added SubscribeRSSWidget for linking directly to blog RSS from the BlogHolder --- code/SubscribeRSSWidget.php | 56 +++++++++++++++++++++++++++++++++ css/subscribersswidget.css | 4 +++ templates/SubscribeRSSWidget.ss | 5 +++ 3 files changed, 65 insertions(+) create mode 100644 code/SubscribeRSSWidget.php create mode 100644 css/subscribersswidget.css create mode 100644 templates/SubscribeRSSWidget.ss diff --git a/code/SubscribeRSSWidget.php b/code/SubscribeRSSWidget.php new file mode 100644 index 0000000..72dc229 --- /dev/null +++ b/code/SubscribeRSSWidget.php @@ -0,0 +1,56 @@ + 'Varchar' + ); + + static $title = 'Subscribe via RSS'; + + static $cmsTitle = 'Subscribe via RSS widget'; + + static $description = 'Shows a link allowing a user to subscribe to this blog via RSS.'; + + /** + * Get the BlogHolder instance that this widget + * is located on. + * + * @return BlogHolder + */ + function getBlogHolder() { + $page = Director::currentPage(); + + if($page instanceof BlogHolder) { + return $page; + } elseif(($page instanceof BlogEntry) && ($page->getParent() instanceof BlogHolder)) { + return $page->getParent(); + } else { + return DataObject::get_one('BlogHolder'); + } + } + + /** + * Return an absolute URL based on the BlogHolder + * that this widget is located on. + * + * @return string + */ + function RSSLink() { + Requirements::themedCSS('subscribersswidget'); + $blogHolder = $this->getBlogHolder(); + if($blogHolder) { + return $blogHolder->Link() . 'rss'; + } + } + +} + +?> \ No newline at end of file diff --git a/css/subscribersswidget.css b/css/subscribersswidget.css new file mode 100644 index 0000000..9613397 --- /dev/null +++ b/css/subscribersswidget.css @@ -0,0 +1,4 @@ +.subscribeLink { + background: url(../images/feed-icon-14x14.png) no-repeat left center; + padding-left: 20px; +} \ No newline at end of file diff --git a/templates/SubscribeRSSWidget.ss b/templates/SubscribeRSSWidget.ss new file mode 100644 index 0000000..cc29b1e --- /dev/null +++ b/templates/SubscribeRSSWidget.ss @@ -0,0 +1,5 @@ +

+ +

\ No newline at end of file