File Manager
Upload
Current Directory: /home/lartcid/public_html/journal.lartc.id
[Back]
..
[Open]
Hapus
Rename
.htaccess
[Edit]
Hapus
Rename
.well-known
[Open]
Hapus
Rename
README.md
[Edit]
Hapus
Rename
api
[Open]
Hapus
Rename
cache
[Open]
Hapus
Rename
cgi-bin
[Open]
Hapus
Rename
classes
[Open]
Hapus
Rename
config.TEMPLATE.inc.php
[Edit]
Hapus
Rename
config.inc.php
[Edit]
Hapus
Rename
controllers
[Open]
Hapus
Rename
cypress.json
[Edit]
Hapus
Rename
dbscripts
[Open]
Hapus
Rename
docs
[Open]
Hapus
Rename
error_log
[Edit]
Hapus
Rename
favicon.ico
[Edit]
Hapus
Rename
index.php
[Edit]
Hapus
Rename
js
[Open]
Hapus
Rename
lib
[Open]
Hapus
Rename
locale
[Open]
Hapus
Rename
mini.php
[Edit]
Hapus
Rename
pages
[Open]
Hapus
Rename
php.ini
[Edit]
Hapus
Rename
plugins
[Open]
Hapus
Rename
public
[Open]
Hapus
Rename
registry
[Open]
Hapus
Rename
scheduledTaskLogs
[Open]
Hapus
Rename
schemas
[Open]
Hapus
Rename
styles
[Open]
Hapus
Rename
templates
[Open]
Hapus
Rename
tools
[Open]
Hapus
Rename
Edit File
<?php /** * @file classes/context/Context.inc.php * * Copyright (c) 2014-2021 Simon Fraser University * Copyright (c) 2003-2021 John Willinsky * Distributed under the GNU GPL v3. For full terms see the file docs/COPYING. * * @class Context * @ingroup core * * @brief Basic class describing a context. */ // Constant used to distinguish whether metadata is enabled and whether it // should be requested or required during submission define('METADATA_DISABLE', 0); define('METADATA_ENABLE', 'enable'); define('METADATA_REQUEST', 'request'); define('METADATA_REQUIRE', 'require'); abstract class Context extends DataObject { /** * Get the localized name of the context * @param $preferredLocale string * @return string */ function getLocalizedName($preferredLocale = null) { return $this->getLocalizedData('name', $preferredLocale); } /** * Set the name of the context * @param $name string */ function setName($name, $locale = null) { $this->setData('name', $name, $locale); } /** * get the name of the context */ function getName($locale = null) { return $this->getData('name', $locale); } /** * Get the contact name for this context * @return string */ function getContactName() { return $this->getData('contactName'); } /** * Set the contact name for this context * @param $contactName string */ function setContactName($contactName) { $this->setData('contactName', $contactName); } /** * Get the contact email for this context * @return string */ function getContactEmail() { return $this->getData('contactEmail'); } /** * Set the contact email for this context * @param $contactEmail string */ function setContactEmail($contactEmail) { $this->setData('contactEmail', $contactEmail); } /** * Get context description. * @param $description string optional * @return string */ function getDescription($locale = null) { return $this->getData('description', $locale); } /** * Set context description. * @param $description string * @param $locale string optional */ function setDescription($description, $locale = null) { $this->setData('description', $description, $locale); } /** * Get path to context (in URL). * @return string */ function getPath() { return $this->getData('urlPath'); } /** * Set path to context (in URL). * @param $path string */ function setPath($path) { $this->setData('urlPath', $path); } /** * Get enabled flag of context * @return int */ function getEnabled() { return $this->getData('enabled'); } /** * Set enabled flag of context * @param $enabled int */ function setEnabled($enabled) { $this->setData('enabled', $enabled); } /** * Return the primary locale of this context. * @return string */ function getPrimaryLocale() { return $this->getData('primaryLocale'); } /** * Set the primary locale of this context. * @param $locale string */ function setPrimaryLocale($primaryLocale) { $this->setData('primaryLocale', $primaryLocale); } /** * Get sequence of context in site-wide list. * @return float */ function getSequence() { return $this->getData('seq'); } /** * Set sequence of context in site table of contents. * @param $sequence float */ function setSequence($sequence) { $this->setData('seq', $sequence); } /** * Get the localized description of the context. * @return string */ function getLocalizedDescription() { return $this->getLocalizedData('description'); } /** * Get localized acronym of context * @return string */ function getLocalizedAcronym() { return $this->getLocalizedData('acronym'); } /** * Get the acronym of the context. * @param $locale string * @return string */ function getAcronym($locale) { return $this->getData('acronym', $locale); } /** * Get localized favicon * @return string */ function getLocalizedFavicon() { $faviconArray = $this->getData('favicon'); foreach (array(AppLocale::getLocale(), AppLocale::getPrimaryLocale()) as $locale) { if (isset($faviconArray[$locale])) return $faviconArray[$locale]; } return null; } /** * Get the supported form locales. * @return array */ function getSupportedFormLocales() { return $this->getData('supportedFormLocales'); } /** * Return associative array of all locales supported by forms on the site. * These locales are used to provide a language toggle on the main site pages. * @return array */ function getSupportedFormLocaleNames() { $supportedLocales =& $this->getData('supportedFormLocaleNames'); if (!isset($supportedLocales)) { $supportedLocales = array(); $localeNames =& AppLocale::getAllLocales(); $locales = $this->getSupportedFormLocales(); if (!isset($locales) || !is_array($locales)) { $locales = array(); } foreach ($locales as $localeKey) { $supportedLocales[$localeKey] = $localeNames[$localeKey]; } } return $supportedLocales; } /** * Get the supported submission locales. * @return array */ function getSupportedSubmissionLocales() { return $this->getData('supportedSubmissionLocales'); } /** * Return associative array of all locales supported by submissions on the * site. These locales are used to provide a language toggle on the main * site pages. * @return array */ function getSupportedSubmissionLocaleNames() { $supportedLocales =& $this->getData('supportedSubmissionLocaleNames'); if (!isset($supportedLocales)) { $supportedLocales = array(); $localeNames =& AppLocale::getAllLocales(); $locales = $this->getSupportedSubmissionLocales(); if (!isset($locales) || !is_array($locales)) { $locales = array(); } foreach ($locales as $localeKey) { $supportedLocales[$localeKey] = $localeNames[$localeKey]; } } return $supportedLocales; } /** * Get the supported locales. * @return array */ function getSupportedLocales() { return $this->getData('supportedLocales'); } /** * Return associative array of all locales supported by the site. * These locales are used to provide a language toggle on the main site pages. * @return array */ function getSupportedLocaleNames() { $supportedLocales =& $this->getData('supportedLocaleNames'); if (!isset($supportedLocales)) { $supportedLocales = array(); $localeNames =& AppLocale::getAllLocales(); $locales = $this->getSupportedLocales(); if (!isset($locales) || !is_array($locales)) { $locales = array(); } foreach ($locales as $localeKey) { $supportedLocales[$localeKey] = $localeNames[$localeKey]; } } return $supportedLocales; } /** * Return date or/and time formats available for forms, fallback to the default if not set * @param $format string datetime property, e.g., dateFormatShort * @return array */ function getDateTimeFormats($format) { $data = $this->getData($format) ?? []; $fallbackConfigVar = strtolower(preg_replace('/([A-Z])/', '_$1', $format)); foreach ($this->getSupportedFormLocales() as $supportedLocale) { if (!array_key_exists($supportedLocale, $data)) $data[$supportedLocale] = Config::getVar('general', $fallbackConfigVar); } return $data; } /** * Return localized short date format, fallback to the default if not set * @return string, see DateTime::format */ function getLocalizedDateFormatShort($locale = null) { if (is_null($locale)) { $locale = AppLocale::getLocale(); } $localizedData = $this->getData('dateFormatShort', $locale); if (empty($localizedData)) { $localizedData = Config::getVar('general', 'date_format_short'); } return $localizedData; } /** * Return localized long date format, fallback to the default if not set * @return string, see DateTime::format */ function getLocalizedDateFormatLong($locale = null) { if (is_null($locale)) { $locale = AppLocale::getLocale(); } $localizedData = $this->getData('dateFormatLong', $locale); if (empty($localizedData)) { $localizedData = Config::getVar('general', 'date_format_long'); } return $localizedData; } /** * Return localized time format, fallback to the default if not set * @return string, see DateTime::format */ function getLocalizedTimeFormat($locale = null) { if (is_null($locale)) { $locale = AppLocale::getLocale(); } $localizedData = $this->getData('timeFormat', $locale); if (empty($localizedData)) { $localizedData = Config::getVar('general', 'time_format'); } return $localizedData; } /** * Return localized short date & time format, fallback to the default if not set * @return string, see see DateTime::format */ function getLocalizedDateTimeFormatShort($locale = null) { if (is_null($locale)) { $locale = AppLocale::getLocale(); } $localizedData = $this->getData('datetimeFormatShort', $locale); if (empty($localizedData)) { $localizedData = Config::getVar('general', 'datetime_format_short'); } return $localizedData; } /** * Return localized long date & time format, fallback to the default if not set * @return string, see see DateTime::format */ function getLocalizedDateTimeFormatLong($locale = null) { if (is_null($locale)) { $locale = AppLocale::getLocale(); } $localizedData = $this->getData('datetimeFormatLong', $locale); if (empty($localizedData)) { $localizedData = Config::getVar('general', 'datetime_format_long'); } return $localizedData; } /** * Get the association type for this context. * @return int */ public abstract function getAssocType(); /** * @deprecated Most settings should be available from self::getData(). In * other cases, use the context settings DAO directly. */ function getSetting($name, $locale = null) { return $this->getData($name, $locale); } /** * @deprecated Most settings should be available from self::getData(). In * other cases, use the context settings DAO directly. */ function getLocalizedSetting($name, $locale = null) { return $this->getLocalizedData($name, $locale); } /** * Update a context setting value. * @param $name string * @param $value mixed * @param $type string optional * @param $isLocalized boolean optional * @deprecated 3.3.0.0 */ function updateSetting($name, $value, $type = null, $isLocalized = false) { Services::get('context')->edit($this, [$name => $value], Application::get()->getRequest()); } /** * Get context main page views. * @return int */ function getViews() { $application = Application::get(); return $application->getPrimaryMetricByAssoc(Application::getContextAssocType(), $this->getId()); } // // Statistics API // /** * Return all metric types supported by this context. * * @return array An array of strings of supported metric type identifiers. */ function getMetricTypes($withDisplayNames = false) { // Retrieve report plugins enabled for this journal. $reportPlugins = PluginRegistry::loadCategory('reports', true, $this->getId()); if (empty($reportPlugins)) return array(); // Run through all report plugins and retrieve all supported metrics. $metricTypes = array(); foreach ($reportPlugins as $reportPlugin) { $pluginMetricTypes = $reportPlugin->getMetricTypes(); if ($withDisplayNames) { foreach ($pluginMetricTypes as $metricType) { $metricTypes[$metricType] = $reportPlugin->getMetricDisplayType($metricType); } } else { $metricTypes = array_merge($metricTypes, $pluginMetricTypes); } } return $metricTypes; } /** * Returns the currently configured default metric type for this context. * If no specific metric type has been set for this context then the * site-wide default metric type will be returned. * * @return null|string A metric type identifier or null if no default metric * type could be identified. */ function getDefaultMetricType() { $defaultMetricType = $this->getData('defaultMetricType'); // Check whether the selected metric type is valid. $availableMetrics = $this->getMetricTypes(); if (empty($defaultMetricType)) { if (count($availableMetrics) === 1) { // If there is only a single available metric then use it. $defaultMetricType = $availableMetrics[0]; } else { // Use the site-wide default metric. $application = Application::get(); $defaultMetricType = $application->getDefaultMetricType(); } } else { if (!in_array($defaultMetricType, $availableMetrics)) return null; } return $defaultMetricType; } /** * Retrieve a statistics report pre-filtered on this context. * * @see <https://pkp.sfu.ca/wiki/index.php/OJSdeStatisticsConcept#Input_and_Output_Formats_.28Aggregation.2C_Filters.2C_Metrics_Data.29> * for a full specification of the input and output format of this method. * * @param $metricType null|integer|array metrics selection * @param $columns integer|array column (aggregation level) selection * @param $filters array report-level filter selection * @param $orderBy array order criteria * @param $range null|DBResultRange paging specification * * @return null|array The selected data as a simple tabular * result set or null if metrics are not supported by this context. */ function getMetrics($metricType = null, $columns = array(), $filter = array(), $orderBy = array(), $range = null) { // Add a context filter and run the report. $filter[STATISTICS_DIMENSION_CONTEXT_ID] = $this->getId(); $application = Application::get(); return $application->getMetrics($metricType, $columns, $filter, $orderBy, $range); } }
Simpan