* Widget_ProjectLatestNews
*/
class Widget_ProjectLatestNews extends Widget {
- var $content;
- function Widget_ProjectLatestNews() {
+ var $content;
+
+ function __construct() {
global $gfwww;
+ $this->Widget('projectlatestnews');
+ $request =& HTTPRequest::instance();
+ $pm = ProjectManager::instance();
+ $project = $pm->getProject($request->get('group_id'));
+ if ($project && $this->canBeUsedByProject($project)) {
+ require_once 'www/news/news_utils.php';
+ $this->content = news_show_latest($request->get('group_id'), 10, false);
+ }
+ }
+
+ function getTitle() {
+ return _('Latest News');
+ }
+
+ function getContent() {
+ return $this->content;
+ }
+
+ function isAvailable() {
+ return $this->content ? true : false;
+ }
- $this->Widget('projectlatestnews');
- $request =& HTTPRequest::instance();
- $pm = ProjectManager::instance();
- $project = $pm->getProject($request->get('group_id'));
+ function hasRss() {
+ return true;
+ }
- if ($project && $this->canBeUsedByProject($project)) {
- require_once('www/news/news_utils.php');
- $this->content = news_show_latest($request->get('group_id'),10,false);
- }
- }
- function getTitle() {
- return _('Latest News');
- }
- function getContent() {
- return $this->content;
- }
- function isAvailable() {
- return $this->content ? true : false;
- }
- function hasRss() {
- return true;
- }
-function displayRss() {
- $request =& HTTPRequest::instance();
+ function displayRss() {
+ $request =& HTTPRequest::instance();
$owner = $request->get('owner');
$group_id = (int)substr($owner, 1);
-// $group_id = $request->get('group_id');
require_once 'www/export/rss_utils.inc';
- rss_display_news($group_id, 10);
+ //XXX the following function does not exist
+ // rss_display_news($group_id, 10);
+ echo 'Error! Use overridden getRssUrl method instead!';
- }
++ }
++
+ /* replacement */
+ function getRssUrl($owner_id, $owner_type) {
+ if ($owner_type != 'g') {
+ return false;
+ }
+ return '/export/rss20_news.php?group_id=' . $owner_id;
}
- function canBeUsedByProject(&$project) {
- return $project->usesNews();
- }
- function getDescription() {
- return _('List the last 10 pieces of news posted by the project members.');
- }
+
+ function canBeUsedByProject(&$project) {
+ return $project->usesNews();
+ }
+
+ function getDescription() {
+ return _('List the last 10 pieces of news posted by the project members.');
+ }
}