16 import(
'lib.pkp.classes.plugins.GenericPlugin');
22 public function register($category, $path, $mainContextId =
null) {
23 if (!parent::register($category, $path, $mainContextId))
return false;
26 $this->
import(
'AnnouncementFeedBlockPlugin');
29 $this->
import(
'AnnouncementFeedGatewayPlugin');
40 return __(
'plugins.generic.announcementfeed.displayName');
48 return __(
'plugins.generic.announcementfeed.description');
60 $templateManager = $args[0];
61 $currentJournal = $templateManager->getTemplateVars(
'currentJournal');
62 $announcementsEnabled = $currentJournal ? $currentJournal->getData(
'enableAnnouncements') :
false;
64 if (!$announcementsEnabled) {
68 $displayPage = $currentJournal ? $this->
getSetting($currentJournal->getId(),
'displayPage') :
null;
71 $contexts =
'frontend';
72 if ($displayPage ==
'homepage') {
73 $contexts = array(
'frontend-index',
'frontend-announcement');
74 } elseif ($displayPage ==
'announcement') {
75 $contexts =
'frontend-' . $displayPage;
78 $templateManager->addHeader(
79 'announcementsAtom+xml',
80 '<link rel="alternate" type="application/atom+xml" href="' .
$request->url(
null,
'gateway',
'plugin', array(
'AnnouncementFeedGatewayPlugin',
'atom')) .
'">',
82 'contexts' => $contexts,
85 $templateManager->addHeader(
86 'announcementsRdf+xml',
87 '<link rel="alternate" type="application/rdf+xml" href="'.
$request->url(
null,
'gateway',
'plugin', array(
'AnnouncementFeedGatewayPlugin',
'rss')) .
'">',
89 'contexts' => $contexts,
92 $templateManager->addHeader(
93 'announcementsRss+xml',
94 '<link rel="alternate" type="application/rss+xml" href="'.
$request->url(
null,
'gateway',
'plugin', array(
'AnnouncementFeedGatewayPlugin',
'rss2')) .
'">',
96 'contexts' => $contexts,
109 import(
'lib.pkp.classes.linkAction.request.AjaxModal');
115 $router->url(
$request,
null,
null,
'manage',
null, array(
'verb' =>
'settings',
'plugin' => $this->
getName(),
'category' =>
'generic')),
118 __(
'manager.plugins.settings'),
130 switch (
$request->getUserVar(
'verb')) {
136 $templateMgr->registerPlugin(
'function',
'plugin_url', array($this,
'smartyPluginUrl'));
138 $this->
import(
'AnnouncementFeedSettingsForm');
142 $form->readInputData();
143 if ($form->validate()) {
152 return parent::manage($args,
$request);