Editing
Module
:
SDC tracking
Jump to navigation
Jump to search
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
--[[ __ __ _ _ ____ ____ ____ _ _ _ | \/ | ___ __| |_ _| | ___ _/ ___|| _ \ / ___| | |_ _ __ __ _ ___| | _(_)_ __ __ _ | |\/| |/ _ \ / _` | | | | |/ _ (_)___ \| | | | | | __| '__/ _` |/ __| |/ / | '_ \ / _` | | | | | (_) | (_| | |_| | | __/_ ___) | |_| | |___ | |_| | | (_| | (__| <| | | | | (_| | |_| |_|\___/ \__,_|\__,_|_|\___(_)____/|____/ \____|___\__|_| \__,_|\___|_|\_\_|_| |_|\__, | |_____| |___/ This module is intended to be the engine behind "Template:SDC_tracking". Please do not modify this code without applying the changes first at "Module:SDC_tracking/sandbox" and testing at "Module:SDC_tracking/testcases". Authors and maintainers: * User:Jarekt - original version ]] -- ======================================= -- === Dependencies ====================== -- ======================================= require('strict') -- used for debugging purposes as it detects cases of unintended global variables -- ======================================= -- === Local Functions =================== -- ======================================= local function getArgs(frame) -- switch to lowercase parameters to make them case independent local args = {} for name, value in pairs( frame.args ) do if value ~= '' then -- nuke empty strings args[string.lower(name)] = value end end local page = mw.title.getCurrentTitle() if mw.wikibase then if page.namespace == 6 then args.entity = mw.wikibase.getEntity() elseif args.item then args.entity = mw.wikibase.getEntity(args.item) end end return args end ----------------------------------------------------------------------- local function Category(catName) if catName then return '[[Category:' .. catName .. ']]' else return '' end end -- ================================================== -- === External functions =========================== -- ================================================== local p = {} -- =========================================================================== -- === Version of the function to be called from other LUA codes -- =========================================================================== function p._statement_exist(entity, property, positive, negative) -- check if statement exist if entity and entity.statements and entity.statements[property] then return positive else return negative end end ----------------------------------------------------------------------- function p._statement_has_value(entity, property, value, matching, mismatching, missing) value = value or '' if entity and entity.statements and entity.statements[property] then for _, statement in pairs( entity:getAllStatements( property )) do if (statement.mainsnak.snaktype == "value") then local val = statement.mainsnak.datavalue.value if val.id then val = val.id elseif val.text then val = val.text end if val==value then return matching end end end return mismatching else return missing end end -- =========================================================================== -- === Versions of the function to be called from template namespace -- =========================================================================== function p.SDC_statement_exist(frame) local args = getArgs(frame) -- skip if we are not in file namespace local page = mw.title.getCurrentTitle() if not (page.namespace==6 or page.namespace==args.namespace or args.namespace=='all') then return '' end local output = p._statement_exist(args.entity, args.property, args.positive_category, args.negative_category) return Category(output) end ----------------------------------------------------------------------- function p.SDC_statement_has_value (frame) local args = getArgs(frame) -- skip if we are not in file namespace local page = mw.title.getCurrentTitle() if not (page.namespace==6 or page.namespace==args.namespace or args.namespace=='all') then return '' end local output = p._statement_has_value(args.entity, args.property, args.value, args.matching_category, args.mismatching_category, args.missing_category) return Category(output) end return p
Summary:
Please note that all contributions to Islamical Commons may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see
commons:Copyrights
for details).
Do not submit copyrighted work without permission!
Cancel
Editing help
(opens in new window)
Page included on this page:
Module:SDC tracking/doc
(
edit
)
Navigation menu
Personal tools
Not logged in
Talk
Contributions
Create account
Log in
associated-pages
Module
Discussion
English
Views
Read
Edit source
View history
More
Search
Navigation
Main page
welcome
Community portal
village pump
participate
Upload file
Recent changes
latestfiles
Random File
contact
Special pages
Tools
What links here
Related changes
Upload file
Page information