Дополнительные действия
DarkMuse (обсуждение | вклад) Нет описания правки |
DarkMuse (обсуждение | вклад) Нет описания правки |
||
| Строка 2: | Строка 2: | ||
function p.renderNotes(frame) | function p.renderNotes(frame) | ||
local | local list = {} | ||
local index = 1 | local index = 1 | ||
while | -- Проходим по параметрам note_1, note_2 и т.д. | ||
while frame.args['note_' .. index] do | |||
local note = frame.args['note_' .. index] | local note = frame.args['note_' .. index] | ||
local subnoteIndex = 1 | |||
local subnotes = {} | |||
local | |||
local | |||
-- Проверяем на наличие вложенных примечаний | -- Проверяем на наличие вложенных примечаний | ||
while | while frame.args['note_' .. index .. '_' .. subnoteIndex] do | ||
table.insert(subnotes, '<li>' .. frame.args['note_' .. index .. '_' .. subnoteIndex] .. '</li>') | |||
subnoteIndex = subnoteIndex + 1 | |||
end | end | ||
-- Добавляем основной пункт и вложенные (если есть) | |||
if #subnotes > 0 then | |||
table.insert(list, '<li>' .. note .. '<ul>' .. table.concat(subnotes, '') .. '</ul></li>') | |||
else | |||
table.insert(list, '<li>' .. note .. '</li>') | |||
end | |||
index = index + 1 | index = index + 1 | ||
end | end | ||
return | -- Возвращаем список в HTML-формате | ||
return '<ul>' .. table.concat(list, '') .. '</ul>' | |||
end | end | ||
return p | return p | ||
Версия от 13:20, 28 сентября 2024
Описание
Модуль RenderSubnotes используется для рендеринга примечаний и действий с изображениями в карточках героев или других информационных блоках. Этот модуль предоставляет две основные функции: renderNotes для отображения примечаний и renderItemsAction для рендеринга действий с изображениями.
Использование
Функция renderNotes
Функция renderNotes используется для отображения примечаний, где примечания могут быть как основными, так и вложенными. Основные примечания задаются параметрами вида note_1, note_2 и так далее. Вложенные примечания задаются параметрами вида note_1_1, note_1_2 и так далее.
Пример использования:
{{#invoke:RenderSubnotes|renderNotes
| note_1 = Примечание 1
| note_1_1 = Подпримечание 1.1
| note_1_2 = Подпримечание 1.2
| note_2 = Примечание 2
}}
Функция renderItemsAction
Функция renderItemsAction используется для отображения действий с изображениями. Описание действия задается параметром вида itemsActionDescr_1, а изображение – параметром itemsActionImage_1_1, где числа после символа подчеркивания должны совпадать для правильной привязки изображения к действию.
Пример использования:
{{#invoke:RenderSubnotes|renderItemsAction
| itemsActionDescr_1 = Описание действия 1
| itemsActionImage_1_1 = action_image_1.png
| itemsActionImage_1_2 = action_image_2.png
| itemsActionDescr_2 = Описание действия 2
| itemsActionImage_2_1 = action_image_3.png
}}
Параметры
Параметры для renderNotes
note_X– основное примечание, гдеX– порядковый номер.note_X_Y– вложенное примечание, гдеX– номер основного примечания, аY– номер вложенного примечания.
Параметры для renderItemsAction
itemsActionDescr_X– описание действия, гдеX– порядковый номер.itemsActionImage_X_Y– изображение для действия, гдеX– номер действия, аY– номер изображения для данного действия.
Примечания
- Основные примечания могут иметь несколько уровней вложенности.
- Изображения для действий должны быть привязаны к правильным действиям с помощью одинаковых порядковых номеров в параметрах.
local p = {}
function p.renderNotes(frame)
local list = {}
local index = 1
-- Проходим по параметрам note_1, note_2 и т.д.
while frame.args['note_' .. index] do
local note = frame.args['note_' .. index]
local subnoteIndex = 1
local subnotes = {}
-- Проверяем на наличие вложенных примечаний
while frame.args['note_' .. index .. '_' .. subnoteIndex] do
table.insert(subnotes, '<li>' .. frame.args['note_' .. index .. '_' .. subnoteIndex] .. '</li>')
subnoteIndex = subnoteIndex + 1
end
-- Добавляем основной пункт и вложенные (если есть)
if #subnotes > 0 then
table.insert(list, '<li>' .. note .. '<ul>' .. table.concat(subnotes, '') .. '</ul></li>')
else
table.insert(list, '<li>' .. note .. '</li>')
end
index = index + 1
end
-- Возвращаем список в HTML-формате
return '<ul>' .. table.concat(list, '') .. '</ul>'
end
return p