From 12be907cbc3b2b5f904f5e35bbf15f9b2b01e3a6 Mon Sep 17 00:00:00 2001 From: xillibit Date: Wed, 21 Nov 2018 22:21:49 +0100 Subject: [PATCH] Add button to subscribe users to categories selected --- .../com_kunena/controllers/users.php | 53 +++++++++++++++++++ .../en-GB/en-GB.com_kunena.controllers.ini | 1 + .../language/en-GB/en-GB.com_kunena.views.ini | 1 + .../com_kunena/template/j3/users/default.php | 1 + .../j3/users/default_subscribecatsusers.php | 40 ++++++++++++++ .../com_kunena/template/j4/users/default.php | 1 + .../j4/users/default_subscribecatsusers.php | 40 ++++++++++++++ .../com_kunena/views/users/view.html.php | 16 ++++++ 8 files changed, 153 insertions(+) create mode 100644 src/administrator/components/com_kunena/template/j3/users/default_subscribecatsusers.php create mode 100644 src/administrator/components/com_kunena/template/j4/users/default_subscribecatsusers.php diff --git a/src/administrator/components/com_kunena/controllers/users.php b/src/administrator/components/com_kunena/controllers/users.php index 57e29f9e7e..f2cae40f5a 100644 --- a/src/administrator/components/com_kunena/controllers/users.php +++ b/src/administrator/components/com_kunena/controllers/users.php @@ -1048,6 +1048,59 @@ public function removetopicsubscriptions() $this->setRedirect(KunenaRoute::_($this->baseurl, false)); } + /** + * Subscribe users to categories selected + * + * @since 5.1.8 + * + * @return void + * @throws Exception + * @since Kunena + * @throws null + */ + public function subscribeuserstocategories() + { + if (!Session::checkToken('post')) + { + $this->app->enqueueMessage(Text::_('COM_KUNENA_ERROR_TOKEN'), 'error'); + $this->setRedirect(KunenaRoute::_($this->baseurl, false)); + + return; + } + + $userids = $this->app->input->get('cid', array(), 'post', 'array'); + $userids = ArrayHelper::toInteger($userids); + $catids = $this->app->input->get('catid', array(), 'post', 'array'); + $catids = ArrayHelper::toInteger($catids); + + if (empty($userids)) + { + $this->app->enqueueMessage(Text::_('COM_KUNENA_USERS_BATCH_NO_USERS_SELECTED'), 'error'); + $this->setRedirect(KunenaRoute::_($this->baseurl, false)); + + return; + } + + if (empty($catids)) + { + $this->app->enqueueMessage(Text::_('COM_KUNENA_USERS_BATCH_NO_CATEGORIES_SELECTED'), 'error'); + $this->setRedirect(KunenaRoute::_($this->baseurl, false)); + + return; + } + $categories = KunenaForumCategoryHelper::getCategories($catids); + foreach ($userids as $userid) + { + foreach ($categories as $category) + { + $category->subscribe(true, $userid); + } + } + + $this->app->enqueueMessage(Text::_('COM_KUNENA_USERS_ADD_CATEGORIES_SUBSCRIPTIONS_DONE')); + $this->setRedirect(KunenaRoute::_($this->baseurl, false)); + } + /** * Clean social items * diff --git a/src/administrator/components/com_kunena/language/en-GB/en-GB.com_kunena.controllers.ini b/src/administrator/components/com_kunena/language/en-GB/en-GB.com_kunena.controllers.ini index 1b2038c30a..c2ea42713f 100644 --- a/src/administrator/components/com_kunena/language/en-GB/en-GB.com_kunena.controllers.ini +++ b/src/administrator/components/com_kunena/language/en-GB/en-GB.com_kunena.controllers.ini @@ -167,6 +167,7 @@ COM_KUNENA_USERS_SET_MODERATORS_DONE = "The users have been added as moderators. COM_KUNENA_USER_BANNED_DONE = "The user has been banned successfully" COM_KUNENA_USER_DELETE_KUNENA_USER_TABLE_FAILED = "The user %s can't be deleted from Kunena user table" COM_KUNENA_USER_DELETE_JOOMLA_USER_TABLE_FAILED = "The user %s can't be deleted from Joomla user table" +COM_KUNENA_USERS_ADD_CATEGORIES_SUBSCRIPTIONS_DONE = "The subscriptions to categories for users has been added" ; JROOT/administrator/components/com_kunena/controllers/logs.php diff --git a/src/administrator/components/com_kunena/language/en-GB/en-GB.com_kunena.views.ini b/src/administrator/components/com_kunena/language/en-GB/en-GB.com_kunena.views.ini index d7e6742324..85d1280148 100644 --- a/src/administrator/components/com_kunena/language/en-GB/en-GB.com_kunena.views.ini +++ b/src/administrator/components/com_kunena/language/en-GB/en-GB.com_kunena.views.ini @@ -1142,6 +1142,7 @@ COM_KUNENA_LOGOUT = "Logout" COM_KUNENA_MOVE_USERMESSAGES = "Move Messages" COM_KUNENA_USER_DELETE = "Delete User(s)" COM_KUNENA_VIEW_USERS_TOOLBAR_ASSIGN_MODERATORS = "Assign Moderator(s)" +COM_KUNENA_VIEW_USERS_TOOLBAR_SUBSCRIBE_USERS_CATEGORIES = "Add subscriptions to categories" ; JROOT/administrator/components/com_kunena/views/tools/tmpl/diagnostics.php diff --git a/src/administrator/components/com_kunena/template/j3/users/default.php b/src/administrator/components/com_kunena/template/j3/users/default.php index 2191f4fe09..973ec79f0f 100644 --- a/src/administrator/components/com_kunena/template/j3/users/default.php +++ b/src/administrator/components/com_kunena/template/j3/users/default.php @@ -323,6 +323,7 @@ class="element-invisible"> + loadTemplateFile('subscribecatsusers'); ?> loadTemplateFile('moderators'); ?>
diff --git a/src/administrator/components/com_kunena/template/j3/users/default_subscribecatsusers.php b/src/administrator/components/com_kunena/template/j3/users/default_subscribecatsusers.php new file mode 100644 index 0000000000..1455978671 --- /dev/null +++ b/src/administrator/components/com_kunena/template/j3/users/default_subscribecatsusers.php @@ -0,0 +1,40 @@ + + diff --git a/src/administrator/components/com_kunena/template/j4/users/default.php b/src/administrator/components/com_kunena/template/j4/users/default.php index 91f133dc3c..5a319c6e51 100644 --- a/src/administrator/components/com_kunena/template/j4/users/default.php +++ b/src/administrator/components/com_kunena/template/j4/users/default.php @@ -324,6 +324,7 @@ class="element-invisible"> + loadTemplateFile('subscribecatsusers'); ?> loadTemplateFile('moderators'); ?>
diff --git a/src/administrator/components/com_kunena/template/j4/users/default_subscribecatsusers.php b/src/administrator/components/com_kunena/template/j4/users/default_subscribecatsusers.php new file mode 100644 index 0000000000..1455978671 --- /dev/null +++ b/src/administrator/components/com_kunena/template/j4/users/default_subscribecatsusers.php @@ -0,0 +1,40 @@ + + diff --git a/src/administrator/components/com_kunena/views/users/view.html.php b/src/administrator/components/com_kunena/views/users/view.html.php index b655cd29da..10c9829e7f 100644 --- a/src/administrator/components/com_kunena/views/users/view.html.php +++ b/src/administrator/components/com_kunena/views/users/view.html.php @@ -99,6 +99,22 @@ protected function setToolbar() JToolbarHelper::spacer(); JToolbarHelper::custom('removetopicsubscriptions', 'delete.png', 'delete.png', 'COM_KUNENA_REMOVE_TOPICSUBSCRIPTIONS'); JToolbarHelper::spacer(); + + if (version_compare(JVERSION, '4.0', '>')) + { + HTMLHelper::_('bootstrap.renderModal', 'subscribecatsusersModal'); + } + else + { + HTMLHelper::_('bootstrap.modal', 'subscribecatsusersModal'); + } + + $title = Text::_('COM_KUNENA_VIEW_USERS_TOOLBAR_SUBSCRIBE_USERS_CATEGORIES'); + $dhtml = ""; + $bar->appendButton('Custom', $dhtml, 'batch'); + $help_url = 'https://docs.kunena.org/en/manual/backend/users'; JToolbarHelper::help('COM_KUNENA', false, $help_url); }