config/install/extlink.settings.yml | 1 + config/schema/extlink.schema.yml | 3 +++ extlink.css | 5 +++++ extlink.js | 19 ++++++++++++++----- extlink.module | 1 + src/Form/ExtlinkAdminSettingsForm.php | 7 +++++++ 6 files changed, 31 insertions(+), 5 deletions(-) diff --git a/config/install/extlink.settings.yml b/config/install/extlink.settings.yml index fa645e2..0832235 100644 --- a/config/install/extlink.settings.yml +++ b/config/install/extlink.settings.yml @@ -14,3 +14,4 @@ extlink_css_exclude: '' extlink_css_explicit: '' extlink_mailto_class: 'mailto' extlink_mailto_label: '(link sends email)' +extlink_use_font_awesome: false diff --git a/config/schema/extlink.schema.yml b/config/schema/extlink.schema.yml index d38736f..065318f 100644 --- a/config/schema/extlink.schema.yml +++ b/config/schema/extlink.schema.yml @@ -52,3 +52,6 @@ extlink.settings: extlink_mailto_label: type: label label: 'Alternative text for mailto icon' + extlink_use_font_awesome: + type: boolean + label: 'Use Font Awesome icons instead of images.' diff --git a/extlink.css b/extlink.css index 9082064..3491e7e 100644 --- a/extlink.css +++ b/extlink.css @@ -21,3 +21,8 @@ span.mailto { padding: 0; } } + +/* Put some whitespace between the link and its Font Awesome suffix. */ +span.extlink i { + padding-left: 0.2em; +} diff --git a/extlink.js b/extlink.js index 6a5c35d..8caeafe 100644 --- a/extlink.js +++ b/extlink.js @@ -198,13 +198,22 @@ var length = $links_to_process.length; for (i = 0; i < length; i++) { var $link = $($links_to_process[i]); - if (class_name === drupalSettings.data.extlink.mailtoClass) { - $link.append(''); - } + if (drupalSettings.data.extlink.extUseFontAwesome) { + if (class_name === drupalSettings.data.extlink.mailtoClass) { + $link.append(''); + } + else { + $link.append(''); + } + } else { - $link.append(''); + if (class_name === drupalSettings.data.extlink.mailtoClass) { + $link.append(''); + } + else { + $link.append(''); + } } - } }; Drupal.behaviors.extlink = Drupal.behaviors.extlink || {}; diff --git a/extlink.module b/extlink.module index bfba16d..434765a 100644 --- a/extlink.module +++ b/extlink.module @@ -63,5 +63,6 @@ function extlink_page_attachments(array &$attachments) { 'extAlertText' => $config->get('extlink_alert_text'), 'mailtoClass' => $config->get('extlink_mailto_class'), 'mailtoLabel' => Html::escape($config->get('extlink_mailto_label')), + 'extUseFontAwesome' => $config->get('extlink_use_font_awesome', FALSE), ]; } diff --git a/src/Form/ExtlinkAdminSettingsForm.php b/src/Form/ExtlinkAdminSettingsForm.php index 7b18751..a858408 100644 --- a/src/Form/ExtlinkAdminSettingsForm.php +++ b/src/Form/ExtlinkAdminSettingsForm.php @@ -74,6 +74,13 @@ class ExtlinkAdminSettingsForm extends ConfigFormBase { '#description' => $this->t('If checked, images wrapped in an anchor tag will be treated as external links.'), ]; + $form['extlink_use_font_awesome'] = [ + '#type' => 'checkbox', + '#title' => $this->t('Use Font Awesome icons instead of images.'), + '#default_value' => variable_get('extlink_use_font_awesome', FALSE), + '#description' => $this->t('Add Font Awesome classes to the link as well as an i tag rather than images.'), + ]; + $form['extlink_subdomains'] = [ '#type' => 'checkbox', '#title' => $this->t('Exclude links with the same primary domain.'),