| Server IP : 195.134.90.114 / Your IP : 216.73.216.86 Web Server : Apache/2.4.58 System : Linux nepub 6.8.0-88-generic #89-Ubuntu SMP PREEMPT_DYNAMIC Sat Oct 11 01:02:46 UTC 2025 x86_64 User : www-data ( 33) PHP Version : 8.2.30 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : OFF Directory : /var/www/html/public_html/plugins/blocks/announcementsBlock/ |
Upload File : |
<?php
import('lib.pkp.classes.plugins.BlockPlugin');
class AnnouncementsBlockPlugin extends BlockPlugin
{
public function getDisplayName()
{
return __('plugins.blocks.announcements.title');
}
public function getDescription()
{
return __('plugins.blocks.announcements.desc');
}
public function getContents($templateMgr, $request = null)
{
$request = Application::get()->getRequest();
$context = $request->getContext();
$contextId = ($context && $context->getId()) ? $context->getId() : CONTEXT_SITE;
$announcementDao = DAORegistry::getDAO('AnnouncementDAO');
$amount = ctype_digit($this->getSetting($contextId, 'announcementsAmount')) ? intval($this->getSetting($contextId, 'announcementsAmount')) : 2;
$announcements = $announcementDao->getNumAnnouncementsNotExpiredByAssocId($context->getAssocType(), $contextId, $amount);
$templateMgr->assign('announcementsSidebar', $announcements->toArray());
$templateMgr->assign(
'truncateNum',
ctype_digit($this->getSetting($contextId, 'truncateNum')) ? intval($this->getSetting($contextId, 'truncateNum')) : null
);
$templateMgr->assign(
'textAlign',
$this->getSetting($contextId, 'announcementsAlign') ? $this->getSetting($contextId, 'announcementsAlign') : 'left'
);
return parent::getContents($templateMgr, $request);
}
public function getActions($request, $actionArgs)
{
$actions = parent::getActions($request, $actionArgs);
if (!$this->getEnabled()) {
return $actions;
}
$router = $request->getRouter();
import('lib.pkp.classes.linkAction.request.AjaxModal');
$linkAction = new LinkAction(
'settings',
new AjaxModal(
$router->url(
$request,
null,
null,
'manage',
null,
array(
'verb' => 'settings',
'plugin' => $this->getName(),
'category' => 'blocks',
)
),
$this->getDisplayName()
),
__('manager.plugins.settings'),
null
);
array_unshift($actions, $linkAction);
return $actions;
}
public function manage($args, $request)
{
switch ($request->getUserVar('verb')) {
case 'settings':
$this->import('AnnouncementsBlockPluginSettingsForm');
$form = new AnnouncementsBlockPluginSettingsForm($this);
if (!$request->getUserVar('save')) {
$form->initData();
return new JSONMessage(true, $form->fetch($request));
}
$form->readInputData();
if ($form->validate()) {
$form->execute();
return new JSONMessage(true);
}
}
return parent::manage($args, $request);
}
}