Обсуждение Википедии:Гаджеты/Автоматическая проверка соответствия критериям

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску

Вызов с параметрами[править код]

Jack who built the house - а как задавать параметры проверки в режиме "для всех на данной странице"? То есть через {{выполнить скрипт|criteriaCheck}} В таком режиме подходит только вариант с заданием параметров проверки при вызове самого шаблона. Параметры в отдельном блоке Javascript, через обращения к объекту criteriaCheck, тут бесполезны. Так как у каждого посетителя страницы должен быть такой блок Javascript, что тогда ничем не отличается от индивидуальной установки самого скрипта. Я почитал инструкции, но ответа на вопрос не нашёл. — Neolexx (обс.) 21:52, 30 января 2021 (UTC)[ответить]

  • @Neolexx: Этот раздел не отвечает на ваш вопрос? Плюс должен быть соответствующий объект применения, который с помощью criteriaCheck.extractCriteria() извлечёт критерии из потомков указанного HTML-элемента, расставит куда надо необходимые кнопки и выведет результат проверки. — Джек (обс.) 22:13, 30 января 2021 (UTC)[ответить]
    • Я читал про критерии в HTML-коде, но там в конце сказано "Для извлечения критериев из HTML-кода используйте метод criteriaCheck.extractCriteria()" А нужно, повторюсь, полностью вне-скриптовое задание параметров. Вроде {{выполнить скрипт|criteriaCheck|minEdits=100|...}} или {{выполнить скрипт|criteriaCheck}}{{criteriaCheckParams|minEdits=100|...}} Иначе смысла нет в {{выполнить скрипт}} - если для функциональности у каждого посетителя страницы ещё должен быть Javascript с настройками.
      Но может я неверно прочёл документацию и при наличии параметров в HTML-тегах скрипт автоматически это почувствует и использует. — Neolexx (обс.) 22:32, 30 января 2021 (UTC)[ответить]
      • @Neolexx: А зачем нужны параметры {{выполнить скрипт}}, если есть параметры, задаваемые в атрибутах HTML-тегов? Вот же пример. У каждого посетителя не должен быть свой (в смысле индивидуальный под каждого) Джаваскрипт, но сам сабжевый скрипт должен содержать какой-то код, который будет содержать инструкции, что, собственно, делать со всеми этими критериями и их соответствием для какого-то участника (по какому событию инициировать проверку, куда выводить результат). Предполагается, что этот код, если вы пишете что-то полезное для широкой общественности, вы предложите сами пулл-реквестом в репозиторий, и я его включу. Впрочем, вы можете написать и какой-то собственный скрипт, расположенный хоть в вашем ЛП, который будет обращаться к методам сабжевого скрипта. — Джек (обс.) 00:01, 31 января 2021 (UTC)[ответить]
        • Быть может, я не сразу понял механику вашей программы. {{выполнить скрипт}} - это для полностью самодостаточного скрипта. Который будет загружен для любого посетителя страницы (всех зарегов, всех анрегов, всех вообще, зависит от настроек) Даже если у ней/него вообще нет страницы common.js и даже места для такой страницы (анреги)
          Поэтому все необходимое скрипту для работы либо жёстко зашито в нём самом, либо задаётся параметрами шаблона (например, как в {{Imagestack}}).
          Поэтому если для скрипта нужен какой-то другой скрипт (даже из пары строчек типа var... = ...), то смысла его использовать через {{выполнить скрипт}} нет. Нужно тогда и тот дополнительный скрипт добавлять в разрешённые и тогда вызов на странице делать вида {{выполнить скрипт|criteriaCheck}} {{выполнить скрипт|criteriaCheckSettings}}
          Проблема снимается, если ваш скрипт автоматически определяет на странице наличие параметров через атрибуты тегов data-criterion / data-value и использует их. Как я понимаю, так оно и есть, и проблема решена. — Neolexx (обс.) 00:28, 31 января 2021 (UTC)[ответить]
          • @Neolexx: Дело в том, что не вполне понятно, что скрипт должен делать с этими критериями, даже если он нашёл их на странице. Поэтому
            > ваш скрипт автоматически определяет на странице наличие параметров через атрибуты тегов data-criterion / data-value и использует их
            — не совсем. Как бы ничего не мешает их автоматически находить, но для чего нужен просто набор критериев? Куда выводить соответствие этим критериям и чьё? В какой формулировке? И т. д. и т. п. Я постарался сделать максимально простым создание применений, чтобы можно было несколькими вызовами извлечь критерии — проверить — вывести куда надо результат, но такого, чтобы это делалось безо всякого дополнительного кода, ещё нет. — Джек (обс.) 00:40, 31 января 2021 (UTC)[ответить]
            • Понятно. Это меня и смутило (зачем добавлять в исключения {{выполнить скрипт}}, если поверх всё равно нужен ещё какой-нибудь пользовательский Javascript). Это получается просто усложнённая загрузка пользовательского скрипта из разных мест (так же, как, скажем, часть скрипта загружать со своего common.js, а часть иметь в Tampermonkey-скриптах браузера). Если у меня будут соображения, как эту коллизию разрешить, то напишу. Ну а вам решать, интересны эти соображения или нет. — Neolexx (обс.) 00:53, 31 января 2021 (UTC)[ответить]