From 78c34f1b762dc2df4ad33fe19ea109fead0c7ac7 Mon Sep 17 00:00:00 2001 From: Jean-Christian Denis Date: Tue, 17 Oct 2023 22:47:35 +0200 Subject: [PATCH] upgrade to Dotclear 2.28 --- _init.php | 20 ------ src/Action.php | 22 +++---- src/ActivityBehaviors.php | 127 +++++++++++++++++++------------------- src/ActivityReport.php | 98 ++++++++++++++--------------- src/ActivityRow.php | 18 ++---- src/Backend.php | 41 +++++------- src/Combo.php | 18 ++---- src/Config.php | 34 +++++----- src/Context.php | 18 ++---- src/Format.php | 18 ++---- src/Formats.php | 18 ++---- src/Frontend.php | 32 ++++------ src/Group.php | 18 ++---- src/Groups.php | 18 ++---- src/Install.php | 38 +++++------- src/Manage.php | 28 ++++----- src/ManageList.php | 24 +++---- src/My.php | 62 ++++++++++--------- src/Prepend.php | 24 +++---- src/Settings.php | 18 ++---- src/Template.php | 50 +++++++-------- src/Uninstall.php | 21 ++----- src/UrlHandler.php | 40 +++++------- 23 files changed, 328 insertions(+), 477 deletions(-) delete mode 100644 _init.php diff --git a/_init.php b/_init.php deleted file mode 100644 index b9df621..0000000 --- a/_init.php +++ /dev/null @@ -1,20 +0,0 @@ -addBehavior($behavior, $function); + App::behavior()->addBehavior($behavior, $function); } } } diff --git a/src/ActivityBehaviors.php b/src/ActivityBehaviors.php index c541a7e..762edff 100644 --- a/src/ActivityBehaviors.php +++ b/src/ActivityBehaviors.php @@ -1,23 +1,12 @@ add(new Action( 'preference', __('updating user preference'), __('"%s" user preference has been updated'), 'adminAfterUserOptionsUpdate', - [self::class, 'userPreference'] + self::userPreference(...) )); $user->add(new Action( 'preference', __('updating user preference'), __('"%s" user preference has been updated'), 'adminAfterDashboardOptionsUpdate', - [self::class, 'userOption'] + self::userOption(...) )); // from BEHAVIOR adminBeforeUserDelete in admin/users.php @@ -219,7 +216,7 @@ class ActivityBehaviors __('user deletion'), __('User named "%s" has been deleted by "%"'), 'adminBeforeUserDelete', - [self::class, 'userDelete'] + self::userDelete(...) )); ActivityReport::instance()->groups @@ -274,26 +271,26 @@ class ActivityBehaviors public static function blogUpdate(Cursor $cur, string $blog_id): void { - $logs = [self::str(dcCore::app()->auth->getInfo('user_cn'))]; + $logs = [self::str(App::auth()->getInfo('user_cn'))]; ActivityReport::instance()->addLog('blog', 'update', $logs); } public static function blogP404(): void { - if (dcCore::app()->url->type != '404') { + if (App::url()->type != '404') { return; } - $logs = [self::str(dcCore::app()->blog?->url) . $_SERVER['QUERY_STRING']]; + $logs = [self::str(App::blog()->url()) . $_SERVER['QUERY_STRING']]; ActivityReport::instance()->addLog('blog', 'p404', $logs); } public static function postCreate(Cursor $cur, int $post_id): void { - $post_url = dcCore::app()->blog?->getPostURL('', self::str($cur->getField('post_dt')), self::str($cur->getField('post_title')), $post_id); + $post_url = 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()->blog?->url) . dcCore::app()->url->getBase(self::str($cur->getField('post_type'))) . '/' . $post_url, + self::str(App::auth()->getInfo('user_cn')), + self::str(App::blog()->url()) . App::url()->getBase(self::str($cur->getField('post_type'))) . '/' . $post_url, ]; ActivityReport::instance()->addLog('post', 'create', $logs); } @@ -301,24 +298,24 @@ class ActivityBehaviors 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); + $post_url = 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()->blog?->url) . dcCore::app()->url->getBase(self::str($cur->getField('post_type'))) . '/' . $post_url, + self::str(App::auth()->getInfo('user_cn')), + self::str(App::blog()->url()) . App::url()->getBase(self::str($cur->getField('post_type'))) . '/' . $post_url, ]; ActivityReport::instance()->addLog('post', 'update', $logs); } public static function postDelete(int $post_id): void { - $posts = dcCore::app()->blog?->getPosts(['post_id' => $post_id, 'limit' => 1]); + $posts = App::blog()->getPosts(['post_id' => $post_id, 'limit' => 1]); if (!$posts || $posts->isEmpty()) { return; } $logs = [ self::str($posts->f('post_title')), - self::str(dcCore::app()->auth->getInfo('user_cn')), + self::str(App::auth()->getInfo('user_cn')), ]; ActivityReport::instance()->addLog('post', 'delete', $logs); } @@ -335,12 +332,12 @@ class ActivityBehaviors ActivityReport::instance()->addLog('post', 'protection', $logs); } - public static function commentCreate(dcBlog $blog, Cursor $cur): void + public static function commentCreate(BlogInterace $blog, Cursor $cur): void { if ($cur->getField('comment_trackback')) { return; } - $posts = dcCore::app()->blog?->getPosts( + $posts = App::blog()->getPosts( ['post_id' => $cur->getField('post_id'), 'limit' => 1, 'post_type' => ''] ); if (!$posts || $posts->isEmpty()) { @@ -350,15 +347,15 @@ class ActivityBehaviors $logs = [ self::str($cur->getField('comment_author')), self::str($posts->f('post_title')), - self::str(dcCore::app()->blog?->url) . dcCore::app()->url->getBase(self::str($posts->f('post_type'))) . + self::str(App::blog()->url()) . App::url()->getBase(self::str($posts->f('post_type'))) . '/' . self::str($posts->f('post_url')) . '#c' . self::str($cur->getField('comment_id')), ]; ActivityReport::instance()->addLog('comment', 'create', $logs); } - public static function commentUpdate(dcBlog $blog, Cursor $cur, MetaRecord $old): void + public static function commentUpdate(BlogInterace $blog, Cursor $cur, MetaRecord $old): void { - $posts = dcCore::app()->blog?->getPosts( + $posts = App::blog()->getPosts( ['post_id' => $old->f('post_id'), 'limit' => 1] ); if (!$posts || $posts->isEmpty()) { @@ -366,21 +363,21 @@ class ActivityBehaviors } $logs = [ - self::str(dcCore::app()->auth->getInfo('user_cn')), + self::str(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(App::blog()->url()) . App::url()->getBase(self::str($posts->f('post_type'))) . '/' . self::str($posts->f('post_url')) . '#c' . self::str($old->f('comment_id')), ]; ActivityReport::instance()->addLog('comment', 'update', $logs); } - public static function trackbackCreate(dcBlog $blog, Cursor $cur): void + public static function trackbackCreate(BlogInterace $blog, Cursor $cur): void { if (!$cur->getField('comment_trackback')) { return; } - $posts = dcCore::app()->blog?->getPosts( + $posts = App::blog()->getPosts( ['post_id' => $cur->getField('post_id'), 'no_content' => true, 'limit' => 1] ); if (!$posts || $posts->isEmpty()) { @@ -391,7 +388,7 @@ class ActivityBehaviors self::str($cur->getField('comment_author')), self::str($cur->getField('comment_site')), self::str($posts->f('post_title')), - self::str(dcCore::app()->blog?->url) . dcCore::app()->url->getBase(self::str($posts->f('post_type'))) . + self::str(App::blog()->url()) . App::url()->getBase(self::str($posts->f('post_type'))) . '/' . self::str($posts->f('post_url')), ]; ActivityReport::instance()->addLog('comment', 'trackback', $logs); @@ -401,8 +398,8 @@ class ActivityBehaviors { $logs = [ self::str($cur->getField('cat_title')), - 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')), + self::str(App::auth()->getInfo('user_cn')), + self::str(App::blog()->url()) . App::url()->getBase('category') . '/' . self::str($cur->getField('cat_url')), ]; ActivityReport::instance()->addLog('category', 'create', $logs); } @@ -411,8 +408,8 @@ class ActivityBehaviors { $logs = [ self::str($cur->getField('cat_title')), - 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')), + self::str(App::auth()->getInfo('user_cn')), + self::str(App::blog()->url()) . App::url()->getBase('category') . '/' . self::str($cur->getField('cat_url')), ]; ActivityReport::instance()->addLog('category', 'update', $logs); } @@ -427,7 +424,7 @@ class ActivityBehaviors ); $logs = [ self::str($user_cn), - self::str(dcCore::app()->auth->getInfo('user_cn')), + self::str(App::auth()->getInfo('user_cn')), ]; ActivityReport::instance()->addLog('user', 'create', $logs); } @@ -442,7 +439,7 @@ class ActivityBehaviors ); $logs = [ self::str($user_cn), - self::str(dcCore::app()->auth->getInfo('user_cn')), + self::str(App::auth()->getInfo('user_cn')), ]; ActivityReport::instance()->addLog('user', 'update', $logs); } @@ -454,11 +451,11 @@ class ActivityBehaviors public static function userOption(string $user_id): void { - $user = dcCore::app()->getUser($user_id); + $user = App::users()->getUser($user_id); if ($user->isEmpty()) { return; } - $user_cn = dcUtils::getUserCN( + $user_cn = App::users()->getUserCN( self::str($user->f('user_id')), self::str($user->f('user_name')), self::str($user->f('user_firstname')), @@ -472,8 +469,8 @@ class ActivityBehaviors public static function userDelete(string $user_id): void { - $users = dcCore::app()->getUser($user_id); - $user_cn = dcUtils::getUserCN( + $users = App::users()->getUser($user_id); + $user_cn = App::users()->getUserCN( self::str($users->f('user_id')), self::str($users->f('user_name')), self::str($users->f('user_firstname')), @@ -481,7 +478,7 @@ class ActivityBehaviors ); $logs = [ self::str($user_cn), - self::str(dcCore::app()->auth->getInfo('user_cn')), + self::str(App::auth()->getInfo('user_cn')), ]; ActivityReport::instance()->addLog('user', 'delete', $logs); } diff --git a/src/ActivityReport.php b/src/ActivityReport.php index 2fc79fc..d4fa778 100644 --- a/src/ActivityReport.php +++ b/src/ActivityReport.php @@ -1,23 +1,11 @@ from($sql->as(dcCore::app()->prefix . My::ACTIVITY_TABLE_NAME, 'E'), false, true) + ->from($sql->as(App::con()->prefix() . My::ACTIVITY_TABLE_NAME, 'E'), false, true) ->join( (new JoinStatement()) ->left() - ->from($sql->as(dcCore::app()->prefix . dcBlog::BLOG_TABLE_NAME, 'B')) + ->from($sql->as(App::con()->prefix() . App::blog()::BLOG_TABLE_NAME, 'B')) ->on('E.blog_id = B.blog_id') ->statement() ); @@ -169,7 +161,7 @@ class ActivityReport } $sql->and('E.blog_id' . $sql->in($params['blog_id'])); } else { - $sql->and('E.blog_id = ' . $sql->quote((string) dcCore::app()->blog?->id)); + $sql->and('E.blog_id = ' . $sql->quote(App::blog()->id())); } if (isset($params['activity_status']) && is_numeric($params['activity_status'])) { @@ -240,12 +232,12 @@ class ActivityReport public function addLog(string $group, string $action, array $logs): void { try { - $cur = dcCore::app()->con->openCursor(dcCore::app()->prefix . My::ACTIVITY_TABLE_NAME); - dcCore::app()->con->writeLock(dcCore::app()->prefix . My::ACTIVITY_TABLE_NAME); + $cur = App::con()->openCursor(App::con()->prefix() . My::ACTIVITY_TABLE_NAME); + App::con()->writeLock(App::con()->prefix() . My::ACTIVITY_TABLE_NAME); $cur->setField('activity_id', $this->getNextId()); $cur->setField('activity_type', $this->type); - $cur->setField('blog_id', (string) dcCore::app()->blog?->id); + $cur->setField('blog_id', App::blog()->id()); $cur->setField('activity_group', $group); $cur->setField('activity_action', $action); $cur->setField('activity_logs', json_encode($logs)); @@ -253,13 +245,13 @@ class ActivityReport $cur->setField('activity_status', self::STATUS_PENDING); $cur->insert(); - dcCore::app()->con->unlock(); + App::con()->unlock(); # --BEHAVIOR-- coreAfterCategoryCreate -- ActivityReport, cursor - dcCore::app()->callBehavior('activityReportAfteAddLog', $this, $cur); + App::behavior()->callBehavior('activityReportAfteAddLog', $this, $cur); } catch (Exception $e) { - dcCore::app()->con->unlock(); - dcCore::app()->error->add($e->getMessage()); + App::con()->unlock(); + App::error()->add($e->getMessage()); } // Test if email report is needed @@ -301,7 +293,7 @@ class ActivityReport $from = time(); $to = 0; $res = $blog_name = $blog_url = $group = ''; - $tz = dcCore::app()->blog?->settings->get('system')->get('blog_timezone'); + $tz = App::blog()->settings()->get('system')->get('blog_timezone'); $tz = is_string($tz) ? $tz : 'UTC'; $dt = empty($this->settings->dateformat) ? '%Y-%m-%d %H:%M:%S' : $this->settings->dateformat; $format = $this->formats->get($this->formats->has($this->settings->mailformat) ? $this->settings->mailformat : 'plain'); @@ -394,7 +386,7 @@ class ActivityReport { // Get blogs and logs count $sql = new SelectStatement(); - $sql->from(dcCore::app()->prefix . My::ACTIVITY_TABLE_NAME) + $sql->from(App::con()->prefix() . My::ACTIVITY_TABLE_NAME) ->column('blog_id') ->where('activity_type =' . $sql->quote($this->type)) ->group('blog_id'); @@ -410,16 +402,16 @@ class ActivityReport $obs = Date::str('%Y-%m-%d %H:%M:%S', $ts - (int) $this->settings->obsolete); if (is_string($rs->f('blog_id'))) { $sql = new DeleteStatement(); - $sql->from(dcCore::app()->prefix . My::ACTIVITY_TABLE_NAME) + $sql->from(App::con()->prefix() . My::ACTIVITY_TABLE_NAME) ->where('activity_type =' . $sql->quote($this->type)) ->and('activity_dt < TIMESTAMP ' . $sql->quote($obs)) ->and('blog_id = ' . $sql->quote($rs->f('blog_id'))) ->delete(); - if (dcCore::app()->con->changes()) { + if (App::con()->changes()) { try { - $cur = dcCore::app()->con->openCursor(dcCore::app()->prefix . My::ACTIVITY_TABLE_NAME); - dcCore::app()->con->writeLock(dcCore::app()->prefix . My::ACTIVITY_TABLE_NAME); + $cur = App::con()->openCursor(App::con()->prefix() . My::ACTIVITY_TABLE_NAME); + App::con()->writeLock(App::con()->prefix() . My::ACTIVITY_TABLE_NAME); $cur->setField('activity_id', $this->getNextId()); $cur->setField('activity_type', $this->type); @@ -431,10 +423,10 @@ class ActivityReport $cur->setField('activity_status', self::STATUS_PENDING); $cur->insert(); - dcCore::app()->con->unlock(); + App::con()->unlock(); } catch (Exception $e) { - dcCore::app()->con->unlock(); - dcCore::app()->error->add($e->getMessage()); + App::con()->unlock(); + App::error()->add($e->getMessage()); } } } @@ -456,7 +448,7 @@ class ActivityReport $sql->and('activity_status = ' . self::STATUS_REPORTED); } - return $sql->from(dcCore::app()->prefix . My::ACTIVITY_TABLE_NAME) + return $sql->from(App::con()->prefix() . My::ACTIVITY_TABLE_NAME) ->where('activity_type = ' . $sql->quote($this->type)) ->delete(); } @@ -470,10 +462,10 @@ class ActivityReport private function updateStatus(int $from_date_ts, int $to_date_ts): void { $sql = new UpdateStatement(); - $sql->from(dcCore::app()->prefix . My::ACTIVITY_TABLE_NAME) + $sql->from(App::con()->prefix() . My::ACTIVITY_TABLE_NAME) ->column('activity_status') ->set((string) self::STATUS_REPORTED) - ->where('blog_id = ' . $sql->quote((string) dcCore::app()->blog?->id)) + ->where('blog_id = ' . $sql->quote(App::blog()->id())) ->and('activity_type =' . $sql->quote($this->type)) ->and('activity_dt >= TIMESTAMP ' . $sql->quote(date('Y-m-d H:i:s', $from_date_ts))) ->and('activity_dt < TIMESTAMP ' . $sql->quote(date('Y-m-d H:i:s', $to_date_ts))) @@ -488,7 +480,7 @@ class ActivityReport public function getNextId(): int { $sql = new SelectStatement(); - $sql->from(dcCore::app()->prefix . My::ACTIVITY_TABLE_NAME) + $sql->from(App::con()->prefix() . My::ACTIVITY_TABLE_NAME) ->column($sql->max('activity_id')); return (int) $sql->select()?->f(0) + 1; @@ -503,14 +495,14 @@ class ActivityReport { try { # Cache writable ? - if (!is_writable(DC_TPL_CACHE)) { + if (!is_writable(App::config()->cacheRoot())) { throw new Exception("Can't write in cache fodler"); } # Set file path - $f_md5 = md5((string) dcCore::app()->blog?->id); + $f_md5 = md5(App::blog()->id()); $file = sprintf( '%s/%s/%s/%s/%s.txt', - DC_TPL_CACHE, + App::config()->cacheRoot(), My::id(), substr($f_md5, 0, 2), substr($f_md5, 2, 2), @@ -591,7 +583,7 @@ class ActivityReport $params = new ArrayObject([ 'from_date_ts' => $lastreport, 'to_date_ts' => $now, - 'blog_id' => dcCore::app()->blog?->id, + 'blog_id' => App::blog()->id(), 'activity_status' => self::STATUS_PENDING, 'requests' => true, 'order' => 'activity_group ASC, activity_action ASC, activity_dt ASC ', @@ -612,7 +604,7 @@ class ActivityReport $this->updateStatus($lastreport, $now); $this->settings->set('lastreport', $now); - dcCore::app()->callBehavior('messageActivityReport', 'Activity report has been successfully send by mail.'); + App::behavior()->callBehavior('messageActivityReport', 'Activity report has been successfully send by mail.'); } } @@ -658,20 +650,20 @@ class ActivityReport # Sending mails try { $subject = mb_encode_mimeheader( - sprintf(__('Blog "%s" activity report'), dcCore::app()->blog?->name), + sprintf(__('Blog "%s" activity report'), App::blog()->name()), 'UTF-8', 'B' ); $headers = []; - $headers[] = 'From: ' . (defined('DC_ADMIN_MAILFROM') && str_contains(DC_ADMIN_MAILFROM, '@') ? DC_ADMIN_MAILFROM : 'dotclear@local'); + $headers[] = 'From: ' . (defined('DC_ADMIN_MAILFROM') && str_contains(App::config()->adminMailFrom(), '@') ? App::config()->adminMailFrom() : '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-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'); - //$headers[] = 'X-Blog-Url: ' . mb_encode_mimeheader(dcCore::app()->blog->url), 'UTF-8', 'B'); + //$headers[] = 'X-Blog-Id: ' . mb_encode_mimeheader(App::blog()->id()), 'UTF-8', 'B'); + //$headers[] = 'X-Blog-Name: ' . mb_encode_mimeheader(App::blog()->name()), 'UTF-8', 'B'); + //$headers[] = 'X-Blog-Url: ' . mb_encode_mimeheader(App::>blog()->url()), 'UTF-8', 'B'); $done = true; foreach ($recipients as $email) { @@ -693,9 +685,9 @@ 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') : ''; - $code = pack('a32', $id) . pack('H*', Crypt::hmac(DC_MASTER_KEY, $pw)); + $id = is_string(App::auth()->userID()) ? App::auth()->userID() : ''; + $pw = is_string(App::auth()->getInfo('user_pwd')) ? App::auth()->getInfo('user_pwd') : ''; + $code = pack('a32', $id) . pack('H*', Crypt::hmac(App::config()->masterKey(), $pw)); return bin2hex($code); } @@ -721,7 +713,7 @@ class ActivityReport $pwd = $pwd['hex']; $sql = new SelectStatement(); - $sql->from(dcCore::app()->prefix . dcAuth::USER_TABLE_NAME) + $sql->from(App::con()->prefix() . App::auth()::USER_TABLE_NAME) ->columns(['user_id', 'user_pwd']) ->where('user_id =' . $sql->quote($user_id)); @@ -731,7 +723,7 @@ class ActivityReport return false; } - if (Crypt::hmac(DC_MASTER_KEY, $rs->f('user_pwd')) != $pwd) { + if (Crypt::hmac(App::config()->masterKey(), $rs->f('user_pwd')) != $pwd) { return false; } diff --git a/src/ActivityRow.php b/src/ActivityRow.php index d4cb196..fe27dae 100644 --- a/src/ActivityRow.php +++ b/src/ActivityRow.php @@ -1,15 +1,5 @@ addBehaviors([ + App::behavior()->addBehaviors([ // dashboard favorites icon 'adminDashboardFavoritesV2' => function (Favorites $favs): void { $favs->register(My::id(), [ @@ -54,14 +47,14 @@ class Backend extends Process 'url' => My::manageUrl(), 'small-icon' => My::icons(), 'large-icon' => My::icons(), - 'permissions' => dcCore::app()->auth->makePermissions([ - dcAuth::PERMISSION_ADMIN, + 'permissions' => App::auth()->makePermissions([ + App::auth()::PERMISSION_ADMIN, ]), ]); }, // dashboard content display 'adminDashboardContentsV2' => function (ArrayObject $items): void { - $db = dcCore::app()->auth->user_prefs?->get(My::id())->get('dashboard_item'); + $db = App::auth()->prefs()->get(My::id())->get('dashboard_item'); $limit = abs(is_numeric($db) ? (int) $db : 0); if (!$limit) { return ; @@ -87,9 +80,9 @@ class Backend extends Process $lines[] = '
' . '' . __($group->get($row->action)->title) . '' . '
' . Date::str( - dcCore::app()->blog?->settings->get('system')->get('date_format') . ', ' . dcCore::app()->blog?->settings->get('system')->get('time_format'), + App::blog()->settings()->get('system')->get('date_format') . ', ' . 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(App::auth()->getInfo('user_tz')) ? App::auth()->getInfo('user_tz') : 'UTC' ) . '
' . '

' . '' . ActivityReport::parseMessage(__($group->get($row->action)->message), $row->logs) . '

'; @@ -105,10 +98,10 @@ class Backend extends Process '

' . __('View all logs') . ' - ' . __('Configure plugin') . '

' . '', @@ -116,7 +109,7 @@ class Backend extends Process }, // dashboard content user preference form 'adminDashboardOptionsFormV2' => function (): void { - $db = dcCore::app()->auth->user_prefs?->get(My::id())->get('dashboard_item'); + $db = App::auth()->prefs()->get(My::id())->get('dashboard_item'); echo (new Div())->class('fieldset')->items([ (new Text('h4', My::name())), @@ -137,7 +130,7 @@ class Backend extends Process // 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( + App::auth()->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 8530861..77511be 100644 --- a/src/Combo.php +++ b/src/Combo.php @@ -1,21 +1,15 @@ admin->url->redirect('admin.plugins', [ + App::bakend()->url()->redirect('admin.plugins', [ 'module' => My::id(), 'conf' => 1, ]); } catch (Exception $e) { - dcCore::app()->error->add($e->getMessage()); + App::error()->add($e->getMessage()); } return true; @@ -103,19 +97,19 @@ class Config extends Process } $s = ActivityReport::instance()->settings; - $tz = is_string(dcCore::app()->auth->getInfo('user_tz')) ? dcCore::app()->auth->getInfo('user_tz') : 'UTC'; + $tz = is_string(App::auth()->getInfo('user_tz')) ? App::auth()->getInfo('user_tz') : 'UTC'; if (!$s->lastreport) { $last_report = __('never'); $next_report = __('on new activity'); } else { $last_report = Date::str( - dcCore::app()->blog?->settings->get('system')->get('date_format') . ', ' . dcCore::app()->blog?->settings->get('system')->get('time_format'), + App::blog()->settings()->get('system')->get('date_format') . ', ' . App::blog()->settings()->get('system')->get('time_format'), $s->lastreport, $tz ); $next_report = Date::str( - dcCore::app()->blog?->settings->get('system')->get('date_format') . ', ' . dcCore::app()->blog?->settings->get('system')->get('time_format'), + App::blog()->settings()->get('system')->get('date_format') . ', ' . App::blog()->settings()->get('system')->get('time_format'), $s->interval + $s->lastreport, $tz ); @@ -166,11 +160,11 @@ class Config extends Process 'ul', '
  • ' . __('RSS feed') . ' ' . '' . + App::blog()->url() . App::url()->getBase(My::id()) . '/rss2/' . ActivityReport::instance()->getUserCode() . '">' . __('Rss2 activities feed') . '
  • ' . '
  • ' . __('Atom feed') . ' ' . '' . + App::blog()->url() . App::url()->getBase(My::id()) . '/atom/' . ActivityReport::instance()->getUserCode() . '">' . __('Atom activities feed') . '
  • ' )), ]), diff --git a/src/Context.php b/src/Context.php index 500e2b5..5aec33e 100644 --- a/src/Context.php +++ b/src/Context.php @@ -1,15 +1,5 @@ tpl->setPath(dcCore::app()->tpl->getPath(), implode(DIRECTORY_SEPARATOR, [My::path(), 'default-templates', 'tpl'])); + App::frontend()->template()->setPath(App::frontend()->template()->getPath(), implode(DIRECTORY_SEPARATOR, [My::path(), 'default-templates', 'tpl'])); - dcCore::app()->tpl->addBlock('activityReports', [Template::class, 'activityReports']); - dcCore::app()->tpl->addValue('activityReportFeedID', [Template::class, 'activityReportFeedID']); - dcCore::app()->tpl->addValue('activityReportTitle', [Template::class, 'activityReportTitle']); - dcCore::app()->tpl->addValue('activityReportDate', [Template::class, 'activityReportDate']); - dcCore::app()->tpl->addValue('activityReportContent', [Template::class, 'activityReportContent']); + App::frontend()->template()->addBlock('activityReports', Template::activityReports(...)); + App::frontend()->template()->addValue('activityReportFeedID', Template::activityReportFeedID(...)); + App::frontend()->template()->addValue('activityReportTitle', Template::activityReportTitle(...)); + App::frontend()->template()->addValue('activityReportDate', Template::activityReportDate(...)); + App::frontend()->template()l->addValue('activityReportContent', Template::activityReportContent(...)); return true; } diff --git a/src/Group.php b/src/Group.php index 61f3617..1c8d861 100644 --- a/src/Group.php +++ b/src/Group.php @@ -1,21 +1,15 @@ con, dcCore::app()->prefix); + $s = new Structure(App::con(), App::con()->prefix()); $s->__get(My::ACTIVITY_TABLE_NAME) ->field('activity_id', 'bigint', 0, false) ->field('activity_type', 'varchar', 32, false, "'" . My::id() . "'") @@ -59,11 +53,11 @@ class Install extends Process ->index('idx_activity_action', 'btree', 'activity_group', 'activity_action') ->index('idx_activity_status', 'btree', 'activity_status'); - (new Structure(dcCore::app()->con, dcCore::app()->prefix))->synchronize($s); + (new Structure(App::con(), App::con()->prefix()))->synchronize($s); return true; } catch (Exception $e) { - dcCore::app()->error->add($e->getMessage()); + App::error()->add($e->getMessage()); return false; } @@ -75,17 +69,17 @@ class Install extends Process private static function beforeGrowUp(): void { // sorry not sorry we restart from scratch - if (is_string(dcCore::app()->getVersion('activityReport')) - && version_compare(dcCore::app()->getVersion('activityReport'), '3.0', '<') + if (is_string(App::version()->getVersion('activityReport')) + && version_compare(App::version()->getVersion('activityReport'), '3.0', '<') ) { - $struct = new Structure(dcCore::app()->con, dcCore::app()->prefix); + $struct = new Structure(App::con(), App::con()->prefix()); if ($struct->tableExists('activity')) { - (new TruncateStatement())->from(dcCore::app()->prefix . 'activity')->truncate(); + (new TruncateStatement())->from(App::con()->prefix() . 'activity')->truncate(); } if ($struct->tableExists('activity_settings')) { - (new TruncateStatement())->from(dcCore::app()->prefix . 'activity_settings')->truncate(); - (new DropStatement())->from(dcCore::app()->prefix . 'activity_settings')->drop(); + (new TruncateStatement())->from(App::con()->prefix() . 'activity_settings')->truncate(); + (new DropStatement())->from(App::con()->prefix() . 'activity_settings')->drop(); } } } diff --git a/src/Manage.php b/src/Manage.php index cb1a599..725b782 100644 --- a/src/Manage.php +++ b/src/Manage.php @@ -1,21 +1,11 @@ error->add($e->getMessage()); + App::error()->add($e->getMessage()); } } @@ -77,7 +71,7 @@ class Manage extends Process $list = new ManageList($logs, $counter->f(0)); } } catch (Exception $e) { - dcCore::app()->error->add($e->getMessage()); + App::error()->add($e->getMessage()); } Page::openModule( @@ -87,7 +81,7 @@ class Manage extends Process My::jsLoad('backend') . # --BEHAVIOR-- activityReportListHeader -- - dcCore::app()->callBehavior('activityReportListHeader') + App::behavior()->callBehavior('activityReportListHeader') ); echo @@ -104,7 +98,7 @@ class Manage extends Process if (!is_null($logs) && !$logs->isEmpty()) { echo - (new Form('form-logs'))->method('post')->action(dcCore::app()->admin->getPageURL())->fields([ + (new Form('form-logs'))->method('post')->action(App::backend()->getPageURL())->fields([ (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')), diff --git a/src/ManageList.php b/src/ManageList.php index d285fdd..9703728 100644 --- a/src/ManageList.php +++ b/src/ManageList.php @@ -1,21 +1,11 @@ get($row->action); $message = ActivityReport::parseMessage(__($action->message), $row->logs); $date = Date::str( - dcCore::app()->blog?->settings->get('system')->get('date_format') . ', ' . dcCore::app()->blog?->settings->get('system')->get('time_format'), + App::blog()->settings()->get('system')->get('date_format') . ', ' . 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(App::auth()->getInfo('user_tz')) ? 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 64c95df..7b02f15 100644 --- a/src/My.php +++ b/src/My.php @@ -1,50 +1,52 @@ + defined('ACTIVITY_REPORT') && My::isInstalled(), + My::BACKEND => + App::task()->checkContext('BACKEND') && defined('ACTIVITY_REPORT') && My::isInstalled(), + My::CONFIG, My::MANAGE => + App::task()->checkContext('BACKEND') && defined('ACTIVITY_REPORT') - && dcCore::app()->auth->check(dcCore::app()->auth->makePermissions([ - dcCore::app()->auth::PERMISSION_ADMIN, - ]), dcCore::app()->blog?->id); - default: - return null; - } + && App::auth()->check(App::auth()->makePermissions([ + App::auth()::PERMISSION_ADMIN, + ]), App::blog()->id()), + + default => + null, + }; } /** @@ -54,6 +56,6 @@ class My extends MyPlugin */ public static function isInstalled(): bool { - return dcCore::app()->getVersion(self::id()) == (string) dcCore::app()->plugins->getDefine(self::id())->get('version'); + return App::version()->getVersion(self::id()) == (string) App::plugins()->getDefine(self::id())->get('version'); } } diff --git a/src/Prepend.php b/src/Prepend.php index c8b122b..1c88c0f 100644 --- a/src/Prepend.php +++ b/src/Prepend.php @@ -1,25 +1,19 @@ url->register( + App::url()->register( My::id(), 'reports', '^reports/((atom|rss2)/(.+))$', - [UrlHandler::class, 'feed'] + UrlHandler::feed(...) ); // declare report open diff --git a/src/Settings.php b/src/Settings.php index e93208c..05409a0 100644 --- a/src/Settings.php +++ b/src/Settings.php @@ -1,21 +1,15 @@ public->getPageNumber(); if ($_page_number < 1) { $_page_number = 1; }' . "\n\$params = new ArrayObject();\n"; + $p = '$_page_number = App::frontend()->getPageNumber(); if ($_page_number < 1) { $_page_number = 1; }' . "\n\$params = new ArrayObject();\n"; if ($lastn > 0) { $p .= "\$params['limit'] = " . $lastn . ";\n"; } else { - $p .= "\$params['limit'] = dcCore::app()->ctx->nb_entry_per_page;\n"; + $p .= "\$params['limit'] = App::frontend()->context()->nb_entry_per_page;\n"; } if (!isset($attr['ignore_pagination']) || $attr['ignore_pagination'] == '0') { @@ -60,10 +54,10 @@ class Template return "ctx->activityreport_params = $params; ' . "\n" . - 'dcCore::app()->ctx->activityreports = ' . ActivityReport::class . '::instance()->getLogs($params); unset($params); ' . "\n" . - 'while (dcCore::app()->ctx->activityreports->fetch()) : ?>' . $content . 'ctx->pop("activityreports"); dcCore::app()->ctx->pop("activityreport_params"); ' . "\n" . + 'App::frontend()->context()->activityreport_params = $params; ' . "\n" . + 'App::frontend()->context()->activityreports = ' . ActivityReport::class . '::instance()->getLogs($params); unset($params); ' . "\n" . + 'while (App::frontend()->context()->activityreports->fetch()) : ?>' . $content . 'context()->pop("activityreports"); App::frontend()->context()x->pop("activityreport_params"); ' . "\n" . '?>'; } @@ -81,8 +75,8 @@ class Template public static function activityReportFeedID(ArrayObject $attr): string { return - 'urn:md5:ctx->activityreports->blog_id.' . - 'dcCore::app()->ctx->activityreports->activity_id.dcCore::app()->ctx->activityreports->activity_dt); ' . + 'urn:md5:context()->activityreports->blog_id.' . + 'App::frontend()->context()->activityreports->activity_id.App::frontend()->context()->activityreports->activity_dt); ' . '?>'; } @@ -99,7 +93,7 @@ class Template */ public static function activityReportTitle(ArrayObject $attr): string { - $f = dcCore::app()->tpl->getFilters($attr); + $f = App::frontend()->template()->getFilters($attr); return ''; } @@ -117,7 +111,7 @@ class Template */ public static function activityReportContent(ArrayObject $attr): string { - $f = dcCore::app()->tpl->getFilters($attr); + $f = App::frontend()->context()->getFilters($attr); return ''; } @@ -146,16 +140,16 @@ class Template $iso8601 = !empty($attr['iso8601']); $rfc822 = !empty($attr['rfc822']); - $f = dcCore::app()->tpl->getFilters($attr); + $f = App::frontend()->template()->getFilters($attr); if ($rfc822) { - return 'ctx->activityreports->activity_dt),dcCore::app()->blog->settings->system->blog_timezone)') . '; ?>'; + return 'context()->activityreports->activity_dt),App::blog()->settings()->system->blog_timezone)') . '; ?>'; } elseif ($iso8601) { - return 'ctx->activityreports->activity_dt),dcCore::app()->blog->settings->system->blog_timezone)') . '; ?>'; + return 'context()->activityreports->activity_dt),App::blog()->settings()->system->blog_timezone)') . '; ?>'; } elseif (!empty($format)) { - return 'ctx->activityreports->activity_dt)") . '; ?>'; + return 'context()->activityreports->activity_dt)") . '; ?>'; } - return 'blog->settings->system->date_format,dcCore::app()->ctx->activityreports->activity_dt)') . '; ?>'; + return 'settings()->system->date_format,App::frontend()->context()->activityreports->activity_dt)') . '; ?>'; } } diff --git a/src/Uninstall.php b/src/Uninstall.php index c933e12..e8ece2d 100644 --- a/src/Uninstall.php +++ b/src/Uninstall.php @@ -1,27 +1,18 @@ plugins->moduleExists('Uninstaller')) { + if (!self::status()) { return false; } diff --git a/src/UrlHandler.php b/src/UrlHandler.php index 962479f..0908db9 100644 --- a/src/UrlHandler.php +++ b/src/UrlHandler.php @@ -1,27 +1,20 @@ ctx - || !preg_match('/^(atom|rss2)\/(.+)$/', (string) $args, $m) + if (!preg_match('/^(atom|rss2)\/(.+)$/', (string) $args, $m) || !defined('ACTIVITY_REPORT') || !ActivityReport::instance()->settings->feed_active ) { @@ -50,15 +42,15 @@ class UrlHandler extends dcUrlHandlers } // feed limits - $nb = dcCore::app()->blog?->settings->get('system')->get('nb_post_per_feed'); - //$it = dcCore::app()->blog?->settings->get('system')->get('short_feed_items'); - $rb = dcCore::app()->blog?->settings->get('system')->get('robots_policy'); + $nb = App::blog()->settings()->get('system')->get('nb_post_per_feed'); + //$it = App::blog()->settings()->get('system')->get('short_feed_items'); + $rb = App::blog()->settings()->get('system')->get('robots_policy'); - dcCore::app()->ctx->__set('nb_entry_per_page', is_numeric($nb) ? (int) $nb : 20); - // dcCore::app()->ctx->__set('short_feed_items', is_numerci($it) ? (int) $it : 1); + App::frontend()->context()->__set('nb_entry_per_page', is_numeric($nb) ? (int) $nb : 20); + // App::frontend->context()->__set('short_feed_items', is_numerci($it) ? (int) $it : 1); // serve activity feed template - header('X-Robots-Tag: ' . context::robotsPolicy(is_string($rb) ? $rb : '', '')); + header('X-Robots-Tag: ' . App::frontend()->context()::robotsPolicy(is_string($rb) ? $rb : '', '')); self::serveDocument('activityreport-' . $m[1] . '.xml', $mime); } }