Module:PublicationShowAbstract: Difference between revisions

From MaRDI portal
No edit summary
No edit summary
Line 44: Line 44:
      
      
local abstract = p.queryAbstractDB(target1)
local abstract = p.queryAbstractDB(target1)
 
-- mw.log(abstract)  
-- mw.log(abstract)  
if not abstract or abstract == '' then
        return ""
end
-- Create an HTML element with styling
    local box = mwHtml.create('div')
        :addClass('abstract-box')
        :css({
            ['border'] = '1px solid #ccc',
            ['border-radius'] = '8px',
            ['padding'] = '10px',
            ['background-color'] = '#f9f9f9',
            ['margin'] = '10px 0',
        })
        :wikitext(abstract)
    return tostring(box)
    return abstract
end
end


return p
return p

Revision as of 20:13, 8 April 2025

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

-- Required module containing helper methods
local helper = require('Module:HelperMethods')

-- Required modules for SPARQL queries and HTML table generation
local sparql = require('SPARQL')
local mwHtml = require('mw.html')

local p = {}

function p.queryAbstractDB(QID)
	local abstract = ""

	if not QID or QID == '' then
		return abstract
	end	
	
	local safeID = tostring(QID):gsub("^Q", "")

	mw.log(safeID) 

    local row = mw.ext.externaldata.getDbData {
	    db = "AbstractDB",
	    parameters = safeID
	}
	
	-- mw.log( row )
                
	if row then
		abstract = row.abstract
		-- mw.log( abstract )
	end

    return abstract
end


function p.getAbstractForPaperQID(frame)
	
    -- Retrieve target1 from frame arguments or return error message if not set
	local target1 = frame.args[1]
    if not target1 or target1 == '' then
        return "No records found"
    end    
    
	local abstract = p.queryAbstractDB(target1)

	-- mw.log(abstract) 

	if not abstract or abstract == '' then
        return ""
	end

	-- Create an HTML element with styling
    local box = mwHtml.create('div')
        :addClass('abstract-box')
        :css({
            ['border'] = '1px solid #ccc',
            ['border-radius'] = '8px',
            ['padding'] = '10px',
            ['background-color'] = '#f9f9f9',
            ['margin'] = '10px 0',
        })
        :wikitext(abstract)

    return tostring(box)
	
end

return p