drupal - 尝试将社交媒体链接添加到 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,
解决方案
似乎 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.'));
}
}
推荐阅读
- python - 阅读工作簿中的 excel 表并写入 word
- go - `select` 会在默认之前尝试发送吗?
- azure - Azure Pipeline 中的简单 Appium 测试 - 如何修复失败的构建步骤 (vstest)?
- ansible - 使用 Ansible 停用当前 Ansible 用户
- laravel-7 - 在 Laravel 7 中将数据保存到数据库时发生错误
- java - 如果用户输入一个空格作为他们的输入,你会如何将其读为“”字符串?
- python - 如何在元组列表python中找到多个最大值
- ios - 崩溃:专门的 Dictionary._Variant.setValue(_:forKey:) Alamofire http 请求
- c++ - c++ std::bind 如何返回分配给 std::function 的值?
- collision - 碰撞两个物体时如何绝对没有反弹?