Open Monograph Press  3.3.0
WebFeedGatewayPlugin.inc.php
1 <?php
2 
17 import('lib.pkp.classes.plugins.GatewayPlugin');
18 
21  var $_parentPlugin;
22 
27  public function __construct($parentPlugin) {
28  parent::__construct();
29  $this->_parentPlugin = $parentPlugin;
30  }
31 
36  public function getHideManagement() {
37  return true;
38  }
39 
45  public function getName() {
46  return 'WebFeedGatewayPlugin';
47  }
48 
52  public function getDisplayName() {
53  return __('plugins.generic.webfeed.displayName');
54  }
55 
59  public function getDescription() {
60  return __('plugins.generic.webfeed.description');
61  }
62 
66  function getPluginPath() {
67  return $this->_parentPlugin->getPluginPath();
68  }
69 
75  public function getEnabled() {
76  return $this->_parentPlugin->getEnabled();
77  }
78 
84  function fetch($args, $request) {
85  if (!$this->_parentPlugin->getEnabled()) return false;
86 
87  // Make sure the feed type is specified and valid
88  $type = array_shift($args);
89  $typeMap = array(
90  'rss' => 'rss.tpl',
91  'rss2' => 'rss2.tpl',
92  'atom' => 'atom.tpl'
93  );
94  $mimeTypeMap = array(
95  'rss' => 'application/rdf+xml',
96  'rss2' => 'application/rss+xml',
97  'atom' => 'application/atom+xml'
98  );
99  if (!isset($typeMap[$type])) return false;
100 
101  $templateMgr = TemplateManager::getManager($request);
102  $context = $request->getContext();
103 
104  // Bring in orderby constants
105  import('classes.submission.SubmissionDAO');
106 
107  $args = [
108  'status' => STATUS_PUBLISHED,
109  'contextId' => $context->getId(),
110  'count' => 1000,
111  'orderBy' => ORDERBY_DATE_PUBLISHED,
112  ];
113  $recentItems = (int) $this->_parentPlugin->getSetting($context->getId(), 'recentItems');
114  if ($recentItems > 0) {
115  $args['count'] = $recentItems;
116  }
117  $templateMgr->assign('submissions', iterator_to_array(Services::get('submission')->getMany($args)));
118 
119  $versionDao = DAORegistry::getDAO('VersionDAO'); /* @var $versionDao VersionDAO */
120  $version = $versionDao->getCurrentVersion();
121  $templateMgr->assign('ompVersion', $version->getVersionString());
122 
123  AppLocale::requireComponents(LOCALE_COMPONENT_PKP_SUBMISSION); // submission.copyrightStatement
124 
125  $templateMgr->display($this->getTemplateResource($typeMap[$type]), $mimeTypeMap[$type]);
126 
127  return true;
128  }
129 }
130 
131 
AppLocale\requireComponents
static requireComponents()
Definition: env1/MockAppLocale.inc.php:56
WebFeedGatewayPlugin\fetch
fetch($args, $request)
Definition: WebFeedGatewayPlugin.inc.php:87
DAORegistry\getDAO
static & getDAO($name, $dbconn=null)
Definition: DAORegistry.inc.php:57
WebFeedGatewayPlugin\__construct
__construct($parentPlugin)
Definition: WebFeedGatewayPlugin.inc.php:30
Plugin\__construct
__construct()
Definition: Plugin.inc.php:73
WebFeedGatewayPlugin\getDescription
getDescription()
Definition: WebFeedGatewayPlugin.inc.php:62
WebFeedGatewayPlugin\getEnabled
getEnabled()
Definition: WebFeedGatewayPlugin.inc.php:78
WebFeedGatewayPlugin\$_parentPlugin
$_parentPlugin
Definition: WebFeedGatewayPlugin.inc.php:24
WebFeedGatewayPlugin\getHideManagement
getHideManagement()
Definition: WebFeedGatewayPlugin.inc.php:39
PKPTemplateManager\getManager
static & getManager($request=null)
Definition: PKPTemplateManager.inc.php:1239
Plugin\getTemplateResource
getTemplateResource($template=null, $inCore=false)
Definition: Plugin.inc.php:349
WebFeedGatewayPlugin
Gateway component of web feed plugin.
Definition: WebFeedGatewayPlugin.inc.php:19
Plugin\$request
$request
Definition: Plugin.inc.php:68
WebFeedGatewayPlugin\getPluginPath
getPluginPath()
Definition: WebFeedGatewayPlugin.inc.php:69
WebFeedGatewayPlugin\getName
getName()
Definition: WebFeedGatewayPlugin.inc.php:48
GatewayPlugin
Abstract class for gateway plugins.
Definition: GatewayPlugin.inc.php:18
WebFeedGatewayPlugin\getDisplayName
getDisplayName()
Definition: WebFeedGatewayPlugin.inc.php:55
PKPServices\get
static get($service)
Definition: PKPServices.inc.php:49