Dota 2 Wiki

你现在尚未登录,许多功能可能无法正常使用,若已有账号,请登录,若没有,请先注册Twitch账号
目前我们有非常多的待翻译条目,你也可以看一下目前我们需要优先处理的有哪些目前我们有非常多的待翻译条目,你也可以看一下目前我们需要优先处理的有哪些英雄页面的攻略、克制和物品页面的推荐英雄、小贴士等均为社区玩家编写的,你也可以把自己的心得写上去哦。英雄页面的攻略、克制和物品页面的推荐英雄、小贴士等均为社区玩家编写的,你也可以把自己的心得写上去哦。看不懂技能的buff/debuff是哪个跟哪个?鼠标移动到名称上就能看到游戏内显示的名字和描述了。看不懂技能的buff/debuff是哪个跟哪个?鼠标移动到名称上就能看到游戏内显示的名字和描述了。目前我們沒有善於製作其他中文變體的人員,如果您善於或擁有相關技術,請幫忙補充其他中文變體的空白。目前我們沒有善於製作其他中文變體的人員,如果您善於或擁有相關技術,請幫忙補充其他中文變體的空白。

了解更多

Dota 2 Wiki
Advertisement
Dota 2 Wiki
3,958
个页面
Reality Rift icon.png
▶️ Planeshift.
该模块的文档可以在Template:VarQuery找到。
You may be forwarded to another wiki language, in case a translation is not available.



local p = {}
local cargo = mw.ext.cargo
local getArgs = require( 'Module:Arguments' ).getArgs
local split = require( 'Module:Split' )
local vardefine = require( 'Module:Variables' ).vardefine
local varexists = require( 'Module:Variables' ).varexists

local i18n = {
  error = {
    multiple_results = '多于一个结果。',
    no_results = '没有找到结果。',
    no_table = '没有给定表格',
  }
}

--- Validates the given rows.
local function validate( rows )
  local nrows = #rows
  if nrows ~= 1 then
    if nrows == 0 then
      error( i18n.error.no_results )
    else
      error( i18n.error.multiple_results )
    end
  end
end

--- Clear already existing variables that could interfere with the new ones.
local function clear_variables( prefix, fields )
  for _, field in ipairs( split( fields, '%s*,%s*' ) ) do
    local var_key = prefix .. field
    if varexists( var_key ) then
      vardefine( var_key, '' )
    end
  end
end

--- Write the row values to the corresponding variables.
local function write_variables( prefix, row )
  for key, value in pairs( row ) do
    local var_key = prefix .. key
    vardefine( var_key, value )
  end
end


function p.main( frame )
  local args = getArgs( frame )
  local tables = args['table'] or args['tables']
  local fields = args['field'] or args['fields'] or '_pageName'
  local prefix = args['prefix'] or 'cargo_'

  assert( tables, i18n.error.no_table )

  clear_variables( prefix, fields )
  local rows = cargo.query( tables, fields, {
    where = args['where'],
    join = args['join on'],
    groupBy = args['group by'],
    having = args['having'],
    orderBy = args['order by'],
    limit = args['limit']
  } )
  validate( rows )
  write_variables( prefix, rows[1] )
end


return p
Advertisement