Modul:ListItems: razlika između inačica
Izvor: abcDNK
No edit summary |
No edit summary |
||
| Redak 97: | Redak 97: | ||
end | end | ||
ret_item = ret_item .. "<div class='col-md-2 col-sm-6 col-xs-12 | ret_item = ret_item .. "<div class='col-md-2 col-sm-6 col-xs-12' style='margin-bottom: 56px;'>" | ||
if image ~= "" then | if image ~= "" then | ||
ret_item = ret_item .. '<div class="archive-image imgc-fluid imgc-w-100 imgc-h-200-disabled text-center">' | ret_item = ret_item .. '<div class="archive-image imgc-fluid imgc-w-100 imgc-h-200-disabled text-center">' | ||
Inačica od 3. studenoga 2023. u 14:58
Documentation for this module may be created at Modul:ListItems/doc
local p = {} --p stands for package
function p.list(frame)
ret = ""
--ret = ret .. frame.args.namespace
--ret = ret .. frame.args.offset
--ret = ret .. frame.args.count
--ret = ret .. frame.args.category
args_count = tonumber(frame.args.count)
args_offset = tonumber(frame.args.offset)
params = {}
params["namespace"] = frame.args.namespace
params["count"] = args_count
count_show = 0
page_count = 0
categories = {}
got_all = false
ret = ret .. "<div class='row archive-gallery'>"
ret_items = ""
while count_show < args_count and got_all == false do
if frame.args.category == "NONE" then
if frame.args.back == "false" then
params["offset"] = args_offset + page_count
else
--ret = ret .. "page_count: " .. page_count .. "<br>"
params["offset"] = args_offset - args_count - page_count
--ret = ret .. "offset1: " .. params["offset"] .. "<br>"
if params["offset"] < 0 then
params["count"] = params["count"] + params["offset"]
params["offset"] = 0
end
--ret = ret .. "offset2: " .. params["offset"] .. "<br>"
end
all_pages = mw.ext.dpl.getPages(params)
else
all_pages = nil
c = mw.wikibase.getEntity(frame.args.category)
if c ~= nill and c["claims"] ~= nil then
all_pages = c["claims"][frame.args.category_property]
end
got_all = true
end
if all_pages ~= nil then
--for _, v in pairs(all_pages) do
for i=1, #all_pages do
if frame.args.back == "false" then
v = all_pages[i]
else
v = all_pages[#all_pages + 1 - i]
end
if frame.args.category == "NONE" then
item_id = v.text
else
item_id = v["mainsnak"]["datavalue"]["value"]["id"]
end
e = mw.wikibase.getEntity(item_id)
if e["claims"] ~= nil and e["claims"][frame.args.item_property] ~= nil then
show = true
--[[
show = false
if frame.args.category == "NONE" then
show = true
end
if e["claims"][frame.args.category_property] ~= nil then
for _, value in pairs(e["claims"][frame.args.category_property]) do
if show == false and value["mainsnak"]["datavalue"]["value"]["id"] == frame.args.category then
show = true
end
found = false
for _, value2 in pairs(categories) do
if value2 == value["mainsnak"]["datavalue"]["value"]["id"] then
found = true
break
end
end
if found == false then
categories[#categories + 1] = value["mainsnak"]["datavalue"]["value"]["id"]
end
end
end
--]]
if show == true then
if (frame.args.category == "NONE" and count_show < args_count) or (frame.args.category ~= "NONE" and page_count >= args_offset and count_show < args_count) then
ret_item = ""
--image = "[[File:SLIKA_ZA_ITEME_U_ARHIVU_HIRES-07.png]]"
image = "https://abcdnk.hr/images/b/bb/SLIKA_ZA_ITEME_U_ARHIVU_HIRES-07.png"
if e["claims"][frame.args.image_property] ~= nil then
image = e:formatPropertyValues(frame.args.image_property).value
--e:getBestStatements(frame.args.image_property)
end
ret_item = ret_item .. "<div class='col-md-2 col-sm-6 col-xs-12' style='margin-bottom: 56px;'>"
if image ~= "" then
ret_item = ret_item .. '<div class="archive-image imgc-fluid imgc-w-100 imgc-h-200-disabled text-center">'
--ret_item = ret_item .. "[[Image:" .. image .. "|class=img-fluid|link=" .. item_id .. "]]"
--ret_item = ret_item .. "[[" .. item_id .. "|" .. image .. "]]"
--ret_item = ret_item .. image
ret_item = ret_item .. "[https://abcdnk.hr/Arhiv/" .. item_id .. " " .. image .. "]"
ret_item = ret_item .. "</div>"
end
--ret_item = ret_item .. "[[" .. params['namespace'] .. ":" .. item_id .. "|"
ret_item = ret_item .. "[https://abcdnk.hr/Arhiv/" .. item_id .. " "
label = e:getLabel()
if label ~= nil then
ret_item = ret_item .. label
else
ret_item = ret_item .. item_id
end
if e["claims"][frame.args.category_property] ~= nil then
local first = true
for _, value in pairs(e["claims"][frame.args.category_property]) do
if first == true then
ret_item = ret_item .. "<br>("
first = false
else
ret_item = ret_item .. ", "
end
local l = mw.wikibase.getLabel(value["mainsnak"]["datavalue"]["value"]["id"])
if l ~= nil then
ret_item = ret_item .. l
else
ret_item = ret_item .. value["mainsnak"]["datavalue"]["value"]["id"]
end
end
if first == false then
ret_item = ret_item .. ")"
end
end
--ret_item = ret_item .. "]]"
ret_item = ret_item .. "]"
ret_item = ret_item .. "</div>"
if frame.args.back == "false" then
ret_items = ret_items .. ret_item
else
ret_items = ret_item .. ret_items
end
count_show = count_show + 1
elseif (count_show >= args_count) then
break
end
end
end
page_count = page_count + 1
end
else
break
end
end
ret = ret .. ret_items
ret = ret .. "</div>"
ret = ret .. "<div>"
--[[
local first = true
for _, value in pairs(categories) do
if first == true then
ret = ret .. '<div class="catlinks d-block" data-mw="interface"><div class="mw-normal-catlinks"><ul>'
first = false
end
ret = ret .. '<li>'
if frame.args.category ~= "NONE" and value == frame.args.category then
ret = ret .. '<b>'
end
ret = ret .. '[' .. frame.args.page_url .. '?category=' .. value .. ' '
l = mw.wikibase.getLabel(value)
if l ~= nil then
ret = ret .. l .. "<br>"
else
ret = ret .. value .. "<br>"
end
ret = ret .. ']'
if frame.args.category ~= "NONE" and value == frame.args.category then
ret = ret .. '</b>'
end
ret = ret .. '</li>'
end
if first == false then
ret = ret .. "</ul></div></div>"
end
--]]
ret = ret .. "</div>"
if frame.args.show_pagination ~= "false" then
ret = ret .. "<div class='row'>"
ret = ret .. "<div class='col-12 d-flex'>"
ret = ret .. '<ul class="pagination ml-auto mr-auto">'
--previous
ret = ret .. '<li class="page-item'
if frame.args.category == "NONE" then
if args_offset < args_count then
ret = ret .. ' disabled'
else
if frame.args.back ~= "false" and args_offset - page_count < args_count then
ret = ret .. ' disabled'
end
end
else
if args_offset <= 0 then
ret = ret .. ' disabled'
end
end
ret = ret .. '">'
ret = ret .. '<span class="page-link">[' .. frame.args.page_url
if frame.args.category == "NONE" then
if frame.args.back == "false" then
offset = args_offset
else
offset = args_offset - page_count
end
else
offset = args_offset - args_count
end
if offset < 0 then
offset = 0
end
ret = ret .. '?offset=' .. offset
if frame.args.category == "NONE" then
ret = ret .. '&back=true'
else
ret = ret .. "&category=" .. frame.args.category
end
ret = ret .. ' Prethodna]</span>'
ret = ret .. '</li>'
-- next
ret = ret .. '<li class="page-item'
if count_show < args_count then
ret = ret .. ' disabled'
end
ret = ret .. '">'
if frame.args.category == "NONE" then
if frame.args.back == "false" then
offset = args_offset + page_count
else
offset = args_offset
end
else
offset = args_offset + args_count
end
ret = ret .. '<span class="page-link">[' .. frame.args.page_url .. '?offset=' .. offset
if frame.args.category ~= "NONE" then
ret = ret .. "&category=" .. frame.args.category
end
ret = ret .. ' Sljedeća]</span>'
ret = ret .. '</li>'
ret = ret .. '</ul>'
ret = ret .. "</div>"
ret = ret .. "</div>"
--[[
number_of_pages = math.ceil(count/args_count)
if number_of_pages > 1 then
ret = ret .. "<div class='row mt-3'>"
ret = ret .. "<div class='col-12'>"
ret = ret .. '<ul class="pagination">'
-- first
ret = ret .. '<li class="page-item'
if args_offset <= 0 then
ret = ret .. ' disabled'
end
ret = ret .. '">'
ret = ret .. '<span class="page-link">[' .. frame.args.page_url .. '?offset=0'
if frame.args.category ~= "NONE" then
ret = ret .. "&category=" .. frame.args.category
end
ret = ret .. ' Prva]</span>'
ret = ret .. '</li>'
-- previous
ret = ret .. '<li class="page-item'
if args_offset <= 0 then
ret = ret .. ' disabled'
end
ret = ret .. '">'
offset = args_offset - args_count
if offset < 0 then
offset = 0
end
ret = ret .. '<span class="page-link">[' .. frame.args.page_url .. '?offset=' .. offset
if frame.args.category ~= "NONE" then
ret = ret .. "&category=" .. frame.args.category
end
ret = ret .. ' Prethodna]</span>'
ret = ret .. '</li>'
last_page_offset = math.floor(count/args_count) * args_count
if last_page_offset == count then
last_page_offset = last_page_offset - args_count
end
for page=1,number_of_pages,1 do
offset = (page - 1) * args_count
ret = ret .. '<li class="page-item'
if offset == args_offset then
ret = ret .. ' active'
elseif (page == 1 and args_offset <= 0) or (page == number_of_pages and args_offset >= last_page_offset) or offset == args_offset then
ret = ret .. ' disabled'
end
ret = ret .. '">'
if offset < 0 then
offset = 0
elseif offset > last_page_offset then
offset = last_page_offset
end
ret = ret .. '<span class="page-link">[' .. frame.args.page_url .. '?offset=' .. offset
if frame.args.category ~= "NONE" then
ret = ret .. "&category=" .. frame.args.category
end
ret = ret .. ' ' .. page .. ']</span>'
ret = ret .. '</li>'
end
-- next
ret = ret .. '<li class="page-item'
if args_offset >= last_page_offset then
ret = ret .. ' disabled'
end
ret = ret .. '">'
offset = args_offset + args_count
if offset > last_page_offset then
offset = last_page_offset
end
ret = ret .. '<span class="page-link">[' .. frame.args.page_url .. '?offset=' .. offset
if frame.args.category ~= "NONE" then
ret = ret .. "&category=" .. frame.args.category
end
ret = ret .. ' Sljedeća]</span>'
ret = ret .. '</li>'
-- last
ret = ret .. '<li class="page-item'
if args_offset >= last_page_offset then
ret = ret .. ' disabled'
end
ret = ret .. '">'
ret = ret .. '<span class="page-link">[' .. frame.args.page_url .. '?offset=' .. last_page_offset
if frame.args.category ~= "NONE" then
ret = ret .. "&category=" .. frame.args.category
end
ret = ret .. ' Posljednja]</span>'
ret = ret .. '</li>'
ret = ret .. '</ul>'
ret = ret .. "</div>"
ret = ret .. "</div>"
end
--]]
end
return ret
end
return p