Показано с 1 по 2 из 2

Тема: Создание собственного валидатора

  1. #1
    Member Аватар для BombermaG
    Регистрация
    09.12.2011
    Сообщений
    44

    По умолчанию Не работает создание собственного валидатора

    ISPmanager Business 5.140.0

    Возникла необходимость создать собственный валидатор для проверки введенных в поле формы данных.
    Создал плагин, добавляющий функцию check.custom, добавил в поле планировщика новое поле для теста.
    Файл: /usr/local/mgr5/etc/xml/ispmgr_mod_checkcustom.xml
    Код:
    <?xml version="1.0" encoding="UTF-8"?>
    <mgrdata>
        <handler name="custom_validator.pl" type="cgi">
            <func name="check.custom" />
        </handler>
    
        <metadata name="scheduler.edit" type="form">
            <form>
                <field name="test">
                    <input type="text" name="test" check="custom" />
                </field>
            </form>
        </metadata>
    </mgrdata>
    Код валидатора.
    Файл: /usr/local/mgr5/addon/custom_validator.pl
    Код:
    #!/usr/bin/perl
    
    print "<doc><value>123</value></doc>\n";
    Проблема №1. При вводе любых значений появляется зеленая галочка.
    Image 015.png
    Хотя по логике (описанной в документации) любое введение значение должно замениться на то значение, которое выдает плагин?

    Проблема №2. В документации я нигде не нашел, что должен выдавать валидатор в случае получения корректного значения.
    https://doc.ispsystem.ru/index.php/%...BE%D1%80%D1%8B
    https://doc.ispsystem.ru/index.php/%...validators.xsl
    При попытке сохранения формы всегда выдает ошибку о том, что поле имеет недопустимое значение.
    Image 016.png

    Из всего проверенного, только отправка ошибки по примеру из второй ссылки работает именно так, как написано в документации.
    Последний раз редактировалось BombermaG; 27.03.2018 в 20:34.

  2. #2
    Member Аватар для BombermaG
    Регистрация
    09.12.2011
    Сообщений
    44

    По умолчанию

    Хотелось бы услышать ответа от разработчиков.

    По первой проблеме методом проб удалось сделать, чтобы значение менялось на то, которое вернул валидатор.
    Вместо этого ответа:
    Код:
    #!/usr/bin/perl
    
    print "<doc><value>123</value></doc>\n";
    Возвращаю такой:
    Код:
    #!/usr/bin/perl
    
    print "<doc stylesheet="validator"><value>123</value></doc>\n";
    Значение теперь меняется, но сообщение о том, что оно было изменено всплывает вверху страницы, а не рядом с полем.
    И это, кстати, похоже на баг. Потому что такое поведение происходит только со свойством fullwidth="yes" у поля.
    Было изменено поле test3, результат на скриншоте.
    Изображения Изображения
    Последний раз редактировалось BombermaG; 31.03.2018 в 01:29.

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •