diff --git a/message_subscribe.info.yml b/message_subscribe.info.yml index cef3d29a95dd50f548ca125d0c78c432494f724a..aeee93730aefa294c31909921a00b35a4b9e25d7 100644 --- a/message_subscribe.info.yml +++ b/message_subscribe.info.yml @@ -1,6 +1,6 @@ name: 'Message Subscribe' description: 'Subscribe API for the Message and Message notify modules.' -core_version_requirement: ^9 || ^10 +core_version_requirement: ^9 || ^10 || ^11 package: Message type: module configure: message_subscribe.admin_settings diff --git a/message_subscribe_email/config/optional/views.view.subscribe_node_email.yml b/message_subscribe_email/config/optional/views.view.subscribe_node_email.yml index 345167a2e4b60b8367f64274e25aab2e4d5dcbeb..8b8814fdcd84b7d007cc036a51576821d9f96bfd 100644 --- a/message_subscribe_email/config/optional/views.view.subscribe_node_email.yml +++ b/message_subscribe_email/config/optional/views.view.subscribe_node_email.yml @@ -330,7 +330,6 @@ display: default_argument_type: fixed default_argument_options: argument: '' - default_argument_skip_url: false summary_options: base_path: '' count: true diff --git a/message_subscribe_email/config/optional/views.view.subscribe_taxonomy_term_email.yml b/message_subscribe_email/config/optional/views.view.subscribe_taxonomy_term_email.yml index 3be04e663aad42e4bbe0181445b289fa4b2ddb71..13c06e93a4b9779e93c81be572440ad4c4e2bdbf 100644 --- a/message_subscribe_email/config/optional/views.view.subscribe_taxonomy_term_email.yml +++ b/message_subscribe_email/config/optional/views.view.subscribe_taxonomy_term_email.yml @@ -303,7 +303,6 @@ display: default_argument_type: fixed default_argument_options: argument: '' - default_argument_skip_url: false summary_options: base_path: '' count: true diff --git a/message_subscribe_email/config/optional/views.view.subscribe_user_email.yml b/message_subscribe_email/config/optional/views.view.subscribe_user_email.yml index 15980397acee6fd1649cd3204e6e1a665ab7a0e7..de69924018cdb1c3d16f7c3d85bc7a899c8aeba8 100644 --- a/message_subscribe_email/config/optional/views.view.subscribe_user_email.yml +++ b/message_subscribe_email/config/optional/views.view.subscribe_user_email.yml @@ -311,7 +311,6 @@ display: default_argument_type: fixed default_argument_options: argument: '' - default_argument_skip_url: false summary_options: base_path: '' count: true diff --git a/message_subscribe_email/message_subscribe_email.info.yml b/message_subscribe_email/message_subscribe_email.info.yml index 535e9ecc16fadd8b06ab1b93a583b39fa47ecc97..3dc33bf949b3bf73fded416e1410eb7c4ea718c3 100644 --- a/message_subscribe_email/message_subscribe_email.info.yml +++ b/message_subscribe_email/message_subscribe_email.info.yml @@ -1,6 +1,6 @@ name: 'Message subscribe email' description: 'Provides email functionality for message subscribe.' -core_version_requirement: ^9 || ^10 +core_version_requirement: ^9 || ^10 || ^11 package: Message dependencies: - message_subscribe:message_subscribe_ui diff --git a/message_subscribe_email/message_subscribe_email.module b/message_subscribe_email/message_subscribe_email.module index 025b8bd604895247f601ea0e06da465f945aefa0..230e06641daacd72e3b3a0f86cb85d383c2b972a 100644 --- a/message_subscribe_email/message_subscribe_email.module +++ b/message_subscribe_email/message_subscribe_email.module @@ -14,7 +14,7 @@ use Drupal\flag\FlagInterface; /** * Implements hook_flag_action_access(). */ -function message_subscribe_email_flag_action_access($action, FlagInterface $flag, AccountInterface $account, EntityInterface $flaggable = NULL) { +function message_subscribe_email_flag_action_access($action, FlagInterface $flag, AccountInterface $account, ?EntityInterface $flaggable = NULL) { // The 'unflag' action is always allowed here, so only check 'flag'. $prefix = \Drupal::config('message_subscribe_email.settings')->get('flag_prefix') . '_'; if ($action === 'flag' && $flaggable && $flaggable->id() && strpos($flag->id(), $prefix) === 0) { diff --git a/message_subscribe_email/src/EventSubscriber/FlagEvents.php b/message_subscribe_email/src/EventSubscriber/FlagEvents.php index 2904c0dcfd452195210c01f0c26c06cf9172b931..abda0958d283cf4f47fa4d03b41b94ef637873ed 100644 --- a/message_subscribe_email/src/EventSubscriber/FlagEvents.php +++ b/message_subscribe_email/src/EventSubscriber/FlagEvents.php @@ -46,7 +46,7 @@ class FlagEvents implements EventSubscriberInterface { /** * {@inheritdoc} */ - public static function getSubscribedEvents() { + public static function getSubscribedEvents(): array { $events[Flag::ENTITY_FLAGGED] = ['onFlag', 50]; $events[Flag::ENTITY_UNFLAGGED] = ['onUnflag', 50]; return $events; diff --git a/message_subscribe_example/message_subscribe_example.info.yml b/message_subscribe_example/message_subscribe_example.info.yml index 8ea071e9b852881e3e5889772f51e0a42b61c50a..e44e6bfc086bf154ab0757bd53140f47a72c1345 100644 --- a/message_subscribe_example/message_subscribe_example.info.yml +++ b/message_subscribe_example/message_subscribe_example.info.yml @@ -1,7 +1,7 @@ name: Message Subscribe Example type: module description: "Comprehensive example of Message, Message Notify, and Message Subscribe." -core_version_requirement: ^9 || ^10 +core_version_requirement: ^9 || ^10 || ^11 package: Message dependencies: - message:message diff --git a/message_subscribe_ui/config/optional/views.view.subscribe_node.yml b/message_subscribe_ui/config/optional/views.view.subscribe_node.yml index 1d00b50951258eada4b76f98cb95dc159b3cac58..37f6e12d881cffc1d576318466c7bc469f87d5eb 100644 --- a/message_subscribe_ui/config/optional/views.view.subscribe_node.yml +++ b/message_subscribe_ui/config/optional/views.view.subscribe_node.yml @@ -201,7 +201,7 @@ display: plugin_id: flag_link filters: status: - value: '1' + value: '1' table: node_field_data field: status plugin_id: boolean @@ -268,7 +268,6 @@ display: default_argument_type: fixed default_argument_options: argument: '' - default_argument_skip_url: false summary_options: base_path: '' count: true diff --git a/message_subscribe_ui/config/optional/views.view.subscribe_taxonomy_term.yml b/message_subscribe_ui/config/optional/views.view.subscribe_taxonomy_term.yml index 18213fede52b696621fec6634d84b51cbd52422d..f1573a146d95dcd2976ab10efe08429e852e418e 100644 --- a/message_subscribe_ui/config/optional/views.view.subscribe_taxonomy_term.yml +++ b/message_subscribe_ui/config/optional/views.view.subscribe_taxonomy_term.yml @@ -241,7 +241,6 @@ display: default_argument_type: fixed default_argument_options: argument: '' - default_argument_skip_url: false summary_options: base_path: '' count: true diff --git a/message_subscribe_ui/config/optional/views.view.subscribe_user.yml b/message_subscribe_ui/config/optional/views.view.subscribe_user.yml index d71e6473637202e838625edd0287a31a8df11cb4..83ec71d2aeb3a656f58700d3e646133284af872d 100644 --- a/message_subscribe_ui/config/optional/views.view.subscribe_user.yml +++ b/message_subscribe_ui/config/optional/views.view.subscribe_user.yml @@ -191,7 +191,7 @@ display: plugin_id: flag_link filters: status: - value: '1' + value: '1' table: users_field_data field: status plugin_id: boolean @@ -249,7 +249,6 @@ display: default_argument_type: fixed default_argument_options: argument: '' - default_argument_skip_url: false summary_options: base_path: '' count: true diff --git a/message_subscribe_ui/message_subscribe_ui.info.yml b/message_subscribe_ui/message_subscribe_ui.info.yml index 1961254ad690b10137cac1aa21338cbaede04c90..74f62b8a3faa2a7967b4613f54e5e7b74c725a28 100644 --- a/message_subscribe_ui/message_subscribe_ui.info.yml +++ b/message_subscribe_ui/message_subscribe_ui.info.yml @@ -1,6 +1,6 @@ name: 'Message subscribe UI' description: 'Message subscribe UI' -core_version_requirement: ^9 || ^10 +core_version_requirement: ^9 || ^10 || ^11 package: Message dependencies: - message_subscribe:message_subscribe diff --git a/message_subscribe_ui/message_subscribe_ui.services.yml b/message_subscribe_ui/message_subscribe_ui.services.yml new file mode 100644 index 0000000000000000000000000000000000000000..db6d02f4cf854ac03daced893ba63eaa5530d146 --- /dev/null +++ b/message_subscribe_ui/message_subscribe_ui.services.yml @@ -0,0 +1,4 @@ +services: + logger.channel.message_subscribe_ui: + parent: logger.channel_base + arguments: ['message_subscribe_ui'] \ No newline at end of file diff --git a/message_subscribe_ui/src/Controller/SubscriptionController.php b/message_subscribe_ui/src/Controller/SubscriptionController.php index 094709ffb086eee5aba2d3e4f51f166ed0206703..2a7296273edd60784ac7354437437d3d53d6ff8d 100644 --- a/message_subscribe_ui/src/Controller/SubscriptionController.php +++ b/message_subscribe_ui/src/Controller/SubscriptionController.php @@ -14,6 +14,7 @@ use Drupal\message_subscribe\SubscribersInterface; use Drupal\user\UserInterface; use Drupal\views\Views; use Symfony\Component\DependencyInjection\ContainerInterface; +use Psr\Log\LoggerInterface; /** * Default controller for the message_subscribe_ui module. @@ -48,6 +49,13 @@ final class SubscriptionController extends ControllerBase { */ protected $subscribers; + /** + * The logger service. + * + * @var \Psr\Log\LoggerInterface + */ + protected $logger; + /** * Construct the subscriptions controller. * @@ -59,12 +67,15 @@ final class SubscriptionController extends ControllerBase { * The message subscribers service. * @param \Drupal\Core\Config\ConfigFactoryInterface $config_factory * The config factory service. + * @param \Psr\Log\LoggerInterface $logger + * The logger service. */ - public function __construct(AccountProxyInterface $current_user, FlagServiceInterface $flag_service, SubscribersInterface $subscribers, ConfigFactoryInterface $config_factory) { + public function __construct(AccountProxyInterface $current_user, FlagServiceInterface $flag_service, SubscribersInterface $subscribers, ConfigFactoryInterface $config_factory, LoggerInterface $logger) { $this->currentUser = $current_user; $this->flagService = $flag_service; $this->subscribers = $subscribers; $this->config = $config_factory->get('message_subscribe.settings'); + $this->logger = $logger; } /** @@ -75,7 +86,8 @@ final class SubscriptionController extends ControllerBase { $container->get('current_user'), $container->get('flag'), $container->get('message_subscribe.subscribers'), - $container->get('config.factory') + $container->get('config.factory'), + $container->get('logger.channel.message_subscribe_ui'), ); } @@ -90,7 +102,7 @@ final class SubscriptionController extends ControllerBase { * @return \Drupal\Core\Access\AccessResultInterface * Returns TRUE if access is granted. */ - public function tabAccess(AccountInterface $user, FlagInterface $flag = NULL) { + public function tabAccess(AccountInterface $user, ?FlagInterface $flag = NULL) { if (!$flag) { // We are inside /message-subscribe so get the first flag. $flags = $this->subscribers->getFlags(); @@ -142,7 +154,7 @@ final class SubscriptionController extends ControllerBase { * @return array * A render array. */ - public function tab(UserInterface $user, FlagInterface $flag = NULL) { + public function tab(UserInterface $user, ?FlagInterface $flag = NULL) { if (!$flag) { // We are inside /message-subscribe so get the first flag. $flags = $this->subscribers->getFlags(); @@ -155,7 +167,14 @@ final class SubscriptionController extends ControllerBase { $result['#cache']['tags'] = $flag->getCacheTags() + $view->getCacheTags(); } catch (MessageSubscribeException $e) { - watchdog_exception('message_subscribe_ui', $e); + if (version_compare(\Drupal::VERSION, '10.1.0', '<')) { + // @phpstan-ignore-next-line + watchdog_exception('message_subscribe_ui', $e); + } + else { + $this->logger->error($e->getMessage()); + } + $result['#markup'] = $this->t('There was an exception displaying the subscriptions for this user. View recently logged messages for more information.'); } diff --git a/message_subscribe_ui/tests/src/Functional/SubscriptionsBlockTest.php b/message_subscribe_ui/tests/src/Functional/SubscriptionsBlockTest.php index 4ace6d432cfc5297ef08892030b06b6405a2e60c..31cbfe07e7751d9ba7dd9ea3543a5fd09c2ed388 100644 --- a/message_subscribe_ui/tests/src/Functional/SubscriptionsBlockTest.php +++ b/message_subscribe_ui/tests/src/Functional/SubscriptionsBlockTest.php @@ -4,7 +4,7 @@ namespace Drupal\Tests\message_subscribe_ui\Functional; use Drupal\entity_test\FieldStorageDefinition; use Drupal\Tests\BrowserTestBase; -use Drupal\Tests\field\Traits\EntityReferenceTestTrait; +use Drupal\Tests\field\Traits\EntityReferenceFieldCreationTrait; use Drupal\Tests\taxonomy\Traits\TaxonomyTestTrait; /** @@ -15,7 +15,7 @@ use Drupal\Tests\taxonomy\Traits\TaxonomyTestTrait; class SubscriptionsBlockTest extends BrowserTestBase { use TaxonomyTestTrait; - use EntityReferenceTestTrait; + use EntityReferenceFieldCreationTrait; /** * Admin user. diff --git a/src/Subscribers.php b/src/Subscribers.php index 28148aaee855da268bb1330a308d172b77513e86..b73b04c363cec5574fb468bc66add6103f01d3f5 100644 --- a/src/Subscribers.php +++ b/src/Subscribers.php @@ -374,7 +374,7 @@ class Subscribers implements SubscribersInterface { /** * {@inheritdoc} */ - public function getFlags($entity_type = NULL, $bundle = NULL, AccountInterface $account = NULL) { + public function getFlags($entity_type = NULL, $bundle = NULL, ?AccountInterface $account = NULL) { $flags = $this->flagService->getAllFlags($entity_type, $bundle); if ($account) { // Filter flags down to ones the account has action access for. diff --git a/src/SubscribersInterface.php b/src/SubscribersInterface.php index eb1917ce92082f89050d5b7005293fa8d3336a8c..b4cee89aa758ecad69c35d49dc7e7f0a47381808 100644 --- a/src/SubscribersInterface.php +++ b/src/SubscribersInterface.php @@ -134,6 +134,6 @@ interface SubscribersInterface { * * @see \Drupal\flag\FlagServiceInterface::getAllFlags() */ - public function getFlags($entity_type = NULL, $bundle = NULL, AccountInterface $account = NULL); + public function getFlags($entity_type = NULL, $bundle = NULL, ?AccountInterface $account = NULL); } diff --git a/tests/modules/message_subscribe_test/message_subscribe_test.info.yml b/tests/modules/message_subscribe_test/message_subscribe_test.info.yml index eebc26a4e26af025219dea1ae6ed31a698614387..1a152d340c8ce5f52a0a561a36ad207522a39af1 100644 --- a/tests/modules/message_subscribe_test/message_subscribe_test.info.yml +++ b/tests/modules/message_subscribe_test/message_subscribe_test.info.yml @@ -1,7 +1,7 @@ name: 'Message subscribe test module' description: 'Functionality to assist message subscribe testing.' type: module -core_version_requirement: ^8 || ^9 +core_version_requirement: ^9 || ^10 || ^11 dependencies: - message_subscribe:message_subscribe package: Testing diff --git a/tests/modules/message_subscribe_test/message_subscribe_test.module b/tests/modules/message_subscribe_test/message_subscribe_test.module index 9001548e969b6bc384607179bb814914bd3faf70..8813940205a48c5bb6f5dca398eba3b9f5f00ddc 100644 --- a/tests/modules/message_subscribe_test/message_subscribe_test.module +++ b/tests/modules/message_subscribe_test/message_subscribe_test.module @@ -41,6 +41,7 @@ function message_subscribe_test_message_subscribe_get_subscribers_alter(array &$ * Implements hook_message_subscribe_message_alter(). */ function message_subscribe_test_message_subscribe_message_alter(MessageInterface $message, DeliveryCandidateInterface $delivery_candidate) { - $calls = \Drupal::state()->get('message_subscribe_test.message_alter_hook_called', 0); - \Drupal::state()->set('message_subscribe_test.message_alter_hook_called', $calls + 1); + $state = \Drupal::state(); + $calls = $state->get('message_subscribe_test.message_alter_hook_called', 0); + $state->set('message_subscribe_test.message_alter_hook_called', $calls + 1); } diff --git a/tests/src/Kernel/ContextTest.php b/tests/src/Kernel/ContextTest.php index b6bd844f127c43dbdd9489347aee25dd11444fef..2cef6de6e6363083b610afd9085f86b8a55df8fd 100644 --- a/tests/src/Kernel/ContextTest.php +++ b/tests/src/Kernel/ContextTest.php @@ -10,7 +10,7 @@ use Drupal\og\Og; use Drupal\og\OgGroupAudienceHelper; use Drupal\taxonomy\Entity\Term; use Drupal\taxonomy\Entity\Vocabulary; -use Drupal\Tests\field\Traits\EntityReferenceTestTrait; +use Drupal\Tests\field\Traits\EntityReferenceFieldCreationTrait; /** * Test getting context from entity. @@ -21,7 +21,7 @@ use Drupal\Tests\field\Traits\EntityReferenceTestTrait; class ContextTest extends MessageSubscribeTestBase { use CommentTestTrait; - use EntityReferenceTestTrait; + use EntityReferenceFieldCreationTrait; /** * {@inheritdoc} diff --git a/tests/src/Kernel/MessageSubscribeTestBase.php b/tests/src/Kernel/MessageSubscribeTestBase.php index 4bda66b5e94154c39539619a117ae7663e5733d8..2f82d268b6deb9eae2795a4f64d90247e1f87cdf 100644 --- a/tests/src/Kernel/MessageSubscribeTestBase.php +++ b/tests/src/Kernel/MessageSubscribeTestBase.php @@ -54,7 +54,6 @@ abstract class MessageSubscribeTestBase extends KernelTestBase { public function setUp(): void { parent::setUp(); - $this->installSchema('system', ['sequences']); $this->installSchema('flag', ['flag_counts']); $this->installEntitySchema('flagging'); $this->installEntitySchema('message');