Вопрос относительно: Quill js, Quill-Image-Resize и PHP-Quill-Renderer - PullRequest
0 голосов
/ 14 октября 2018

Я внедрил WYSIWYG редактор Quill на моем веб-сайте.При этом я также хотел изменить размер изображения, и многие люди рекомендовали этот компонент .Я также установил PHP Quill Renderer , чтобы перевести Delta Quill в HTML.

Я проверил все, и все работает нормально (данные, которые я получаю от средства визуализации, соответствуют данным, которые я отправил с формой).

Однако, если я изменить размер изображения в редакторе Quill и отправить его в средство визуализации, я получаю эту ошибку:

Fatal error: Uncaught TypeError: Argument 1 passed to DBlackborough\Quill\Delta\Html\Insert::__construct() must be of the type string, array given, called in ...... on line 22

Я проверил файли эта функция была в строке 22:

public function __construct(string $insert, array $attributes = [])
{
    $this->tag = null;

    $this->insert = $insert;
    $this->attributes = $attributes;
}

Как новичок во всем этом, я не знаю, что мне делать.Я предполагаю, что, поскольку я использую внешний компонент (например, Quill Image Resizer ), который не был частью Quill js , разработчик Php Quill Renderer сделалне добавлена ​​поддержка изменение размера изображения .

Кто-нибудь может мне подсказать шаги, которые я должен предпринять, чтобы исправить эту ошибку?

1 Ответ

0 голосов
/ 19 октября 2018

У меня была такая же проблема, вот как я ее исправил

Информация о проблеме:

Атрибут width="xx" вставляется плагином Quill Image Resizerкогда вы измените размер изображения.Однако в PHP Quill Renderer Parse не знает этот атрибут, так как для связи с Delta используется значение по умолчанию.

switch ($attribute) {
    default:
        $this->insert($quill);
        break;
}

Решение:

Чтобы исправить эту проблему, мынам нужно добавить новую width константу в опциях, а затем при разборе нам нужно добавить новую case, чтобы связать эту константу с изображением.

page: Options.php (ligne:50)

public const ATTRIBUTE_WIDTH = 'width';
public const ATTRIBUTE_ALT = 'alt';

страница: Parser / Parse.php (ligne: 179)

case Options::ATTRIBUTE_WIDTH:
    $this->image($quill);
    break;
case Options::ATTRIBUTE_ALT:
    $this->image($quill);
    break;

Не уверен, что это лучшее решение, ноэто решает проблему и не должно быть никаких изменений в основных функциях.Как вы можете видеть в моем коде, я также добавляю атрибут alt, чтобы связать его с изображением.Это может быть выгодно для вас

Удачи!

...