Skip to content
Snippets Groups Projects
Commit ac1a182c authored by GitLab CI's avatar GitLab CI
Browse files

Merge branch 'develop' into 'main'

Merging develop into main

See merge request !379
parents 86cf7b08 747d3eb6
No related branches found
Tags v3.2.248
1 merge request!379Merging develop into main
Pipeline #1378875 passed
......@@ -145,7 +145,7 @@
},
"drupal/linkchecker": {
"#3376854 Base path": "https://gitlab.lakedrops.com/composer/plugin/drupal-environment/-/raw/main/patches/d10/3376854.diff",
"#3313343 Disable cron": "https://www.drupal.org/files/issues/2022-10-03/support_disabling_cron-3313343-2.patch"
"#3313343 Disable cron": "https://gitlab.lakedrops.com/composer/plugin/drupal-environment/-/raw/main/patches/d10/3313343-3.diff"
},
"drupal/linkit": {
"#3442127 Deprecate Drupal.EditorFeature": "https://gitlab.lakedrops.com/composer/plugin/drupal-environment/-/raw/main/patches/d10/3442127.diff"
......
......@@ -145,7 +145,7 @@
},
"drupal/linkchecker": {
"#3376854 Base path": "https://gitlab.lakedrops.com/composer/plugin/drupal-environment/-/raw/main/patches/d10/3376854.diff",
"#3313343 Disable cron": "https://www.drupal.org/files/issues/2022-10-03/support_disabling_cron-3313343-2.patch"
"#3313343 Disable cron": "https://gitlab.lakedrops.com/composer/plugin/drupal-environment/-/raw/main/patches/d10/3313343-3.diff"
},
"drupal/linkit": {
"#3442127 Deprecate Drupal.EditorFeature": "https://gitlab.lakedrops.com/composer/plugin/drupal-environment/-/raw/main/patches/d10/3442127.diff"
......
diff --git a/config/install/linkchecker.settings.yml b/config/install/linkchecker.settings.yml
index f3311437c5beb3072a353b5047d769850442f95b..649a0131a1681b1ac2c01fda257dd5b34b61b5f5 100644
--- a/config/install/linkchecker.settings.yml
+++ b/config/install/linkchecker.settings.yml
@@ -26,6 +26,7 @@ check:
library: core
interval: 2419200
useragent: 'Drupal (+http://drupal.org/)'
+ disable_cron: false
error:
action_status_code_301: 0
action_status_code_404: 0
diff --git a/config/schema/linkchecker.schema.yml b/config/schema/linkchecker.schema.yml
index ef877deae66f38e145048b9d4a14104479107e56..357ec2eeed64da1dab200f64199fc8a6e8a7f0ad 100644
--- a/config/schema/linkchecker.schema.yml
+++ b/config/schema/linkchecker.schema.yml
@@ -72,6 +72,9 @@ linkchecker.settings:
useragent:
type: string
label: 'User-Agent'
+ disable_cron:
+ type: boolean
+ label: 'Disable cron processing and queueing'
error:
type: mapping
label: 'Error handling'
diff --git a/linkchecker.module b/linkchecker.module
index 7b305e40e472338cd2b6a8ee2a354843d4c149dc..e2b7b88da60cb4809298342cec0fdc0716673de7 100644
--- a/linkchecker.module
+++ b/linkchecker.module
@@ -148,6 +148,9 @@ function linkchecker_form_field_config_form_builder($entity_type, FieldConfigInt
* Implements hook_cron().
*/
function linkchecker_cron() {
+ if (\Drupal::config('linkchecker.settings')->get('check.disable_cron')) {
+ return;
+ }
\Drupal::service('linkchecker.extractor_batch')->processEntities();
\Drupal::service('linkchecker.checker')->queueLinks();
}
diff --git a/src/Form/LinkCheckerAdminSettingsForm.php b/src/Form/LinkCheckerAdminSettingsForm.php
index f17e6667a482b57ddfaba34ec9d87cb51aec6d95..247bd82ad256719c62495750d1af8e5aba5d7d2d 100644
--- a/src/Form/LinkCheckerAdminSettingsForm.php
+++ b/src/Form/LinkCheckerAdminSettingsForm.php
@@ -74,6 +74,11 @@ class LinkCheckerAdminSettingsForm extends ConfigFormBase {
*/
protected $linkCheckerResponseCodes;
+ /**
+ * The module handler.
+ */
+ protected ModuleHandlerInterface $moduleHandler;
+
/**
* The current user.
*
@@ -357,6 +362,12 @@ class LinkCheckerAdminSettingsForm extends ConfigFormBase {
RfcLogLevel::ERROR => $this->t('Errors only'),
],
];
+ $form['check']['linkchecker_check_disable_cron'] = [
+ '#default_value' => $config->get('check.disable_cron'),
+ '#type' => 'checkbox',
+ '#title' => $this->t('Disable cron processing and queueing'),
+ '#description' => $this->t('Check this box if you will be queueing and processing links via Drush or some other method. <strong>Enabling this will completely disable automatic link queueing and processing.</strong>'),
+ ];
$form['error'] = [
'#type' => 'details',
@@ -364,11 +375,12 @@ class LinkCheckerAdminSettingsForm extends ConfigFormBase {
'#description' => $this->t('Defines error handling and custom actions to be executed if specific HTTP requests are failing.'),
'#open' => TRUE,
];
+ /** @var \Drupal\user\UserInterface|null $linkchecker_default_impersonate_account */
$linkchecker_default_impersonate_account = $this->userStorage->load(1);
$form['error']['linkchecker_impersonate_account'] = [
'#type' => 'textfield',
'#title' => $this->t('Impersonate user account'),
- '#description' => $this->t('If below error handling actions are executed they can be impersonated with a custom user account. By default this is user %name, but you are able to assign a custom user to allow easier identification of these automatic revision updates. Make sure you select a user with <em>full</em> permissions on your site or the user may not able to access and save all content.', ['%name' => $linkchecker_default_impersonate_account->getAccountName()]),
+ '#description' => $this->t('If below error handling actions are executed they can be impersonated with a custom user account. By default this is user %name, but you are able to assign a custom user to allow easier identification of these automatic revision updates. Make sure you select a user with <em>full</em> permissions on your site or the user may not able to access and save all content.', ['%name' => $linkchecker_default_impersonate_account?->getAccountName() ?? '[UID 1 not found]']),
'#size' => 30,
'#maxlength' => 60,
'#autocomplete_path' => 'user/autocomplete',
@@ -388,7 +400,7 @@ class LinkCheckerAdminSettingsForm extends ConfigFormBase {
],
];
if ($this->moduleHandler->moduleExists('dblog') && $this->currentUser->hasPermission('access site reports')) {
- $form['error']['#description'] = $this->t('If enabled, outdated links in content providing a status
+ $form['error']['#description'] = $this->t('If enabled, outdated links in content providing a status
<em>Moved Permanently</em> (status code 301) are automatically updated to the most recent URL. If used,
it is recommended to use a value of <em>three</em> to make sure this is not only a temporarily change.
This feature trust sites to provide a valid permanent redirect.
@@ -506,6 +518,7 @@ class LinkCheckerAdminSettingsForm extends ConfigFormBase {
->set('check.library', $form_state->getValue('linkchecker_check_library'))
->set('check.interval', $form_state->getValue('linkchecker_check_interval'))
->set('check.useragent', $form_state->getValue('linkchecker_check_useragent'))
+ ->set('check.disable_cron', $form_state->getValue('linkchecker_check_disable_cron'))
->set('search_published_contents_only', $form_state->getValue('search_published_contents_only'))
->set('error.action_status_code_301', $form_state->getValue('linkchecker_action_status_code_301'))
->set('error.action_status_code_404', $form_state->getValue('linkchecker_action_status_code_404'))
......@@ -141,7 +141,7 @@
},
"drupal/linkchecker": {
"#3376854 Base path": "https://gitlab.lakedrops.com/composer/plugin/drupal-environment/-/raw/main/patches/d10/3376854.diff",
"#3313343 Disable cron": "https://www.drupal.org/files/issues/2022-10-03/support_disabling_cron-3313343-2.patch"
"#3313343 Disable cron": "https://gitlab.lakedrops.com/composer/plugin/drupal-environment/-/raw/main/patches/d10/3313343-3.diff"
},
"drupal/linkit": {
"#3442127 Deprecate Drupal.EditorFeature": "https://gitlab.lakedrops.com/composer/plugin/drupal-environment/-/raw/main/patches/d10/3442127.diff"
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment