Skip to content
7 changes: 7 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
# Changelog

## 1.6.0.0 — 2025-09-27
- Compatibility updates for OJS 3.4/3.5.
- Added Arabic locale (`locale/ar/locale.po`).
- PHP 7/8+ return typehints on selected methods.
- Minor cleanup.
23 changes: 11 additions & 12 deletions PlumAnalyticsBlockPlugin.php
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,7 @@
* @file plugins/generic/plumAnalytics/PlumAnalyticsBlockPlugin.inc.php
*
* Copyright (c) 2018 University of Pittsburgh
* Distributed under the GNU GPL v2 or later. For full terms see the file docs/COPYING.
*
* Distributed under the GNU GPL v2 or later. For full terms see the file docs/COPYING. *
* @class PlumAnalyticsBlockPlugin
* @ingroup plugins_generic_plumAnalytics
*
Expand Down Expand Up @@ -41,13 +40,13 @@ function __construct($parentPluginName, $pluginPath) {
* @return boolean
*/
function getCurrentVersion() {
return false;
return '';
}

/**
* @copydoc LazyLoadPlugin::getEnabled()
*/
function getEnabled($contextId = null) {
function getEnabled($contextId = null): bool {
if (!Config::getVar('general', 'installed')) return true;
return parent::getEnabled($contextId);
}
Expand All @@ -56,31 +55,31 @@ function getEnabled($contextId = null) {
* Get the display name of this plugin.
* @return String
*/
function getDisplayName() {
function getDisplayName(): string {
return __('plugins.generic.plumAnalytics.block.displayName');
}

/**
* Get a description of the plugin.
* @return String
*/
function getDescription() {
function getDescription(): string {
return __('plugins.generic.plumAnalytics.block.description');
}

/**
* Hide this plugin from the management interface (it's subsidiary)
* @return boolean
*/
function getHideManagement() {
function getHideManagement(): bool {
return true;
}

/**
* Get the supported contexts (e.g. BLOCK_CONTEXT_...) for this block.
* @return array
*/
function getSupportedContexts() {
function getSupportedContexts(): array {
return array(BLOCK_CONTEXT_SIDEBAR);
}

Expand All @@ -97,23 +96,23 @@ function &getPlumPlugin() {
* Override the builtin to get the correct plugin path.
* @return string
*/
function getPluginPath() {
function getPluginPath(): string {
return $this->pluginPath;
}

/**
* Get the name of the block template file.
* @return String
*/
function getBlockTemplateFilename() {
function getBlockTemplateFilename(): string {
$plugin = $this->getPlumPlugin();
return (method_exists($plugin, 'getTemplateResource') ? '' : 'templates'.DIRECTORY_SEPARATOR) . 'blockPlumWidget.tpl';
}

/**
* @copydoc BlockPlugin::getContents()
*/
function getContents($templateMgr, $request = null) {
function getContents($templateMgr, $request = null): string {
$plugin = $this->getPlumPlugin();
$context = $request->getContext();
if ($templateMgr) {
Expand All @@ -124,7 +123,7 @@ function getContents($templateMgr, $request = null) {
return parent::getContents($templateMgr);
}
}
return false;
return '';
}
}

Expand Down
11 changes: 5 additions & 6 deletions PlumAnalyticsPlugin.php
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@
*
* Copyright (c) 2018 University of Pittsburgh
* Distributed under the GNU GPL v2 or later. For full terms see the file docs/COPYING.
*
* @class PlumAnalyticsPlugin
* @ingroup plugins_generic_plumAnalytics
*
Expand Down Expand Up @@ -76,7 +75,7 @@ class PlumAnalyticsPlugin extends GenericPlugin {
/**
* @copydoc Plugin::register()
*/
function register($category, $path, $mainContextId = null) {
function register($category, $path, $mainContextId = null): bool {
$success = parent::register($category, $path, $mainContextId);
if (!Config::getVar('general', 'installed') || defined('RUNNING_UPGRADE')) return true;
if ($success && $this->getEnabled()) {
Expand All @@ -99,22 +98,22 @@ function register($category, $path, $mainContextId = null) {
* Get the display name of this plugin.
* @return String
*/
function getDisplayName() {
function getDisplayName(): string {
return __('plugins.generic.plumAnalytics.displayName');
}

/**
* Get a description of the plugin.
* @return String
*/
function getDescription() {
function getDescription(): string {
return __('plugins.generic.plumAnalytics.description');
}

/**
* @copydoc Plugin::getActions()
*/
function getActions($request, $verb) {
function getActions($request, $verb): array {
$router = $request->getRouter();
return array_merge(
$this->getEnabled()?array(
Expand Down Expand Up @@ -255,7 +254,7 @@ function manage($args, $request) {
/**
* @copydoc Plugin::getTemplatePath()
*/
function getTemplatePath($inCore = false) {
function getTemplatePath($inCore = false): string {
return parent::getTemplatePath($inCore) . 'templates' . DIRECTORY_SEPARATOR;
}

Expand Down
5 changes: 2 additions & 3 deletions PlumAnalyticsSettingsForm.php
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,7 @@
* @file plugins/generic/plumAnalytics/PlumAnalyticsSettingsForm.inc.php
*
* Copyright (c) 2018 University of Pittsburgh
* Distributed under the GNU GPL v2 or later. For full terms see the file docs/COPYING.
*
* Distributed under the GNU GPL v2 or later. For full terms see the file docs/COPYING. *
* @class PlumAnalyticsSettingsForm
* @ingroup plugins_generic_plumAnalytics
*
Expand Down Expand Up @@ -92,7 +91,7 @@ function readInputData() {
* Fetch the form.
* @copydoc Form::fetch()
*/
function fetch($request, $template = NULL, $display = false) {
function fetch($request, $template = NULL, $display = false): string {
$templateMgr = TemplateManager::getManager($request);
$templateMgr->assign('pluginName', $this->_plugin->getName());
// This assigns select options
Expand Down
3 changes: 2 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,11 @@

# Plum Analytics Artifact Widget plugin for OJS

This plugin provides display of PlumX Metrics from [Plum Analytics](http://plumanalytics.com/) on the article level for PKP Open Journal Systems.

## Requirements

* OJS 3.4 or later
* OJS 3.5
* Article level DOIs
* see: Login -> Settings -> Website -> Plugins -> DOI
* PlumX tracking of the artifacts with those DOIs
Expand Down
118 changes: 118 additions & 0 deletions locale/ar/locale.po
Original file line number Diff line number Diff line change
@@ -0,0 +1,118 @@
msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"Last-Translator: \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"POT-Creation-Date: 2021-04-30T10:15:20-04:00\n"
"PO-Revision-Date: 2025-08-24 00:00+0000\n"
"Language: ar\n"
"Plural-Forms: nplurals=6; plural=n==0?0:n==1?1:n==2?2:n%100>=3 && n%100<=10?3:n%100>=11 && n%100<=99?4:5;\n"

msgid "plugins.generic.plumAnalytics.displayName"
msgstr "ودجت أثر PlumX"

msgid "plugins.generic.plumAnalytics.description"
msgstr "تكامل OJS مع منصة PlumX (اشتراك مدفوع) لتتبُّع أثر البحوث. عبر هذه الإضافة يمكن لعملاء PlumX تضمين ودجت \"أثر PlumX\" في صفحة ملخص المقالة داخل OJS لإبراز كيفية استخدام كل مقالة والتفاعل معها والحديث عنها حول العالم، وذلك عبر عشرات المقاييس المستخلصة من الويب المفتوح. ظهور الودجت يتطلب وجود معرِّف DOI للمقالة."

msgid "plugins.generic.plumAnalytics.block.displayName"
msgstr "كتلة ودجت أثر PlumX"

msgid "plugins.generic.plumAnalytics.manager.settings"
msgstr "الإعدادات"

msgid "plugins.generic.plumAnalytics.manager.plumAnalyticsSettings"
msgstr "إعدادات ودجت أثر PlumX"

msgid "plugins.generic.plumAnalytics.manager.settings.description"
msgstr "<p>عند تفعيل هذه الإضافة سيتم إدراج ودجت أثر PlumX في مقالاتك. يتطلب ذلك اتفاقية خدمة مع PlumX؛ يُرجى مراجعة <a href=\"http://plumanalytics.com/ojs_integration/\">معلومات تكامل PlumX مع OJS</a>. سيتم استخدام DOI الخاص بالمقالة لربطها بمقاييس أثر PlumX. للحصول على تفاصيل وأمثلة لإعدادات الودجت المختلفة، يُرجى مراجعة <a href=\"https://plu.mx/developers/widgets\" target=\"_blank\">صفحة ودجات PlumX</a>.</p>"

msgid "plugins.generic.plumAnalytics.manager.settings.widgetType"
msgstr "نوع الودجت"

msgid "plugins.generic.plumAnalytics.manager.settings.widgetType.plumx-plum-print-popup"
msgstr "نافذة منبثقة"

msgid "plugins.generic.plumAnalytics.manager.settings.widgetType.plumx-summary"
msgstr "ملخّص"

msgid "plugins.generic.plumAnalytics.manager.settings.widgetType.plumx-details"
msgstr "تفاصيل"

msgid "plugins.generic.plumAnalytics.manager.settings.widgetTypeInstructions"
msgstr "للتفاصيل والأمثلة على أنواع الودجات المختلفة، يُرجى مراجعة <a href=\"https://plu.mx/developers/widgets\" target=\"_blank\">صفحة ودجات PlumX</a>."

msgid "plugins.generic.plumAnalytics.manager.settings.widgetTypeRequired"
msgstr "نوع الودجت مطلوب."

msgid "plugins.generic.plumAnalytics.manager.settings.width"
msgstr "العرض"

msgid "plugins.generic.plumAnalytics.manager.settings.widthInvalid"
msgstr "قيمة العرض غير صالحة."

msgid "plugins.generic.plumAnalytics.manager.settings.popup"
msgstr "محاذاة النافذة المنبثقة"

msgid "plugins.generic.plumAnalytics.manager.settings.popup.left"
msgstr "يسار"

msgid "plugins.generic.plumAnalytics.manager.settings.popup.right"
msgstr "يمين"

msgid "plugins.generic.plumAnalytics.manager.settings.popup.top"
msgstr "أعلى"

msgid "plugins.generic.plumAnalytics.manager.settings.popup.bottom"
msgstr "أسفل"

msgid "plugins.generic.plumAnalytics.manager.settings.popup.hidden"
msgstr "مخفي"

msgid "plugins.generic.plumAnalytics.manager.settings.hideWhenEmpty"
msgstr "إخفاء عند عدم وجود بيانات"

msgid "plugins.generic.plumAnalytics.manager.settings.border"
msgstr "إظهار الإطار"

msgid "plugins.generic.plumAnalytics.manager.settings.hidePrint"
msgstr "إخفاء PlumPrint"

msgid "plugins.generic.plumAnalytics.manager.settings.orientation"
msgstr "اتجاه العرض"

msgid "plugins.generic.plumAnalytics.manager.settings.orientation.vertical"
msgstr "عمودي"

msgid "plugins.generic.plumAnalytics.manager.settings.orientation.horizontal"
msgstr "أفقي"

msgid "plugins.generic.plumAnalytics.manager.settings.hook"
msgstr "موضع العرض"

msgid "plugins.generic.plumAnalytics.manager.settings.hook.footer"
msgstr "في تذييل صفحة المقالة"

msgid "plugins.generic.plumAnalytics.manager.settings.hook.moreInfo"
msgstr "أسفل ملخص المقالة"

msgid "plugins.generic.plumAnalytics.manager.settings.hook.details"
msgstr "أسفل تفاصيل المقالة"

msgid "plugins.generic.plumAnalytics.manager.settings.hookRequired"
msgstr "يجب اختيار موضع لعرض الودجت."

msgid "plugins.generic.plumAnalytics.manager.settings.hookInstructions"
msgstr "إذا اخترت \"Plum Analytics Artifact Widget Block\"، فستحتاج أيضًا إلى إضافة الكتلة إلى التخطيط من \"الإعداد\"، ويمكنك تحديد عنوان للكتلة أدناه."

msgid "plugins.generic.plumAnalytics.manager.settings.htmlPrefix"
msgstr "HTML قبل"

msgid "plugins.generic.plumAnalytics.manager.settings.htmlSuffix"
msgstr "HTML بعد"

msgid "plugins.generic.plumAnalytics.manager.settings.blockTitle"
msgstr "عنوان الكتلة"
4 changes: 2 additions & 2 deletions version.xml
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,8 @@
<version>
<application>plumAnalytics</application>
<type>plugins.generic</type>
<release>1.5.0.0</release>
<date>2024-12-19</date>
<release>1.6.0.0</release>
<date>2025-09-27</date>
<lazy-load>1</lazy-load>
<class>PlumAnalyticsPlugin</class>
</version>