首页 > 解决方案 > 尝试将社交媒体链接添加到 Drupal 网站

问题描述

我正在尝试将社交媒体图标添加到我的 drupal 网站并按照本指南尝试安装它们。该模块似乎安装得很好,但是当我尝试将其配置为在单击保存时添加不同的链接时,它会将我带到一个简单的网页The website encountered an unexpected error. Please try again later.

我试过卸载/重新安装插件,但似乎没有做任何事情。我的设置中是否缺少某些权限?我对drupal几乎是全新的

编辑:错误的网址是admin/structure/block/manage/socialmedialinks?destination=/node
和一些错误日志:

TypeError: Argument 2 passed to Egulias\EmailValidator\EmailValidator::isValid() must implement interface Egulias\EmailValidator\Validation\EmailValidation, bool given,

标签: drupaldrupal-8

解决方案


似乎 social_media_links drupal 模块版本 8.x-2.6 在检查电子邮件地址的有效性时存在错误。
模块的问题队列中存在问题HERE
该问题附有一个补丁(附在下面):

diff --git a/src/Plugin/SocialMediaLinks/Platform/Email.php b/src/Plugin/SocialMediaLinks/Platform/Email.php
index 007e59f..2926d47 100755
--- a/src/Plugin/SocialMediaLinks/Platform/Email.php
+++ b/src/Plugin/SocialMediaLinks/Platform/Email.php
@@ -4,7 +4,6 @@ namespace Drupal\social_media_links\Plugin\SocialMediaLinks\Platform;

 use Drupal\social_media_links\PlatformBase;
 use Drupal\Core\Form\FormStateInterface;
-use Egulias\EmailValidator\EmailValidator;
 use Drupal\Core\Url;

 /**
@@ -29,9 +28,9 @@ class Email extends PlatformBase {
    */
   public static function validateValue(array &$element, FormStateInterface $form_state, array $form) {
     if (!empty($element['#value'])) {
-      $validator = new EmailValidator();
+      $validator = \Drupal::service('email.validator');

-      if (!$validator->isValid($element['#value'], TRUE)) {
+      if (!$validator->isValid($element['#value'])) {
         $form_state->setError($element, t('The entered email address is not valid.'));
       }
     }

推荐阅读