Шаблон:GetField/doc: различия между версиями

Нет описания правки
Нет описания правки
 
(не показано 10 промежуточных версий этого же участника)
Строка 11: Строка 11:
* <code>Участник:IanComradeBot/prototype/Проект/название</code> (пример: [[Участник:IanComradeBot/Goob/prototype/tag.json]])
* <code>Участник:IanComradeBot/prototype/Проект/название</code> (пример: [[Участник:IanComradeBot/Goob/prototype/tag.json]])


__TOC__
== Основные функции ==
== Основные функции ==


Строка 17: Строка 18:


Использование:
Использование:
* {{tji|GetField|функция{{=}}get|id|pagePath}}
* {{tji|GetField|функция{{=}}get|id|pagePath|keyPath}}
* {{tji|GetField|функция{{=}}get|id|pagePath|keyPath}}


Строка 45: Строка 45:


=== getTpl ===
=== getTpl ===
Строит вызов шаблона для одного id и сразу обрабатывает его через препроцессор. Помимо <code>id</code>, в шаблон передаются развёрнутые поля записи.
Строит вызов шаблона для одного id передавая в него развёрнутые поля записи.


Использование:
Использование:
Строка 61: Строка 61:
}}
}}


=== getId / getTplId ===
=== searchId / searchIdTpl ===
Обе функции ищут id по значению в указанном поле. Разница в результате:
Обе функции ищут id по значению в указанном поле. Разница в результате:
* <code>getId</code> возвращает найденные id в виде JSON-массива.
* <code>searchId</code> возвращает найденные id в виде JSON-массива.
* <code>getTplId</code> по найденным id сразу вызывает шаблон.
* <code>searchIdTpl</code> по найденным id сразу вызывает шаблон.


Использование:
Использование:
* {{tji|GetField|функция{{=}}getId|searchValue|pagePath|keyPath}}
* {{tji|GetField|функция{{=}}searchId|searchValue|pagePath|keyPath}}
* {{tji|GetField|функция{{=}}getTplId|searchValue|pagePath|keyPath|template}}
* {{tji|GetField|функция{{=}}searchIdTpl|searchValue|pagePath|keyPath|template}}
* {{tji|GetField|функция{{=}}getTplId|pagePath|keyPath|template|searchType{{=}}path}}
* {{tji|GetField|функция{{=}}searchIdTpl|pagePath|keyPath|template|searchType{{=}}path}}


Режимы поиска:
Режимы поиска:
* <code>searchType=value</code> — ищет id, у которых значение поля равно указанному значению. Это режим по умолчанию.
* <code>searchType=value</code> — ищет id, у которых значение поля равно указанному значению. Это режим по умолчанию.
* <code>searchType=key</code> — ищет id, у которых в поле-таблице существует ключ с указанным именем.
* <code>searchType=key</code> — ищет id, у которых в поле-таблице существует ключ с указанным именем.
* <code>searchType=path</code> — только для <code>getTplId</code>; выводит все id, у которых поле по указанному пути существует и не пустое. В этом режиме первым параметром передаётся <code>pagePath</code>, а не значение для поиска.
* <code>searchType=path</code> — только для <code>searchIdTpl</code>; выводит все id, у которых поле по указанному пути существует и не пустое. В этом режиме первым параметром передаётся <code>pagePath</code>, а не значение для поиска.


<code>getTplId</code> вызывает шаблон в виде <code><nowiki>{{Имя шаблона|id=...|...поля записи...}}</nowiki></code>. Если найдено несколько id, вызовы собираются подряд через пробел.
<code>searchIdTpl</code> вызывает шаблон в виде <code><nowiki>{{Имя шаблона|id=...|...поля записи...}}</nowiki></code>. Если найдено несколько id, вызовы собираются подряд через пробел.


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


{{Параметры|
{{Параметры|
Строка 85: Строка 85:
{{Параметры/строка|2|Путь до JSON-страницы.|Да}}
{{Параметры/строка|2|Путь до JSON-страницы.|Да}}
{{Параметры/строка|3|Путь до поля внутри записи. Поддерживает вложенность через точку и индексы вида <code>field.1</code>|Да}}
{{Параметры/строка|3|Путь до поля внутри записи. Поддерживает вложенность через точку и индексы вида <code>field.1</code>|Да}}
{{Параметры/строка|4|Имя шаблона, который будет вызван для каждого найденного id.|Только для <code>getTplId</code>}}
{{Параметры/строка|4|Имя шаблона, который будет вызван для каждого найденного id.|Только для <code>searchIdTpl</code>}}
{{Параметры/строка|searchType|Режим поиска: <code>value</code>, <code>key</code> или <code>path</code>.|Нет; value}}
{{Параметры/строка|searchType|Режим поиска: <code>value</code>, <code>key</code> или <code>path</code>.|Нет; value}}
}}
}}
Строка 105: Строка 105:
}}
}}


=== getGenerator / getTplGenerator ===
=== searchStore / searchStoreTpl ===
Эти функции находят прототипы или компоненты содержащие указанный id, используя [[Участник:IanComradeBot/prototype_store.json]] и [[Участник:IanComradeBot/component_store.json]].
Эти функции находят прототипы или компоненты содержащие указанный id, используя [[Участник:IanComradeBot/prototype_store.json]] или [[Участник:IanComradeBot/component_store.json]].


Использование:
Использование:
* {{tji|GetField|функция{{=}}getGenerator|searchId|prototype|Название}}
* {{tji|GetField|функция{{=}}searchStore|searchId|prototype|Название}}
* {{tji|GetField|функция{{=}}getGenerator|searchId|component|Название}}
* {{tji|GetField|функция{{=}}searchStore|searchId|component|Название}}
* {{tji|GetField|функция{{=}}getTplGenerator|searchId|prototype|Название|Шаблон}}
* {{tji|GetField|функция{{=}}searchStoreTpl|searchId|prototype|Название|Шаблон}}


<code>getGenerator</code> возвращает JSON-массив id, найденных в компонентах/прототипах. <code>getTplGenerator</code> по тем же id сразу вызывает шаблон, используя страницу вида <code>prototype/Название.json</code> или <code>component/Название.json</code>.
<code>searchStore</code> возвращает JSON-массив id, найденных в компонентах/прототипах. <code>searchStoreTpl</code> по тем же id сразу вызывает шаблон, используя страницу вида <code>prototype/Название.json</code> или <code>component/Название.json</code>.


Примеры:
Примеры:
* {{tji|GetField|функция{{=}}getGenerator|MopItem|component|itemBorgModule}} -> {{GetField|функция=getGenerator|MopItem|component|itemBorgModule}}
* {{tji|GetField|функция{{=}}searchStore|MopItem|component|itemBorgModule}} -> {{GetField|функция=searchStore|MopItem|component|itemBorgModule}}
* {{tji|GetField|функция{{=}}getGenerator|MopItem|prototype|latheRecipe}} -> {{GetField|функция=getGenerator|MopItem|prototype|latheRecipe}}
* {{tji|GetField|функция{{=}}searchStore|MopItem|prototype|latheRecipe}} -> {{GetField|функция=searchStore|MopItem|prototype|latheRecipe}}


{{Параметры|
{{Параметры|
Строка 123: Строка 123:
{{Параметры/строка|2|Тип: <code>prototype</code> или <code>component</code>.|Да}}
{{Параметры/строка|2|Тип: <code>prototype</code> или <code>component</code>.|Да}}
{{Параметры/строка|3|Имя хранилищя без <code>.json</code>.|Да}}
{{Параметры/строка|3|Имя хранилищя без <code>.json</code>.|Да}}
{{Параметры/строка|4|Имя шаблона, который будет вызван для каждого найденного id.|Только для <code>getTplGenerator</code>}}
{{Параметры/строка|4|Имя шаблона, который будет вызван для каждого найденного id.|Только для <code>searchStoreTpl</code>}}
}}
}}


=== GeneratorId / GeneratorTplId ===
=== getAll / getAllTpl ===
Эти функции получают все id прототипов или компонентов.
Эти функции получают все id прототипов или компонентов.


Использование:
Использование:
* {{tji|GetField|функция{{=}}GeneratorId|pagePath}}
* {{tji|GetField|функция{{=}}getAll|pagePath}}
* {{tji|GetField|функция{{=}}GeneratorTplId|pagePath|template}}
* {{tji|GetField|функция{{=}}getAllTpl|pagePath|template}}


<code>GeneratorId</code> по умолчанию возвращает JSON-массив id.  
<code>getAll</code> по умолчанию возвращает JSON-массив id.  
<code>GeneratorTplId</code> вызывает шаблон для каждого id в виде <code><nowiki>{{Имя шаблона|id=...|...поля записи...}}</nowiki></code>.
<code>getAllTpl</code> вызывает шаблон для каждого id в виде <code><nowiki>{{Имя шаблона|id=...|...поля записи...}}</nowiki></code>.


Примеры:
Примеры:
* {{tji|GetField|функция{{=}}GeneratorId|component/staticPrice.json}} -> выводит все id сущностей с этим компонентом в формате JSON
* {{tji|GetField|функция{{=}}getAll|component/staticPrice.json}} -> выводит все id сущностей с этим компонентом в формате JSON
* {{tji|GetField|функция{{=}}GeneratorTplId|component/staticPrice.json|component/staticPrice/wrapper}} -> выводит все id сущностей с этим компонентом обёрнутым в шаблон {{шс|component/staticPrice/wrapper}}
* {{tji|GetField|функция{{=}}getAllTpl|component/staticPrice.json|component/staticPrice/wrapper}} -> выводит все id сущностей с этим компонентом обёрнутым в шаблон {{шс|component/staticPrice/wrapper}}


{{Параметры|
{{Параметры|
{{Параметры/строка|1|Путь до JSON-страницы.|Да}}
{{Параметры/строка|1|Путь до JSON-страницы.|Да}}
{{Параметры/строка|2|Имя шаблона для <code>GeneratorTplId</code>.|Только для <code>GeneratorTplId</code>}}
{{Параметры/строка|2|Имя шаблона для <code>getAllTpl</code>.|Только для <code>getAllTpl</code>}}
{{Параметры/строка|replace|Строка замены для <code>GeneratorId</code>. Если задана, результат выводится построчно вместо JSON-массива.|Нет}}
{{Параметры/строка|replace|Строка замены для <code>getAll</code>. Если задана, результат выводится построчно вместо JSON-массива.|Нет}}
}}
}}


Строка 199: Строка 199:
* Если запись, поле или JSON-страница не найдены, функции обычно возвращают пустую строку.
* Если запись, поле или JSON-страница не найдены, функции обычно возвращают пустую строку.
* Функция <code>get</code> возвращает таблицы в JSON-виде.
* Функция <code>get</code> возвращает таблицы в JSON-виде.
* В <code>getId</code> и <code>getTplId</code> значения сравниваются как строки.
* В <code>searchId</code> и <code>searchIdTpl</code> значения сравниваются как строки.
* Параметр <code>keyPath</code> поддерживает доступ к вложенным полям и индексам.
* Параметр <code>keyPath</code> поддерживает доступ к вложенным полям и индексам.
* <code>getTpl</code> и <code>getTplId</code> удобны, когда нужно не получить сырые данные, а сразу отрендерить карточку или другой шаблон.
* <code>getTpl</code> и <code>searchIdTpl</code> удобны, когда нужно не получить сырые данные, а сразу отрендерить карточку или другой шаблон.
* Функции с <code>Generator</code> работают только с генераторными страницами и хранилищами, где структура данных уже подготовлена под поиск по id.
* Функции с <code>searchStore</code> работают только с генераторными страницами и хранилищами, где структура данных уже подготовлена под поиск по id.
* <code>json</code> и <code>jsonList</code> ожидают корректный JSON; если строка не разбирается, результат будет пустым.
* <code>json</code> и <code>jsonList</code> ожидают корректный JSON; если строка не разбирается, результат будет пустым.