diff --git a/src/ActivityBehaviors.php b/src/ActivityBehaviors.php
index 2ca6cc7..c541a7e 100644
--- a/src/ActivityBehaviors.php
+++ b/src/ActivityBehaviors.php
@@ -274,7 +274,7 @@ class ActivityBehaviors
public static function blogUpdate(Cursor $cur, string $blog_id): void
{
- $logs = [self::str(dcCore::app()->auth?->getInfo('user_cn'))];
+ $logs = [self::str(dcCore::app()->auth->getInfo('user_cn'))];
ActivityReport::instance()->addLog('blog', 'update', $logs);
}
@@ -292,18 +292,19 @@ class ActivityBehaviors
$post_url = dcCore::app()->blog?->getPostURL('', self::str($cur->getField('post_dt')), self::str($cur->getField('post_title')), $post_id);
$logs = [
self::str($cur->getField('post_title')),
- self::str(dcCore::app()->auth?->getInfo('user_cn')),
+ self::str(dcCore::app()->auth->getInfo('user_cn')),
self::str(dcCore::app()->blog?->url) . dcCore::app()->url->getBase(self::str($cur->getField('post_type'))) . '/' . $post_url,
];
ActivityReport::instance()->addLog('post', 'create', $logs);
}
- public static function postUpdate(Cursor $cur, int $post_id): void
+ public static function postUpdate(Cursor $cur, int|string $post_id): void
{
+ $post_id = is_numeric($post_id) ? (int) $post_id : 0;
$post_url = dcCore::app()->blog?->getPostURL('', self::str($cur->getField('post_dt')), self::str($cur->getField('post_title')), $post_id);
$logs = [
self::str($cur->getField('post_title')),
- self::str(dcCore::app()->auth?->getInfo('user_cn')),
+ self::str(dcCore::app()->auth->getInfo('user_cn')),
self::str(dcCore::app()->blog?->url) . dcCore::app()->url->getBase(self::str($cur->getField('post_type'))) . '/' . $post_url,
];
ActivityReport::instance()->addLog('post', 'update', $logs);
@@ -317,7 +318,7 @@ class ActivityBehaviors
}
$logs = [
self::str($posts->f('post_title')),
- self::str(dcCore::app()->auth?->getInfo('user_cn')),
+ self::str(dcCore::app()->auth->getInfo('user_cn')),
];
ActivityReport::instance()->addLog('post', 'delete', $logs);
}
@@ -365,7 +366,7 @@ class ActivityBehaviors
}
$logs = [
- self::str(dcCore::app()->auth?->getInfo('user_cn')),
+ self::str(dcCore::app()->auth->getInfo('user_cn')),
self::str($posts->f('post_title')),
self::str(dcCore::app()->blog?->url) . dcCore::app()->url->getBase(self::str($posts->f('post_type'))) .
'/' . self::str($posts->f('post_url')) . '#c' . self::str($old->f('comment_id')),
@@ -400,7 +401,7 @@ class ActivityBehaviors
{
$logs = [
self::str($cur->getField('cat_title')),
- self::str(dcCore::app()->auth?->getInfo('user_cn')),
+ self::str(dcCore::app()->auth->getInfo('user_cn')),
self::str(dcCore::app()->blog?->url) . dcCore::app()->url->getBase('category') . '/' . self::str($cur->getField('cat_url')),
];
ActivityReport::instance()->addLog('category', 'create', $logs);
@@ -410,7 +411,7 @@ class ActivityBehaviors
{
$logs = [
self::str($cur->getField('cat_title')),
- self::str(dcCore::app()->auth?->getInfo('user_cn')),
+ self::str(dcCore::app()->auth->getInfo('user_cn')),
self::str(dcCore::app()->blog?->url) . dcCore::app()->url->getBase('category') . '/' . self::str($cur->getField('cat_url')),
];
ActivityReport::instance()->addLog('category', 'update', $logs);
@@ -426,7 +427,7 @@ class ActivityBehaviors
);
$logs = [
self::str($user_cn),
- self::str(dcCore::app()->auth?->getInfo('user_cn')),
+ self::str(dcCore::app()->auth->getInfo('user_cn')),
];
ActivityReport::instance()->addLog('user', 'create', $logs);
}
@@ -441,7 +442,7 @@ class ActivityBehaviors
);
$logs = [
self::str($user_cn),
- self::str(dcCore::app()->auth?->getInfo('user_cn')),
+ self::str(dcCore::app()->auth->getInfo('user_cn')),
];
ActivityReport::instance()->addLog('user', 'update', $logs);
}
@@ -480,7 +481,7 @@ class ActivityBehaviors
);
$logs = [
self::str($user_cn),
- self::str(dcCore::app()->auth?->getInfo('user_cn')),
+ self::str(dcCore::app()->auth->getInfo('user_cn')),
];
ActivityReport::instance()->addLog('user', 'delete', $logs);
}
diff --git a/src/ActivityReport.php b/src/ActivityReport.php
index 9228c74..2fc79fc 100644
--- a/src/ActivityReport.php
+++ b/src/ActivityReport.php
@@ -667,7 +667,7 @@ class ActivityReport
$headers[] = 'From: ' . (defined('DC_ADMIN_MAILFROM') && str_contains(DC_ADMIN_MAILFROM, '@') ? DC_ADMIN_MAILFROM : 'dotclear@local');
$headers[] = 'Content-Type: text/' . $mailformat . '; charset=UTF-8;';
//$headers[] = 'MIME-Version: 1.0';
- //$headers[] = 'X-Originating-IP: ' . mb_encode_mimeheader(http::realIP(), 'UTF-8', 'B');
+ //$headers[] = 'X-Originating-IP: ' . mb_encode_mimeheader(Http::realIP(), 'UTF-8', 'B');
//$headers[] = 'X-Mailer: Dotclear';
//$headers[] = 'X-Blog-Id: ' . mb_encode_mimeheader(dcCore::app()->blog->id), 'UTF-8', 'B');
//$headers[] = 'X-Blog-Name: ' . mb_encode_mimeheader(dcCore::app()->blog->name), 'UTF-8', 'B');
@@ -693,8 +693,8 @@ class ActivityReport
*/
public function getUserCode(): string
{
- $id = is_string(dcCore::app()->auth?->userID()) ? dcCore::app()->auth->userID() : '';
- $pw = is_string(dcCore::app()->auth?->getInfo('user_pwd')) ? dcCore::app()->auth->getInfo('user_pwd') : '';
+ $id = is_string(dcCore::app()->auth->userID()) ? dcCore::app()->auth->userID() : '';
+ $pw = is_string(dcCore::app()->auth->getInfo('user_pwd')) ? dcCore::app()->auth->getInfo('user_pwd') : '';
$code = pack('a32', $id) . pack('H*', Crypt::hmac(DC_MASTER_KEY, $pw));
return bin2hex($code);
diff --git a/src/Backend.php b/src/Backend.php
index 8ef3d49..ab0abce 100644
--- a/src/Backend.php
+++ b/src/Backend.php
@@ -15,13 +15,10 @@ declare(strict_types=1);
namespace Dotclear\Plugin\activityReport;
use ArrayObject;
-use dcAdmin;
use dcAuth;
use dcCore;
-use dcFavorites;
-use dcMenu;
-use dcNsProcess;
-use dcPage;
+use Dotclear\Core\Backend\Favorites;
+use Dotclear\Core\Process;
use Dotclear\Helper\Date;
use Dotclear\Helper\Html\Form\{
Div,
@@ -34,54 +31,37 @@ use Dotclear\Helper\Html\Form\{
/**
* Backend process
*/
-class Backend extends dcNsProcess
+class Backend extends Process
{
public static function init(): bool
{
- static::$init = defined('DC_CONTEXT_ADMIN')
- && defined('ACTIVITY_REPORT')
- && My::isInstalled();
-
- return static::$init;
+ return self::status(My::checkContext(My::BACKEND));
}
public static function process(): bool
{
- if (!static::$init) {
+ if (!self::status()) {
return false;
}
- if ((dcCore::app()->menu[dcAdmin::MENU_PLUGINS] instanceof dcMenu)) {
- dcCore::app()->menu[dcAdmin::MENU_PLUGINS]->addItem(
- My::name(),
- (string) dcCore::app()->adminurl?->get('admin.plugin.' . My::id()),
- dcPage::getPF(My::id() . '/icon.svg'),
- preg_match(
- '/' . preg_quote((string) dcCore::app()->adminurl?->get('admin.plugin.' . My::id())) . '(&.*)?$/',
- $_SERVER['REQUEST_URI']
- ),
- (bool) dcCore::app()->auth?->check(dcCore::app()->auth->makePermissions([
- dcAuth::PERMISSION_ADMIN,
- ]), dcCore::app()->blog?->id)
- );
- }
+ My::addBackendMenuItem();
dcCore::app()->addBehaviors([
// dashboard favorites icon
- 'adminDashboardFavoritesV2' => function (dcFavorites $favs): void {
+ 'adminDashboardFavoritesV2' => function (Favorites $favs): void {
$favs->register(My::id(), [
'title' => My::name(),
- 'url' => dcCore::app()->adminurl?->get('admin.plugin.' . My::id()),
- 'small-icon' => dcPage::getPF(My::id() . '/icon.svg'),
- 'large-icon' => dcPage::getPF(My::id() . '/icon.svg'),
- 'permissions' => dcCore::app()->auth?->makePermissions([
+ 'url' => My::manageUrl(),
+ 'small-icon' => My::icons(),
+ 'large-icon' => My::icons(),
+ 'permissions' => dcCore::app()->auth->makePermissions([
dcAuth::PERMISSION_ADMIN,
]),
]);
},
// dashboard content display
'adminDashboardContentsV2' => function (ArrayObject $items): void {
- $db = dcCore::app()->auth?->user_prefs?->get(My::id())->get('dashboard_item');
+ $db = dcCore::app()->auth->user_prefs?->get(My::id())->get('dashboard_item');
$limit = abs(is_numeric($db) ? (int) $db : 0);
if (!$limit) {
return ;
@@ -109,7 +89,7 @@ class Backend extends dcNsProcess
'
' . Date::str(
dcCore::app()->blog?->settings->get('system')->get('date_format') . ', ' . dcCore::app()->blog?->settings->get('system')->get('time_format'),
(int) strtotime($row->dt),
- is_string(dcCore::app()->auth?->getInfo('user_tz')) ? dcCore::app()->auth->getInfo('user_tz') : 'UTC'
+ is_string(dcCore::app()->auth->getInfo('user_tz')) ? dcCore::app()->auth->getInfo('user_tz') : 'UTC'
) . '
' .
'' .
'' . ActivityReport::parseMessage(__($group->get($row->action)->message), $row->logs) . '
';
@@ -123,12 +103,12 @@ class Backend extends dcNsProcess
'' . My::name() . '
' .
'' . implode('', $lines) . '
' .
'' .
+ My::manageUrl() . '">' .
__('View all logs') . ' - ' .
__('Configure plugin') . '
' .
'',
@@ -136,7 +116,7 @@ class Backend extends dcNsProcess
},
// dashboard content user preference form
'adminDashboardOptionsFormV2' => function (): void {
- $db = dcCore::app()->auth?->user_prefs?->get(My::id())->get('dashboard_item');
+ $db = dcCore::app()->auth->user_prefs?->get(My::id())->get('dashboard_item');
echo
(new Div())->class('fieldset')->items([
(new Text('h4', My::name())),
@@ -157,7 +137,7 @@ class Backend extends dcNsProcess
// save dashboard content user preference
'adminAfterDashboardOptionsUpdate' => function (?string $user_id = null): void {
if (!is_null($user_id)) {
- dcCore::app()->auth?->user_prefs?->get(My::id())->put(
+ dcCore::app()->auth->user_prefs?->get(My::id())->put(
'dashboard_item',
(int) $_POST[My::id() . '_dashboard_item'],
'integer'
diff --git a/src/Combo.php b/src/Combo.php
index 71af346..8530861 100644
--- a/src/Combo.php
+++ b/src/Combo.php
@@ -56,7 +56,7 @@ class Combo
*
* @return array The obsolete period combo
*/
- public static function obselete(): array
+ public static function obsolete(): array
{
return [
__('every hour') => 3600,
diff --git a/src/Config.php b/src/Config.php
index df6f58b..48eb9a0 100644
--- a/src/Config.php
+++ b/src/Config.php
@@ -14,10 +14,9 @@ declare(strict_types=1);
namespace Dotclear\Plugin\activityReport;
-use dcAuth;
use dcCore;
-use dcPage;
-use dcNsProcess;
+use Dotclear\Core\Backend\Notices;
+use Dotclear\Core\Process;
use Dotclear\Helper\Date;
use Dotclear\Helper\Html\Form\{
Checkbox,
@@ -35,22 +34,16 @@ use Exception;
/**
* Config process.
*/
-class Config extends dcNsProcess
+class Config extends Process
{
public static function init(): bool
{
- static::$init == defined('DC_CONTEXT_ADMIN')
- && defined('ACTIVITY_REPORT')
- && dcCore::app()->auth?->check(dcCore::app()->auth->makePermissions([
- dcAuth::PERMISSION_ADMIN,
- ]), dcCore::app()->blog?->id);
-
- return static::$init;
+ return self::status(My::checkContext(My::CONFIG));
}
public static function process(): bool
{
- if (!static::$init) {
+ if (!self::status()) {
return false;
}
@@ -65,7 +58,7 @@ class Config extends dcNsProcess
if (in_array($_POST['interval'], Combo::interval())) {
$s->set('interval', (int) $_POST['interval']);
}
- if (in_array($_POST['obsolete'], Combo::obselete())) {
+ if (in_array($_POST['obsolete'], Combo::obsolete())) {
$s->set('obsolete', (int) $_POST['obsolete']);
}
$s->set('mailinglist', explode(';', $_POST['mailinglist']));
@@ -73,26 +66,26 @@ class Config extends dcNsProcess
$s->set('dateformat', $_POST['dateformat']);
$s->set('requests', $_POST['requests'] ?? []);
- dcPage::addSuccessNotice(
+ Notices::addSuccessNotice(
__('Configuration successfully updated.')
);
if (!empty($_POST['send_report_now'])) {
ActivityReport::instance()->needReport(true);
- dcPage::addSuccessNotice(
+ Notices::addSuccessNotice(
__('Report successfully sent.')
);
}
if (!empty($_POST['delete_report_now'])) {
ActivityReport::instance()->deleteLogs();
- dcPage::addSuccessNotice(
+ Notices::addSuccessNotice(
__('Logs successfully deleted.')
);
}
- dcCore::app()->adminurl?->redirect('admin.plugins', [
+ dcCore::app()->admin->url->redirect('admin.plugins', [
'module' => My::id(),
'conf' => 1,
]);
@@ -105,12 +98,12 @@ class Config extends dcNsProcess
public static function render(): void
{
- if (!static::$init) {
+ if (!self::status()) {
return;
}
$s = ActivityReport::instance()->settings;
- $tz = is_string(dcCore::app()->auth?->getInfo('user_tz')) ? dcCore::app()->auth->getInfo('user_tz') : 'UTC';
+ $tz = is_string(dcCore::app()->auth->getInfo('user_tz')) ? dcCore::app()->auth->getInfo('user_tz') : 'UTC';
if (!$s->lastreport) {
$last_report = __('never');
@@ -171,11 +164,11 @@ class Config extends dcNsProcess
]),
(new Text(
'ul',
- ' ' .
+ ' ' .
'' .
__('Rss2 activities feed') . '' .
- ' ' .
+ ' ' .
'' .
__('Atom activities feed') . ''
@@ -211,8 +204,8 @@ class Config extends dcNsProcess
(new Div('settings'))->class('fieldset')->items([
(new Text('h4', __('Maintenance'))),
(new Para())->items([
- (new Label(__('Automatic cleaning of old logs:'), Label::OUTSIDE_LABEL_BEFORE))->for('obselete'),
- (new Select('obselete'))->default((string) $s->obsolete)->items(Combo::obselete()),
+ (new Label(__('Automatic cleaning of old logs:'), Label::OUTSIDE_LABEL_BEFORE))->for('obsolete'),
+ (new Select('obsolete'))->default((string) $s->obsolete)->items(Combo::obsolete()),
]),
(new Para())->items([
(new Checkbox('send_report_now'))->value(1),
diff --git a/src/Frontend.php b/src/Frontend.php
index becb098..542e9a2 100644
--- a/src/Frontend.php
+++ b/src/Frontend.php
@@ -15,24 +15,21 @@ declare(strict_types=1);
namespace Dotclear\Plugin\activityReport;
use dcCore;
-use dcNsProcess;
+use Dotclear\Core\Process;
/**
* Front end process.
*/
-class Frontend extends dcNsProcess
+class Frontend extends Process
{
public static function init(): bool
{
- static::$init = defined('ACTIVITY_REPORT')
- && My::isInstalled();
-
- return static::$init;
+ return self::status(My::checkContext(My::FRONTEND));
}
public static function process(): bool
{
- if (!static::$init) {
+ if (!self::status()) {
return false;
}
diff --git a/src/Install.php b/src/Install.php
index 04d01db..8199231 100644
--- a/src/Install.php
+++ b/src/Install.php
@@ -15,7 +15,7 @@ declare(strict_types=1);
namespace Dotclear\Plugin\activityReport;
use dcCore;
-use dcNsProcess;
+use Dotclear\Core\Process;
use Dotclear\Database\Structure;
use Dotclear\Database\Statement\{
DropStatement,
@@ -26,20 +26,16 @@ use Exception;
/**
* Install process.
*/
-class Install extends dcNsProcess
+class Install extends Process
{
public static function init(): bool
{
- static::$init = defined('DC_CONTEXT_ADMIN')
- && is_string(dcCore::app()->plugins->moduleInfo(My::id(), 'version'))
- && dcCore::app()->newVersion(My::id(), dcCore::app()->plugins->moduleInfo(My::id(), 'version'));
-
- return static::$init;
+ return self::status(My::checkContext(My::INSTALL));
}
public static function process(): bool
{
- if (!static::$init) {
+ if (!self::status()) {
return false;
}
diff --git a/src/Manage.php b/src/Manage.php
index cc577a1..cb1a599 100644
--- a/src/Manage.php
+++ b/src/Manage.php
@@ -15,11 +15,13 @@ declare(strict_types=1);
namespace Dotclear\Plugin\activityReport;
use ArrayObject;
-use adminGenericFilter;
-use dcAuth;
use dcCore;
-use dcNsProcess;
-use dcPage;
+use Dotclear\Core\Backend\Filter\Filters;
+use Dotclear\Core\Backend\{
+ Notices,
+ Page
+};
+use Dotclear\Core\Process;
use Dotclear\Helper\Html\Form\{
Form,
Hidden,
@@ -32,30 +34,24 @@ use Exception;
/**
* Manage process (admin logs list).
*/
-class Manage extends dcNsProcess
+class Manage extends Process
{
public static function init(): bool
{
- static::$init = defined('DC_CONTEXT_ADMIN')
- && defined('ACTIVITY_REPORT')
- && dcCore::app()->auth?->check(dcCore::app()->auth->makePermissions([
- dcAuth::PERMISSION_ADMIN,
- ]), dcCore::app()->blog?->id);
-
- return static::$init;
+ return self::status(My::checkContext(My::MANAGE));
}
public static function process(): bool
{
- if (!static::$init) {
+ if (!self::status()) {
return false;
}
if (!empty($_POST['delete_all_logs']) || !empty($_POST['delete_reported_logs'])) {
try {
ActivityReport::instance()->deleteLogs(!empty($_POST['delete_reported_logs']));
- dcPage::addSuccessNotice(__('Logs successfully deleted'));
- dcCore::app()->adminurl?->redirect('admin.plugin.' . My::id());
+ Notices::addSuccessNotice(__('Logs successfully deleted'));
+ My::redirect();
} catch (Exception $e) {
dcCore::app()->error->add($e->getMessage());
}
@@ -66,40 +62,40 @@ class Manage extends dcNsProcess
public static function render(): void
{
- if (!static::$init) {
+ if (!self::status()) {
return;
}
$logs = $counter = $list = null;
- $filter = new adminGenericFilter(dcCore::app(), My::id());
+ $filter = new Filters(My::id());
$params = new ArrayObject($filter->params());
try {
$logs = ActivityReport::instance()->getLogs($params);
$counter = ActivityReport::instance()->getLogs($params, true);
if (!is_null($logs) && !is_null($counter)) {
- $list = new ManageList(dcCore::app(), $logs, $counter->f(0));
+ $list = new ManageList($logs, $counter->f(0));
}
} catch (Exception $e) {
dcCore::app()->error->add($e->getMessage());
}
- dcPage::openModule(
+ Page::openModule(
My::name(),
- $filter->js((string) dcCore::app()->adminurl?->get('admin.plugin.' . My::id())) .
- dcPage::jsJson(My::id(), ['confirm_delete' => __('Are you sure you want to delete logs?')]) .
- dcPage::jsModuleLoad(My::id() . '/js/backend.js') .
+ $filter->js((string) My::manageUrl()) .
+ Page::jsJson(My::id(), ['confirm_delete' => __('Are you sure you want to delete logs?')]) .
+ My::jsLoad('backend') .
# --BEHAVIOR-- activityReportListHeader --
dcCore::app()->callBehavior('activityReportListHeader')
);
echo
- dcPage::breadcrumb([
+ Page::breadcrumb([
__('Plugins') => '',
My::name() => '',
]) .
- dcPage::notices();
+ Notices::getNotices();
if (!is_null($list)) {
$filter->display('admin.plugin.' . My::id(), (new Hidden('p', My::id()))->render());
@@ -112,11 +108,11 @@ class Manage extends dcNsProcess
(new Para())->class('right')->separator(' ')->items([
(new Submit('delete_all_logs'))->class('delete')->value(__('Delete all aticivity logs')),
(new Submit('delete_reported_logs'))->class('delete')->value(__('Delete all allready reported logs')),
- dcCore::app()->formNonce(false),
+ ... My::hiddenFields(),
]),
])->render();
}
- dcPage::closeModule();
+ Page::closeModule();
}
}
diff --git a/src/ManageList.php b/src/ManageList.php
index 8257643..d285fdd 100644
--- a/src/ManageList.php
+++ b/src/ManageList.php
@@ -15,18 +15,20 @@ declare(strict_types=1);
namespace Dotclear\Plugin\activityReport;
use ArrayObject;
-use adminGenericFilter;
-use adminGenericList;
use dcCore;
-use dcPager;
+use Dotclear\Core\Backend\Filter\Filters;
+use Dotclear\Core\Backend\Listing\{
+ Listing,
+ Pager
+};
use Dotclear\Helper\Date;
/**
* Logs admin list helper.
*/
-class ManageList extends adminGenericList
+class ManageList extends Listing
{
- public function logsDisplay(adminGenericFilter $filter, string $enclose_block = ''): void
+ public function logsDisplay(Filters $filter, string $enclose_block = ''): void
{
if (!$this->rs || $this->rs->isEmpty()) {
if ($filter->show()) {
@@ -37,7 +39,7 @@ class ManageList extends adminGenericList
} else {
$page = $filter->value('page');
$nbpp = $filter->value('nb');
- $pager = new dcPager(is_numeric($page) ? (int) $page : 1, (int) $this->rs_count, is_numeric($nbpp) ? (int) $nbpp : 20, 10);
+ $pager = new Pager(is_numeric($page) ? (int) $page : 1, (int) $this->rs_count, is_numeric($nbpp) ? (int) $nbpp : 20, 10);
$pager->var_page = 'page';
$html_block = '' . (
@@ -83,7 +85,7 @@ class ManageList extends adminGenericList
$date = Date::str(
dcCore::app()->blog?->settings->get('system')->get('date_format') . ', ' . dcCore::app()->blog?->settings->get('system')->get('time_format'),
(int) strtotime($row->dt),
- is_string(dcCore::app()->auth?->getInfo('user_tz')) ? dcCore::app()->auth->getInfo('user_tz') : 'UTC'
+ is_string(dcCore::app()->auth->getInfo('user_tz')) ? dcCore::app()->auth->getInfo('user_tz') : 'UTC'
);
$status = $row->status == ActivityReport::STATUS_PENDING ? __('pending') : __('reported');
diff --git a/src/My.php b/src/My.php
index 6536825..64c95df 100644
--- a/src/My.php
+++ b/src/My.php
@@ -15,11 +15,12 @@ declare(strict_types=1);
namespace Dotclear\Plugin\activityReport;
use dcCore;
+use Dotclear\Module\MyPlugin;
/**
* This module definitions.
*/
-class My
+class My extends MyPlugin
{
/** @var string Activity database table name */
public const ACTIVITY_TABLE_NAME = 'activity';
@@ -27,30 +28,23 @@ class My
/** @var int Incremental version by breaking changes */
public const COMPATIBILITY_VERSION = 3;
- /**
- * This module id.
- */
- public static function id(): string
+ public static function checkCustomContext(int $context): ?bool
{
- return basename(dirname(__DIR__));
- }
-
- /**
- * This module name.
- */
- public static function name(): string
- {
- $name = dcCore::app()->plugins->moduleInfo(self::id(), 'name');
-
- return __(is_string($name) ? $name : self::id());
- }
-
- /**
- * This module path.
- */
- public static function path(): string
- {
- return dirname(__DIR__);
+ switch($context) {
+ case My::FRONTEND:
+ return defined('ACTIVITY_REPORT') && My::isInstalled();
+ case My::BACKEND:
+ return defined('DC_CONTEXT_ADMIN') && defined('ACTIVITY_REPORT') && My::isInstalled();
+ case My::CONFIG:
+ case My::MANAGE:
+ return defined('DC_CONTEXT_ADMIN')
+ && defined('ACTIVITY_REPORT')
+ && dcCore::app()->auth->check(dcCore::app()->auth->makePermissions([
+ dcCore::app()->auth::PERMISSION_ADMIN,
+ ]), dcCore::app()->blog?->id);
+ default:
+ return null;
+ }
}
/**
@@ -60,6 +54,6 @@ class My
*/
public static function isInstalled(): bool
{
- return dcCore::app()->getVersion(self::id()) == dcCore::app()->plugins->moduleInfo(self::id(), 'version');
+ return dcCore::app()->getVersion(self::id()) == (string) dcCore::app()->plugins->getDefine(self::id())->get('version');
}
}
diff --git a/src/Prepend.php b/src/Prepend.php
index f2895cd..c8b122b 100644
--- a/src/Prepend.php
+++ b/src/Prepend.php
@@ -15,25 +15,22 @@ declare(strict_types=1);
namespace Dotclear\Plugin\activityReport;
use dcCore;
-use dcNsProcess;
+use Dotclear\Core\Process;
use Exception;
/**
* Prepend process.
*/
-class Prepend extends dcNsProcess
+class Prepend extends Process
{
public static function init(): bool
{
- static::$init = defined('DC_RC_PATH')
- && My::isInstalled();
-
- return static::$init;
+ return self::status(My::checkContext(My::PREPEND));
}
public static function process(): bool
{
- if (!static::$init) {
+ if (!self::status()) {
return false;
}
diff --git a/src/Settings.php b/src/Settings.php
index ca6e375..e93208c 100644
--- a/src/Settings.php
+++ b/src/Settings.php
@@ -14,9 +14,6 @@ declare(strict_types=1);
namespace Dotclear\Plugin\activityReport;
-use dcCore;
-use Exception;
-
/**
* Module settings helper.
*/
@@ -51,10 +48,6 @@ class Settings
*/
public function __construct()
{
- if (is_null(dcCore::app()->blog)) {
- throw new Exception('Blog is not set');
- }
-
$this->feed_active = (bool) ($this->get('feed_active') ?? false);
$this->obsolete = is_numeric($this->get('obsolete')) ? (int) $this->get('obsolete') : 2419200;
$this->interval = is_numeric($this->get('interval')) ? (int) $this->get('interval') : 86400;
@@ -86,7 +79,7 @@ class Settings
public function set(string $key, mixed $value): void
{
if (property_exists($this, $key) && gettype($value) == gettype($this->{$key})) {
- dcCore::app()->blog?->settings->get(My::id())->put(
+ My::settings()->put(
$key,
$value,
gettype($value),
@@ -106,6 +99,6 @@ class Settings
*/
private function get(string $key): mixed
{
- return dcCore::app()->blog?->settings->get(My::id())->get($key);
+ return My::settings()->get($key);
}
}
diff --git a/src/Uninstall.php b/src/Uninstall.php
index 980420d..c933e12 100644
--- a/src/Uninstall.php
+++ b/src/Uninstall.php
@@ -15,7 +15,7 @@ declare(strict_types=1);
namespace Dotclear\Plugin\activityReport;
use dcCore;
-use dcNsProcess;
+use Dotclear\Core\Process;
use Dotclear\Plugin\Uninstaller\Uninstaller;
/**
@@ -23,18 +23,16 @@ use Dotclear\Plugin\Uninstaller\Uninstaller;
*
* Using plugin Uninstaller
*/
-class Uninstall extends dcNsProcess
+class Uninstall extends Process
{
public static function init(): bool
{
- static::$init = defined('DC_CONTEXT_ADMIN');
-
- return static::$init;
+ return self::status(My::checkContext(My::UNINSTALL));
}
public static function process(): bool
{
- if (!static::$init || !dcCore::app()->plugins->moduleExists('Uninstaller')) {
+ if (!self::status() || !dcCore::app()->plugins->moduleExists('Uninstaller')) {
return false;
}