Модуль:GetField/doc: различия между версиями

Новая страница: «{{docpage}} Модуль предназначен для получения данных из кэшированных JSON-страниц и их использования в шаблонах. С его помощью можно получить поле по пути, найти id по значению или сразу собрать вызов шаблона по найденным данным. Поля берутся из json страниц * <code...»
 
Нет описания правки
 
(не показаны 4 промежуточные версии этого же участника)
Строка 52: Строка 52:


Пример:
Пример:
* {{tji|Модуль:GetField|getTpl|MopItem|entity/MopItem.json|Предмет}}
* {{tji|Модуль:GetField|getTpl|MopItem|сomponent/spillable.json|сomponent/spillable}}


{{Параметры|
{{Параметры|
Строка 78: Строка 78:


Примеры:
Примеры:
* {{tji|Модуль:GetField|searchId|Elements|[[Участник:IanComradeBot/prototype/reaction.json|prototype/reaction.json]]|group}} -> {{GetField|функция=searchId|Stir|prototype/reaction.json|requiredMixerCategories}}
* {{tji|Модуль:GetField|searchId|Elements|[[Участник:IanComradeBot/prototype/reaction.json|prototype/reaction.json]]|group}} -> {{#invoke:GetField|searchId|Stir|prototype/reaction.json|requiredMixerCategories}}


{{Параметры|
{{Параметры|
Строка 88: Строка 88:
}}
}}


=== hasComp ===
=== search ===
Проверяет, есть ли у сущности указанный компонент.
Ищет сущности, у которых есть указанные компоненты или теги. Поддерживается поиск по нескольким значениям через запятую: сущность попадёт в результат только если содержит все перечисленные элементы.


Использование:
Использование:
* {{tji|Модуль:GetField|hasComp|entityId|componentName}}
* {{tji|Модуль:GetField|search|component|componentName}}
* {{tji|Модуль:GetField|search|tag|tagName}}
 
Режимы:
* <code>component</code> — ищет сущности по списку компонентов.
* <code>tag</code> — ищет сущности по списку тегов.


Возвращает строку <code>true</code> или <code>false</code>.
Результат:
* возвращается JSON-массив id найденных сущностей;
* в режиме <code>component</code> результат также JSON-массив, без дополнительного форматирования.


Пример:
Примеры:
* {{tji|Модуль:GetField|hasComp|MopItem|Item}}
* {{tji|Модуль:GetField|search|component|Emag}} -> {{#invoke:GetField|search|component|Emag}}
* {{tji|Модуль:GetField|search|tag|Crayon}} -> {{#invoke:GetField|search|tag|Crayon}}


{{Параметры|
{{Параметры|
{{Параметры/строка|1|Id сущности.|Да}}
{{Параметры/строка|1|Режим поиска: <code>component</code> или <code>tag</code>.|Да}}
{{Параметры/строка|2|Имя компонента для проверки.|Да}}
{{Параметры/строка|2|Список компонентов или тегов через запятую. Все указанные значения должны присутствовать у сущности.|Да}}
}}
}}


Строка 115: Строка 123:


Примеры:
Примеры:
* {{tji|Модуль:GetField|searchStore|MopItem|component|itemBorgModule}} -> {{GetField|функция=searchStore|MopItem|component|itemBorgModule}}
* {{tji|Модуль:GetField|searchStore|MopItem|component|itemBorgModule}} -> {{#invoke:GetField|searchStore|MopItem|component|itemBorgModule}}
* {{tji|Модуль:GetField|searchStore|MopItem|prototype|latheRecipe}} -> {{GetField|функция=searchStore|MopItem|prototype|latheRecipe}}
* {{tji|Модуль:GetField|searchStore|MopItem|prototype|latheRecipe}} -> {{#invoke:GetField|searchStore|MopItem|prototype|latheRecipe}}


{{Параметры|
{{Параметры|
Строка 143: Строка 151:
{{Параметры/строка|2|Имя шаблона для <code>getAllTpl</code>.|Только для <code>getAllTpl</code>}}
{{Параметры/строка|2|Имя шаблона для <code>getAllTpl</code>.|Только для <code>getAllTpl</code>}}
{{Параметры/строка|replace|Строка замены для <code>getAll</code>. Если задана, результат выводится построчно вместо JSON-массива.|Нет}}
{{Параметры/строка|replace|Строка замены для <code>getAll</code>. Если задана, результат выводится построчно вместо JSON-массива.|Нет}}
}}
=== hasComp ===
Проверяет, есть ли у сущности указанный компонент.
Использование:
* {{tji|Модуль:GetField|hasComp|entityId|componentName}}
Возвращает строку <code>true</code> или <code>false</code>.
Пример:
* {{tji|Модуль:GetField|hasComp|MopItem|Item}}
{{Параметры|
{{Параметры/строка|1|Id сущности.|Да}}
{{Параметры/строка|2|Имя компонента для проверки.|Да}}
}}
=== getComp ===
Возвращает список всех компонентов сущности в виде JSON-массива.
Использование:
* {{tji|Модуль:GetField|getComp|entityId}}
Пример:
* {{tji|Модуль:GetField|getComp|MopItem}} -> ["Item","Sprite","MeleeWeapon","SolutionContainerManager"...]
{{Параметры|
{{Параметры/строка|1|Id сущности.|Да}}
}}
}}


Строка 152: Строка 189:
* {{tji|Модуль:GetField|jsonList|<nowiki>{"MopItem":"Швабра"}</nowiki>}}
* {{tji|Модуль:GetField|jsonList|<nowiki>{"MopItem":"Швабра"}</nowiki>}}
* {{tji|Модуль:GetField|jsonList|<nowiki>{"MopItem":"Швабра"}</nowiki>|type{{=}}enum}}
* {{tji|Модуль:GetField|jsonList|<nowiki>{"MopItem":"Швабра"}</nowiki>|type{{=}}enum}}
* {{tji|Модуль:GetField|jsonList|<nowiki>["a","b","c"]</nowiki>|max{{=}}1}}


Основные параметры:
Основные параметры:
Строка 159: Строка 197:
* <code>replace</code> — дополнительная обработка регулярным выражением уже собранной строки.
* <code>replace</code> — дополнительная обработка регулярным выражением уже собранной строки.
* <code>key_replace</code>, <code>value_replace</code> — обработка ключей и значений регулярным выражением по отдельности.
* <code>key_replace</code>, <code>value_replace</code> — обработка ключей и значений регулярным выражением по отдельности.
* <code>max</code> — максимальное количество элементов, которые нужно обработать. Если не задан, обрабатывается весь список.


Примеры:
Примеры:
* {{tji|Модуль:GetField|jsonList|<nowiki>["a","b","c"]</nowiki>}}
* {{tji|Модуль:GetField|jsonList|<nowiki>["a","b","c"]</nowiki>}}
* {{tji|Модуль:GetField|jsonList|<nowiki>{"MopItem":"Швабра"}</nowiki>|type{{=}}list}}
* {{tji|Модуль:GetField|jsonList|<nowiki>{"MopItem":"Швабра"}</nowiki>|type{{=}}list}}
* {{tji|Модуль:GetField|jsonList|<nowiki>{"MopItem":"Швабра"}</nowiki>|type{{=}}none|key_replace{{=}}{{tag|nowiki|style=regular|content=<nowiki>[[\1]]</nowiki>}}}}
* {{tji|Модуль:GetField|jsonList|<nowiki>{"MopItem":"Швабра"}</nowiki>|type{{=}}none|value_replace{{=}}{{tag|nowiki|style=regular|content=<nowiki>[[\1]]</nowiki>}}}}
* {{tji|Модуль:GetField|jsonList|<nowiki>["a","b","c"]</nowiki>|max{{=}}1}}


{{Параметры|
{{Параметры|
Строка 172: Строка 212:
{{Параметры/строка|key_replace|Строка замены для ключей.|Нет; <code>\1</code>}}
{{Параметры/строка|key_replace|Строка замены для ключей.|Нет; <code>\1</code>}}
{{Параметры/строка|value_replace|Строка замены для значений.|Нет; <code>\1</code>}}
{{Параметры/строка|value_replace|Строка замены для значений.|Нет; <code>\1</code>}}
{{Параметры/строка|replace|Строка замены для всего вывода.|Нет; <code>\1</code>}}
{{Параметры/строка|max|Максимальное количество элементов для обработки.|Нет; весь список}}
}}
}}