Modul:ListItems
Izvor: abcDNK
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-6 arhive-gallery-item d-flex flex-column'>" if image ~= "" then ret_item = ret_item .. '<div class="archive-image imgc-fluid imgc-w-100 imgc-h-200-disabled text-center h-100">' --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 archive-pagination'>" 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