Revision as of 15:22, 20 July 2026 by Harald Müller-Bergmann (talk | contribs) (Created page with "local p = {} function p.propertiesOfPage( frame ) local pageName = frame.args[1] or '' if pageName == '' then return '' end local rows = mw.neowiki.query([[ MATCH (page:Page {wiki_id: $wikiId}) WHERE page.name = $pageName MATCH (page)-[:HasSubject]->(s:Subject) UNWIND keys(s) AS prop WITH DISTINCT prop WHERE NOT prop IN ['id', 'wiki_id', 'name'] RETURN prop ORDER BY prop ]], { pageName = pageName,...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Documentation for this module may be created at Module:NeoWikiQueries/doc

local p = {}

function p.propertiesOfPage( frame )
    local pageName = frame.args[1] or ''
    if pageName == '' then return '' end

    local rows = mw.neowiki.query([[
        MATCH (page:Page {wiki_id: $wikiId})
        WHERE page.name = $pageName
        MATCH (page)-[:HasSubject]->(s:Subject)
        UNWIND keys(s) AS prop
        WITH DISTINCT prop
        WHERE NOT prop IN ['id', 'wiki_id', 'name']
        RETURN prop ORDER BY prop
    ]], { pageName = pageName, wikiId = mw.site.server })

    -- Fallback: use the wiki's DB name as wikiId if mw.site.server doesn't match
    if rows == nil or #rows == 0 then return 'No properties found.' end

    local result = {}
    for _, row in ipairs( rows ) do
        table.insert( result, '* ' .. row.prop )
    end
    return table.concat( result, '\n' )
end

return p