[ Mini Kiebo ]
Server: Windows NT DESKTOP-5B8S0D4 6.2 build 9200 (Windows 8 Professional Edition) i586
Path:
D:
/
Backup
/
05122024
/
htdocs
/
jurnal-kesmas
/
baru
/
lib
/
pkp
/
classes
/
announcement
/
[
Home
]
File: Announcement.php
<?php /** * @defgroup announcement Announcement * Implements announcements that can be presented to website visitors. */ /** * @file classes/announcement/Announcement.php * * Copyright (c) 2014-2021 Simon Fraser University * Copyright (c) 2000-2021 John Willinsky * Distributed under the GNU GPL v3. For full terms see the file docs/COPYING. * * @class Announcement * * @ingroup announcement * * @see DAO * * @brief Basic class describing a announcement. */ namespace PKP\announcement; use APP\core\Application; use APP\facades\Repo; use APP\file\PublicFileManager; use PKP\db\DAORegistry; class Announcement extends \PKP\core\DataObject { // // Get/set methods // /** * Get assoc ID for this announcement. * * @return int */ public function getAssocId() { return $this->getData('assocId'); } /** * Set assoc ID for this announcement. * * @param int $assocId */ public function setAssocId($assocId) { $this->setData('assocId', $assocId); } /** * Get assoc type for this announcement. * * @return int */ public function getAssocType() { return $this->getData('assocType'); } /** * Set assoc type for this announcement. * * @param int $assocType */ public function setAssocType($assocType) { $this->setData('assocType', $assocType); } /** * Get the announcement type of the announcement. * * @return int */ public function getTypeId() { return $this->getData('typeId'); } /** * Set the announcement type of the announcement. * * @param int $typeId */ public function setTypeId($typeId) { $this->setData('typeId', $typeId); } /** * Get the announcement type name of the announcement. * * @return string|null */ public function getAnnouncementTypeName() { $announcementTypeDao = DAORegistry::getDAO('AnnouncementTypeDAO'); /** @var AnnouncementTypeDAO $announcementTypeDao */ $announcementType = $announcementTypeDao->getById($this->getData('typeId')); return $announcementType ? $announcementType->getLocalizedTypeName() : null; } /** * Get localized announcement title * * @return string */ public function getLocalizedTitle() { return $this->getLocalizedData('title'); } /** * Get full localized announcement title including type name * * @return string */ public function getLocalizedTitleFull() { $typeName = $this->getAnnouncementTypeName(); if (!empty($typeName)) { return $typeName . ': ' . $this->getLocalizedTitle(); } else { return $this->getLocalizedTitle(); } } /** * Get announcement title. * * @param string $locale * * @return string */ public function getTitle($locale) { return $this->getData('title', $locale); } /** * Set announcement title. * * @param string $title * @param string $locale */ public function setTitle($title, $locale) { $this->setData('title', $title, $locale); } /** * Get localized short description * * @return string */ public function getLocalizedDescriptionShort() { return $this->getLocalizedData('descriptionShort'); } /** * Get announcement brief description. * * @param string $locale * * @return string */ public function getDescriptionShort($locale) { return $this->getData('descriptionShort', $locale); } /** * Set announcement brief description. * * @param string $descriptionShort * @param string $locale */ public function setDescriptionShort($descriptionShort, $locale) { $this->setData('descriptionShort', $descriptionShort, $locale); } /** * Get localized full description * * @return string */ public function getLocalizedDescription() { return $this->getLocalizedData('description'); } /** * Get announcement description. * * @param string $locale * * @return string */ public function getDescription($locale) { return $this->getData('description', $locale); } /** * Set announcement description. * * @param string $description * @param string $locale */ public function setDescription($description, $locale) { $this->setData('description', $description, $locale); } /** * Get announcement expiration date. * * @return string (YYYY-MM-DD) */ public function getDateExpire() { return $this->getData('dateExpire'); } /** * Set announcement expiration date. * * @param string $dateExpire (YYYY-MM-DD) */ public function setDateExpire($dateExpire) { $this->setData('dateExpire', $dateExpire); } /** * Get announcement posted date. * * @return string (YYYY-MM-DD) */ public function getDatePosted() { return date('Y-m-d', strtotime($this->getData('datePosted'))); } /** * Get announcement posted datetime. * * @return string (YYYY-MM-DD HH:MM:SS) */ public function getDatetimePosted() { return $this->getData('datePosted'); } /** * Set announcement posted date. * * @param string $datePosted (YYYY-MM-DD) */ public function setDatePosted($datePosted) { $this->setData('datePosted', $datePosted); } /** * Set announcement posted datetime. * * @param string $datetimePosted (YYYY-MM-DD HH:MM:SS) */ public function setDatetimePosted($datetimePosted) { $this->setData('datePosted', $datetimePosted); } /** * Get the featured image data */ public function getImage(): ?array { return $this->getData('image'); } /** * Set the featured image data */ public function setImage(array $image): void { $this->setData('image', $image); } /** * Get the full URL to the image * * @param bool $withTimestamp Pass true to include a query argument with a timestamp * of the date the image was uploaded in order to workaround cache bugs in browsers */ public function getImageUrl(bool $withTimestamp = true): string { $image = $this->getImage(); if (!$image) { return ''; } $filename = $image['uploadName']; if ($withTimestamp) { $filename .= '?'. strtotime($image['dateUploaded']); } $publicFileManager = new PublicFileManager(); return join('/', [ Application::get()->getRequest()->getBaseUrl(), $this->getAssocId() ? $publicFileManager->getContextFilesPath((int) $this->getAssocId()) : $publicFileManager->getSiteFilesPath(), Repo::announcement()->getImageSubdirectory(), $filename ]); } /** * Get the alt text for the image */ public function getImageAltText(): string { $image = $this->getImage(); if (!$image || !$image['altText']) { return ''; } return $image['altText']; } } if (!PKP_STRICT_MODE) { class_alias('\PKP\announcement\Announcement', '\Announcement'); }