Обсуждение Википедии:Функции парсера

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

Арифметические действия над таблицами или переменными[править код]

А можно ли теперь производить арифметические действия над таблицами или переменными? Например, чтобы во всяких сложных таблицах с цифрами автоматом считалось бы "итого". Или, например, чтобы при изменении переменной с численностью населения страны автоматом менялась бы плотность населения? --Ctac (Стас Козловский) 19:43, 15 апреля 2006 (UTC)[ответить]

Эти функции можно использовать в шаблонах и в выражениях можно использоать параметры шаблона. Если среди параметров шаблона есть численность населения и площадь страны, то можно посчитать плотность населения. --SergV 19:57, 15 апреля 2006 (UTC)[ответить]
Классно! Вроде бы работает:--Ctac (Стас Козловский) 20:21, 15 апреля 2006 (UTC)[ответить]

Десятичная точка[править код]

Обычная проблема с точкой и запятой. Интересно, можно как-нибудь исправить? --SergV 12:35, 16 апреля 2006 (UTC)[ответить]

Боюсь, что никак. :( Надо писать разработчику. --Ctac (Стас Козловский) 14:54, 16 апреля 2006 (UTC)[ответить]

Н-да, вот ещё: {{#expr: 1000000000000}} = 1000000000000. Ох уж эти программисты! :). В общем, пользоваться можно, но осторожно. И либо пинать автора, либо делать шаблоны для форматирования результата. --SergV 19:46, 16 апреля 2006 (UTC)[ответить]

rand не работает (уже?), на английской странице его тоже нет… — *** 05:18, 7 августа 2006 (UTC)[ответить]

Функция rand входит не в расширение Parser Functions, а в m:Dynamic Functions, притом сильно ломает кэширование страниц. Есть не очень хороший аналог — шаблон {{rand2}}. Ed 06:45, 7 августа 2006 (UTC)[ответить]
Там «Expression error: unrecognised punctuation character „[“». Да и производить вычисления с NUMBEROFARTICLES что-то не получается по той же причине. — *** 10:03, 7 августа 2006 (UTC)[ответить]
Сорри, исправил (там есть специальная запись {{NUMBEROFARTICLES:R}}, которая ранее записывалась через вертикальную черту вместо двоеточия — число статей без разделителя). Ed 11:01, 7 августа 2006 (UTC)[ответить]

С товарищами делаем свой вики-ресурс. Скачали файлы Expr.php и ParserFunctions.php. Все функции работали нормально, но с #time страница вообще не выводилась. Попробовал в своей вики на локальном компе, где установлен вывод ошибок. После вставки #time PHP грязно выругался:
Warning: ExtParserFunctions::time(C:\Apache2\wiki\extensions\ParserFunctions/SprintfDateCompat.php) [<a href='function.time'>function.time</a>]: failed to open stream: No such file or directory in C:\Apache2\wiki\extensions\ParserFunctions\ParserFunctions.php on line 138

Fatal error: ExtParserFunctions::time() [<a href='function.require'>function.require</a>]: Failed opening required 'C:\Apache2\wiki\extensions\ParserFunctions/SprintfDateCompat.php' (include_path='C:\Apache2\wiki;C:\Apache2\wiki/includes;C:\Apache2\wiki/languages;.;C:\php5\pear') in C:\Apache2\wiki\extensions\ParserFunctions\ParserFunctions.php on line 138


Пошел по сслыке, где предлагают посмотреть древо кода, увидел там этот SprintfDateCompat.php, скачал, все заработало.

Поэтому рекомендую добавить этот файл к списку нужных для установки функций

// Libach 19:35, 29 сентября 2006 (UTC)[ответить]

Аргумент "time"[править код]

Нужно дополнить статью информацией о том, в каком формате следует задавать аргумент "time". --MMH 20:02, 27 июня 2015 (UTC)[ответить]

Падежи названий месяцев[править код]

Эта собака выдает мне на

{{ #time: m | 20070101 10:00}}

вместо "январь" - "января"


Эта собака выдает мне на

{{ #time: m | 20070101}}

вместо "январь" - "декабрь"


Они слышали о наших падежах?

\\Wintik

Не работает Оператор #if[править код]

Подскажите, пожалуйста, почему у меня на чужом вики-проекте работает эта конструкция в шаблоне, а у меня не работает?:

{| class="infobox"
| '''Таблица'''
{{#if:{{{место|}}}| '''Место:''' {{{место|}}}}}

у меня вместо результата выполнения шаблона на странице печатается исходный код шаблона. Sarmat6687 21:13, 8 мая 2011 (UTC)[ответить]

Таблица в аргументах[править код]

Неужели нет способа заэскейпить знаки | при передаче таблицы аргументом шаблона, и её всегда нужно переделывать в теги? А при передачи шаблона с аргументами аргументом другого шаблона скобки нормально воспринимаются, и вертикальная черта не рвёт вложенное обращение к шаблону? Может, это баг, а не фича? --Nashev 13:33, 10 апреля 2012 (UTC)[ответить]

К сожалению, пока такова техническая реализация этих функций. Возможно в более свежих версиях ПО это как-то и исправят, но пока все пользуются таким способом - вертикальную черту заменяют на шаблон {{!}}, который адекватно воспринимается функциями парсера, но при формировании страницы движком MediaWiki раскрывается в вертикальную черту, формирующую таблицу. Dmitry89 14:00, 10 апреля 2012 (UTC)[ответить]
Поддерживаю. Давно пора менять! Ядерный Трамвай 11:10, 15 июля 2015 (UTC)[ответить]

#time по русски не работает[править код]

Русский месяц на вход не принимает ни в каком падеже, даже с конкретным указанием рус. локали:

{{#time:j xg Y|14 июня 2015}} выдаёт: Ошибка: неправильное время
{{#time:j xg Y|14 июня 2015|ru}} выдаёт: Ошибка: неправильное время
{{#time:j F Y|14 июнь 2015|ru}} выдаёт: Ошибка: неправильное время

Выдача русская если на вход дать месяц на англ. Но по нерусски в рунете никто не пишет:

{{#time:j xg Y|14 june 2015|ru}} выдаёт: 14 июня 2015
{{#time:j F Y|14 june 2015|ru}} выдаёт: 14 июня 2015

Написал на багтрэкере. Сомнения, что исправят в ближайшие годы. --Vladis13 11:51, 14 ноября 2015 (UTC)[ответить]

«Аргумент time принимает дату в формате гггг-мм-чч, где гггг — год, мм — номер месяца, чч — число месяца. Если аргумент time не задан, то используется текущее время и дата». --MMH 12:01, 14 ноября 2015 (UTC)[ответить]
Также мною было замечено, что #time нормально принимает дату в формате чч.мм.гггг (код: {{#time:j xg Y|14.06.2015|ru}}, результат: 14 июня 2015). О том, что дату можно задавать в указанном Вами формате не знал. Спасибо за информацию. --MMH 12:08, 14 ноября 2015 (UTC)[ответить]
На багтрекере ответили, что #time как и тождественная функция Lua, является обёрткой PHP функции, и принимает только месяцы на английски языке. Функцию можно использовать для конвертации числового ввода в буквенный русский. Для конвертации словесного можно дополнить Модуль:Dates функцией парсящией строку. --Vladis13 19:22, 16 ноября 2015 (UTC)[ответить]

Актуальность[править код]

@Загребин Илья, привет :)

  1. Почему так будет удобнее? У нас тут устаревшая и неверная инфа.
  2. Если ее сохраняете, можете тогда и ее поддержкой заняться, проверить на актуальность и поправить?

С уважением, Iniquity 13:33, 27 мая 2022 (UTC)[ответить]

  • #expr
  • #if
  • #ifeq
  • #ifexist
  • #ifexpr
  • #switch
Остальные, вроде бы, используются реже. Загребин Илья(обсуждение) 14:17, 27 мая 2022 (UTC)[ответить]
  • @MMH, добрый день! Если вы возвращаете устаревший текст, можете, пожалуйста, его актуализировать? Iniquity (обс.) 12:15, 3 ноября 2022 (UTC)[ответить]
    Чем Вам не нравится этот? Я им пользуюсь — всё работает. — MMH (обс.) 08:43, 4 ноября 2022 (UTC)[ответить]
    • Если, например, взять #expr, то нет информации об ошибках, неочевидная информация про булеву алгебру, нет информации про одиночные значения. И это только про #expr. Iniquity (обс.) 15:11, 4 ноября 2022 (UTC)[ответить]
    • Вы именно удаляете. МедиВики - это другой ресурс. — MMH (обс.) 06:14, 9 ноября 2022 (UTC)[ответить]
      • @MMH И что? mediawiki.org — ресурс, располагающийся на серверах Фонда Викимедиа, также как и Википедия. Есть консенсусная практика переноса или перенаправления содержимого Википедии в более подходящие проекты Викимедиа (Викисловарь, Викисклад или вот mediawiki.org). У mediawiki.org есть активное сообщество, которое следит за актуальностью основных справок и руководств, включая это. Лучшим решением представляется именно давать ссылку на страницу mediawiki.org. С уважением, DecabristM (обс.) 09:46, 21 ноября 2022 (UTC)[ответить]
    • Второй момент, учитывая что эта страница не обновлялась от 6 до 10 лет, у вас есть ресурсы её проверить и точно заявить, что все работает? Iniquity (обс.) 14:13, 6 ноября 2022 (UTC)[ответить]
    • Почему я должен что-то проверять? Вам нужно - Вы и проверяйте. Вы удаляете чужую работу, потому что Вам так захотелось, и ещё возмущаетесь. У Вас есть ресурсы проверить все статьи Википедии и удостовериться, что в них нет ложной информации? — MMH (обс.) 06:14, 9 ноября 2022 (UTC)[ответить]
      • 1) Проверять вы ничего не должны, но тогда и не препятствуйте тому, чтобы перенаправлять участников на актуальную справку в более подходящем проекте. Пространство Википедии не предназначено для того, чтобы размещать здесь over 9000000 справок по технической части на все случаи жизни, потому что 99% из этого применимо ко всем сайтам на MediaWiki. Сообщество одного проекта, даже такого большого, как Википедия, скорее всего не сможет всё это поддерживать в актуальном состоянии. Поэтому существует проект mediawiki.org, который объединяет сообщество всех пользователей MediaWiki, а не только одной вики.
        2) «Вы удаляете чужую работу» — когда это кого-то в Википедии волновало... На ВП:КУ могут запросто удалить даже интересную статью, на которую автор потратил уйму времени. Здесь в принципе нет чужих работ. С уважением, DecabristM (обс.) 10:05, 21 ноября 2022 (UTC)[ответить]
    • Ну вот и удаляйте через ВП:КУ, а так это вандализм. Нет консенсуса. — MMH (обс.) 12:52, 21 ноября 2022 (UTC);[ответить]
      • 1) ВП:КУ предназначена для обсуждения удаления страниц (техническое действие, на которое уполномочены подводящие итоги и администраторы), а не удаления части содержимого страниц. Не надо это путать.
        2) Пожалуйста, не жонглируйте вики-терминами, такими как ВП:Вандализм и ВП:Консенсус. Удаление устаревшего и неподходящего для Википедии контента с перенаправлением на подходящий проект с аналогичным содержанием вандализмом не является (и я считаю, что это именно тот случай). И консенсуса нет, потому что спорим только мы и Iniquity с вами. Чтоб был консенсус, надо либо что одна из сторон согласилась с другой, либо обратить внимание других людей на это обсуждение. С уважением, DecabristM (обс.) 21:26, 21 ноября 2022 (UTC)[ответить]
    • Она актуальная, просто не полная. Если замечу ошибки - исправлю. Про шаблон {{main}} я вам уже писал. — MMH (обс.) 13:00, 21 ноября 2022 (UTC)[ответить]
      • Что мешает вам пользоваться уже актуальной и полной справкой mediawiki.org? Чего в справке MediaWiki нету такого, что есть в этой? Мне правда интересно это. Я пока что не понимаю причин, почему вы отказываетесь от mediawiki.org. С уважением, DecabristM (обс.) 21:31, 21 ноября 2022 (UTC)[ответить]
        • Эта справка удобна именно своим малым объёмом. Как верно заметил участник Загребин Илья: «здесь описываются базовые функции парсера и к ним легко перейти. В Медиавики описаны все функции парсера, переменные и так далее. Чтобы найти нужную инструкцию по применению в Медиавики нужно перерыть половину той огромной страницы, где они описаны». — MMH (обс.) 10:38, 22 ноября 2022 (UTC)[ответить]
          • Если участник знает, какую функцию он ищет, он просто перейдет к нужному разделу через оглавление. Здесь нет никаких проблем у справки mediawiki.org. Если не знает, то в справках mediawiki.org он с более высокой вероятностью найдет то, что он ищет, чем в устаревшей справке здесь. С уважением, DecabristM (обс.) 06:35, 23 ноября 2022 (UTC)[ответить]