Дополнительные действия
DarkMuse (обсуждение | вклад) Нет описания правки |
DarkMuse (обсуждение | вклад) Нет описания правки |
||
| Строка 4: | Строка 4: | ||
function EntityCounter.count(frame) | function EntityCounter.count(frame) | ||
return EntityCounter._count(Arguments.getArgs(frame)) | |||
end | end | ||
| Строка 12: | Строка 12: | ||
local conditions = args.conditions -- Условия запроса | local conditions = args.conditions -- Условия запроса | ||
-- | -- Проверяем наличие условий и формируем строку запроса | ||
local | local whereClause = "" | ||
if conditions then | |||
whereClause = "WHERE " .. conditions | |||
end | |||
-- Выполняем запрос через cargo_query | -- Выполняем запрос через cargo_query | ||
local res = mw.ext.cargo.query( | local res = mw.ext.cargo.query( | ||
tableName, | |||
queryFields, | |||
whereClause, | |||
"LIMIT 1", -- Ограничиваем до одной записи, так как мы считаем количество | |||
"format=count" | |||
) | |||
-- Проверяем результат и возвращаем количество записей | -- Проверяем результат и возвращаем количество записей | ||
Версия от 21:51, 12 сентября 2024
Для документации этого модуля может быть создана страница Модуль:ICCup entity count/doc
local Arguments = require('Module:Arguments')
local EntityCounter = {}
function EntityCounter.count(frame)
return EntityCounter._count(Arguments.getArgs(frame))
end
function EntityCounter._count(args)
local tableName = "Heroes" -- Таблица Cargo
local queryFields = args.fields or "*" -- Укажите, какие поля нужно запросить, по умолчанию - все поля
local conditions = args.conditions -- Условия запроса
-- Проверяем наличие условий и формируем строку запроса
local whereClause = ""
if conditions then
whereClause = "WHERE " .. conditions
end
-- Выполняем запрос через cargo_query
local res = mw.ext.cargo.query(
tableName,
queryFields,
whereClause,
"LIMIT 1", -- Ограничиваем до одной записи, так как мы считаем количество
"format=count"
)
-- Проверяем результат и возвращаем количество записей
if type(res) == 'table' and res[1] then
return res[1]
else
error("Ошибка при выполнении запроса: " .. tostring(res))
end
end
return EntityCounter