Шаблон:GetField/doc: различия между версиями
Pok (обсуждение | вклад) Новая страница: «{{docpage}} {{OnLua|GetField}} Модуль предназначен для получения данных из кэшированных JSON-страниц и их использования в шаблонах. С его помощью можно получить поле по пути, найти id по значению или сразу собрать вызов шаблона по найденным данным. Поля берутся из json с...» |
Pok (обсуждение | вклад) Нет описания правки |
||
| Строка 17: | Строка 17: | ||
Использование: | Использование: | ||
* {{tji|GetField|get|id|pagePath}} | * {{tji|GetField|функция{{=}}get|id|pagePath}} | ||
* {{tji|GetField|get|id|pagePath|keyPath}} | * {{tji|GetField|функция{{=}}get|id|pagePath|keyPath}} | ||
Простые значения возвращаются как текст, а таблицы в JSON-виде. | |||
Например, json сущности <code>MopItem</code> из [[Участник:IanComradeBot/component/meleeWeapon.json]] выглядит так: | |||
* {{tji|GetField|get|MopItem| | <pre> | ||
* {{tji|GetField|get|MopItem| | "MopItem": { | ||
* {{tji|GetField|get| | "damage": { | ||
"types": { | |||
"Blunt": 10 | |||
} | |||
}, | |||
... | |||
}, | |||
</pre> | |||
то мы можем получить значение как как: | |||
* {{tji|GetField|функция{{=}}get|MopItem|component/meleeWeapon.json|damage}} -> "types": {"Blunt": 10}} | |||
* {{tji|GetField|функция{{=}}get|MopItem|component/meleeWeapon.json|damage.types}} -> {"Blunt": 10} | |||
* {{tji|GetField|функция{{=}}get|MopItem|component/meleeWeapon.json|damage.types.Blunt}} -> 10 | |||
{{Параметры| | {{Параметры| | ||
{{Параметры/строка|1|Id записи.|Да}} | {{Параметры/строка|1|Id записи.|Да}} | ||
{{Параметры/строка|2|Путь до JSON-страницы, например <code> | {{Параметры/строка|2|Путь до JSON-страницы, например <code>component/meleeWeapon.json</code>.|Да}} | ||
{{Параметры/строка|3|Путь до поля внутри записи. Поддерживает вложенность через точку и индексы вида <code>field.1</code> | {{Параметры/строка|3|Путь до поля внутри записи. Поддерживает вложенность через точку и индексы вида <code>field.1</code>|Да}} | ||
}} | }} | ||
| Строка 37: | Строка 48: | ||
Использование: | Использование: | ||
* {{tji|GetField|getTpl|id|pagePath|template}} | * {{tji|GetField|функция{{=}}getTpl|id|pagePath|template}} | ||
Шаблон вызывается в виде <code><nowiki>{{Имя шаблона|id=...|...поля записи...}}</nowiki></code>. Вложенные таблицы передаются как плоские параметры, а также в JSON-виде там, где это нужно для сохранения структуры. | Шаблон вызывается в виде <code><nowiki>{{Имя шаблона|id=...|...поля записи...}}</nowiki></code>. Вложенные таблицы передаются как плоские параметры, а также в JSON-виде там, где это нужно для сохранения структуры. | ||
Пример: | Пример: | ||
* {{tji|GetField|getTpl|MopItem|entity/MopItem.json|Предмет}} | * {{tji|GetField|функция{{=}}getTpl|MopItem|entity/MopItem.json|Предмет}} | ||
{{Параметры| | {{Параметры| | ||
| Строка 56: | Строка 67: | ||
Использование: | Использование: | ||
* {{tji|GetField|getId|searchValue|pagePath|keyPath | * {{tji|GetField|функция{{=}}getId|searchValue|pagePath|keyPath}} | ||
* {{tji|GetField|getTplId|searchValue|pagePath|keyPath|template | * {{tji|GetField|функция{{=}}getTplId|searchValue|pagePath|keyPath|template}} | ||
* {{tji|GetField|getTplId|pagePath|keyPath|template|searchType{{=}}path}} | * {{tji|GetField|функция{{=}}getTplId|pagePath|keyPath|template|searchType{{=}}path}} | ||
Режимы поиска: | Режимы поиска: | ||
| Строка 68: | Строка 79: | ||
Примеры: | Примеры: | ||
* {{tji|GetField| | * {{tji|GetField|функция{{=}}getId|Elements|[[Участник:IanComradeBot/prototype/reaction.json|prototype/reaction.json]]|group}} -> {{GetField|функция=getId|Stir|prototype/reaction.json|requiredMixerCategories}} | ||
{{Параметры| | {{Параметры| | ||
{{Параметры/строка|1| | {{Параметры/строка|1|Значение для поиска.|Да}} | ||
{{Параметры/строка|2| | {{Параметры/строка|2|Путь до JSON-страницы.|Да}} | ||
{{Параметры/строка|3| | {{Параметры/строка|3|Путь до поля внутри записи. Поддерживает вложенность через точку и индексы вида <code>field.1</code>|Да}} | ||
{{Параметры/строка|4| | {{Параметры/строка|4|Имя шаблона, который будет вызван для каждого найденного id.|Только для <code>getTplId</code>}} | ||
{{Параметры/строка|searchType|Режим поиска: <code>value</code>, <code>key</code> или <code>path</code>.|Нет; value}} | {{Параметры/строка|searchType|Режим поиска: <code>value</code>, <code>key</code> или <code>path</code>.|Нет; value}} | ||
}} | }} | ||
| Строка 85: | Строка 93: | ||
Использование: | Использование: | ||
* {{tji|GetField|hasComp|entityId|componentName}} | * {{tji|GetField|функция{{=}}hasComp|entityId|componentName}} | ||
Возвращает строку <code>true</code> или <code>false</code>. | Возвращает строку <code>true</code> или <code>false</code>. | ||
Пример: | Пример: | ||
* {{tji|GetField|hasComp|MopItem|Item}} | * {{tji|GetField|функция{{=}}hasComp|MopItem|Item}} | ||
{{Параметры| | {{Параметры| | ||
| Строка 98: | Строка 106: | ||
=== getGenerator / getTplGenerator === | === getGenerator / getTplGenerator === | ||
Эти функции | Эти функции находят прототипы или компоненты содержащие указанный id, используя [[Участник:IanComradeBot/prototype_store.json]] и [[Участник:IanComradeBot/component_store.json]]. | ||
Использование: | Использование: | ||
* {{tji|GetField|getGenerator|searchId|prototype| | * {{tji|GetField|функция{{=}}getGenerator|searchId|prototype|Название}} | ||
* {{tji|GetField|getGenerator|searchId|component| | * {{tji|GetField|функция{{=}}getGenerator|searchId|component|Название}} | ||
* {{tji|GetField|getTplGenerator|searchId|prototype| | * {{tji|GetField|функция{{=}}getTplGenerator|searchId|prototype|Название|Шаблон}} | ||
<code>getGenerator</code> возвращает JSON-массив id, найденных в | <code>getGenerator</code> возвращает JSON-массив id, найденных в компонентах/прототипах. <code>getTplGenerator</code> по тем же id сразу вызывает шаблон, используя страницу вида <code>prototype/Название.json</code> или <code>component/Название.json</code>. | ||
Примеры: | Примеры: | ||
* {{tji|GetField|getGenerator|MopItem| | * {{tji|GetField|функция{{=}}getGenerator|MopItem|component|itemBorgModule}} -> {{GetField|функция=getGenerator|MopItem|component|itemBorgModule}} | ||
* {{tji|GetField| | * {{tji|GetField|функция{{=}}getGenerator|MopItem|prototype|latheRecipe}} -> {{GetField|функция=getGenerator|MopItem|prototype|latheRecipe}} | ||
{{Параметры| | {{Параметры| | ||
{{Параметры/строка|1|Id, который ищется в хранилище | {{Параметры/строка|1|Id, который ищется в хранилище.|Да}} | ||
{{Параметры/строка|2|Тип | {{Параметры/строка|2|Тип: <code>prototype</code> или <code>component</code>.|Да}} | ||
{{Параметры/строка|3|Имя | {{Параметры/строка|3|Имя хранилищя без <code>.json</code>.|Да}} | ||
{{Параметры/строка|4|Имя шаблона для | {{Параметры/строка|4|Имя шаблона, который будет вызван для каждого найденного id.|Только для <code>getTplGenerator</code>}} | ||
}} | }} | ||
=== GeneratorId / GeneratorTplId === | === GeneratorId / GeneratorTplId === | ||
Эти функции получают все id | Эти функции получают все id прототипов или компонентов. | ||
Использование: | Использование: | ||
* {{tji|GetField|GeneratorId|pagePath}} | * {{tji|GetField|функция{{=}}GeneratorId|pagePath}} | ||
* {{tji|GetField| | * {{tji|GetField|функция{{=}}GeneratorTplId|pagePath|template}} | ||
<code>GeneratorTplId</code> вызывает шаблон для каждого id | <code>GeneratorId</code> по умолчанию возвращает JSON-массив id. | ||
<code>GeneratorTplId</code> вызывает шаблон для каждого id в виде <code><nowiki>{{Имя шаблона|id=...|...поля записи...}}</nowiki></code>. | |||
Примеры: | Примеры: | ||
* {{tji|GetField|GeneratorId| | * {{tji|GetField|функция{{=}}GeneratorId|component/staticPrice.json}} -> выводит все id сущностей с этим компонентом в формате JSON | ||
* {{tji|GetField| | * {{tji|GetField|функция{{=}}GeneratorTplId|component/staticPrice.json|component/staticPrice/wrapper}} -> выводит все id сущностей с этим компонентом обёрнутым в шаблон {{шс|component/staticPrice/wrapper}} | ||
{{Параметры| | {{Параметры| | ||
{{Параметры/строка|1|Путь до | {{Параметры/строка|1|Путь до JSON-страницы.|Да}} | ||
{{Параметры/строка|2|Имя шаблона для <code>GeneratorTplId</code>.|Только для <code>GeneratorTplId</code>}} | {{Параметры/строка|2|Имя шаблона для <code>GeneratorTplId</code>.|Только для <code>GeneratorTplId</code>}} | ||
{{Параметры/строка|replace|Строка замены для <code>GeneratorId</code>. Если задана, результат выводится построчно вместо JSON-массива.|Нет}} | {{Параметры/строка|replace|Строка замены для <code>GeneratorId</code>. Если задана, результат выводится построчно вместо JSON-массива.|Нет}} | ||
| Строка 145: | Строка 150: | ||
Использование: | Использование: | ||
* {{tji|GetField|jsonList|<nowiki>["a","b","c"]</nowiki>}} | * {{tji|GetField|функция{{=}}jsonList|<nowiki>["a","b","c"]</nowiki>}} | ||
* {{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}} | ||
Основные параметры: | Основные параметры: | ||
| Строка 153: | Строка 158: | ||
* <code>prefix</code> — префикс строки для режима списка. По умолчанию <code>* </code>. | * <code>prefix</code> — префикс строки для режима списка. По умолчанию <code>* </code>. | ||
* <code>sep</code> — разделитель между ключом и значением. По умолчанию <code>: </code>. | * <code>sep</code> — разделитель между ключом и значением. По умолчанию <code>: </code>. | ||
* <code>replace</code> — дополнительная обработка уже собранной строки. | * <code>replace</code> — дополнительная обработка регулярным выражением уже собранной строки. | ||
* <code>key_replace</code>, <code>value_replace</code> — обработка ключей и значений по отдельности. | * <code>key_replace</code>, <code>value_replace</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|key_replace{{=}}{{tag|nowiki|style=regular|content=<nowiki>[[\1]]</nowiki>}}}} | ||
{{Параметры| | {{Параметры| | ||
| Строка 174: | Строка 179: | ||
Использование: | Использование: | ||
* {{tji|GetField|json|<nowiki>{"MopItem":{"name":"Швабра"}}</nowiki>|Предмет}} | * {{tji|GetField|функция{{=}}json|<nowiki>{"MopItem":{"name":"Швабра"}}</nowiki>|Предмет}} | ||
Если значение по id является объектом, его поля разворачиваются в параметры шаблона. Если значение простое, оно передаётся как <code>value=...</code>. | Если значение по id является объектом, его поля разворачиваются в параметры шаблона. Если значение простое, оно передаётся как <code>value=...</code>. | ||