Модуль:Оформление: различия между версиями

Материал из Posmotrelisu
Перейти к навигации Перейти к поиску
Строка 136: Строка 136:
Приятного времяпровождения!
Приятного времяпровождения!
</div>]=]
</div>]=]
output=output..text
output=output..text


text =  
text =  
[=[{| style="width: 100%; margin-top: 0.5em; background-color: #fcfffc; border: 1px #ccc solid;"
[=[{| style="width: 100%; margin-top: 0.5em; background-color: #fcfffc; border: 1px #ccc solid;"
|style="width: 300px; text-align: center; "|
|style="width: 300px; text-align: center; "|
<div style="font-size:120%; margin: 0; padding: 0.5em;">
<div style="font-size:120%; margin: 0; padding: 0.5em;">
'''Избранная статья'''</div>
'''Избранная статья'''</div>
|}]=]
|}]=]
output = output..text
output = output..text


-- Добавляем Текст избранной станицы
-- Добавляем Текст избранной станицы
output = output..args[1]
if args[1] == nil then
output = output..'Не указана "Избранная статья", или она не выбрана'
else
output = output..args[1]
end





Версия 20:57, 21 августа 2024

Для документации этого модуля может быть создана страница Модуль:Оформление/doc

local p = {}

p.vkladki= function ( frame )
local args = require('Module:Arguments').getArgs(frame, {
	trim = false,
	removeBlanks = false})

if args[1] == nil then return '<font color="red">Нет заголовка, видимо [[Шаблон:Вкладки]] вызван без параметров</font>' end
if args[2] == nil then return '<font color="red">Нет текста вкладки, видимо [[Шаблон:Вкладки]] вызван без 2-го параметра</font>' end

local h='<div style="text-align:left;border-bottom:1px solid #aaaaaa;margin-top:10px"><p>'
local b='<div>'

h=h..'<span class="tab_click tab_active" id="tab_id_'..args[1]..'">'..args[1]..'</span>'
b=b..'<div id="tab_id_'..args[1]..'">'..args[2]..'</div>'

local i=3

while true do
	if args[i] == nil then break end
	h=h..'<span class="tab_click" id="tab_id_'..args[i]..'">'..args[i]..'</span>'
	i=i+2
end

h=h..'</p></div>'

i=4

while true do
	if args[i] == nil then break end
	b=b..'<div id="tab_id_'..args[i-1]..'" style="display: none;">'..args[i]..'</div>'
	i=i+2
end

b=b..'</div>'

return h..b

end


-- Создать строку в таблице
--	ktable 	это таблица ключей
--	row 	это таблица переданных значений
--	empty	это элемент, который подставляется в строку, если не было переданного значения
function create_row ( ktable, row, empty )
local row_str=""

for j in ipairs(ktable) do
	if row[ktable[j]] ~= nil then 
	row_str=row_str..'<td>'..row[ktable[j]]..'</td>'
	else 
	row_str=row_str..'<td>'..empty..'</td>'
	end
end
return row_str 
end 

-- Сгенерировать таблицу с использованием ключей
-- 
p.tablekey = function ( frame )
local args = require('Module:Arguments').getArgs(frame)
if args["ключи"] == nil then 											-- обязательный параметр
	return "Не заданы ключи для таблицы" 
end

local result=""
if args["атрибуты"] ~= nil then
	result="<table "..args["атрибуты"].." >"
else
	result="<table "
	if args["класс"] ~= nil then result=result..'class="'..args["класс"]..'" ' end
	if args["стиль"] ~= nil then result=result..'style="'..args["класс"]..'" ' end 
	result=result..' >'
end 

local empty=""
if args["пусто"] ~= nil then  empty=args["пусто"] end

local keys = {}
keys = mw.text.split (args["ключи"], "%s")

local row={}															-- сюда записываются пары ключ=значение 
local i=1
if args[i] == "заголовок" then
	i=2
	while true do
	if i == #keys+2 then break end 
	result=result..'<th>'..args[i]..'</th>'
	i=i+1
	end
end	

while true do
	if args[i] == nil then 
		if next(row) == nil then break end 							-- если пусто, то уходим
	result=result..'<tr>'..create_row( keys, row, empty )..'</tr>'	-- на случай, если что-то осталось
	break
	end
		
	if args[i]=="конец строки" then 
		result=result..'<tr>'..create_row( keys, row, empty )..'</tr>'
		i=i+1
		row={}
	else 
        row[args[i]]=args[i+1]
		i=i+2
	end
end

return result..'</table>'

end

--Ниже будет код для дам, кавалеров и полотен дня.

p.museum = function ( frame )
local args = require('Module:Arguments').getArgs(frame, {
	trim = false,
	removeBlanks = false})

local output

local text = 
[=[{| style="width: 100%; margin-top: 0.5em; background-color: #fcfffc; border: 1px #ccc solid;"
	|style="width: 300px; text-align: center; "|
	<div style="font-size:120%; margin: 0; padding: 0.5em;">
	'''Экспозиция Музея Посмотрелья'''</div>
	|}]=]
output = text

text = 
[=[<div style="text-align: center; margin: 0; padding: 0.5em;">'''Добро пожаловать в наш замечательный музей!'''<br>
Мы рады представить взору различные объекты культурного наследия собранные в нашей коллекции.<br>
Каждый образец искусства снабжён различными ссылками которые позволят вам глубже погрузиться в контекст элементов экспозиции, так что не стесняйтесь переходить по ним.<br>
Приятного времяпровождения!
</div>]=]
output=output..text

text = 
[=[{| style="width: 100%; margin-top: 0.5em; background-color: #fcfffc; border: 1px #ccc solid;"
	|style="width: 300px; text-align: center; "|
	<div style="font-size:120%; margin: 0; padding: 0.5em;">
	'''Избранная статья'''</div>
	|}]=]
output = output..text

-- Добавляем Текст избранной станицы
if args[1] == nil then
		output = output..'Не указана "Избранная статья", или она не выбрана'
	else
		output = output..args[1]
end



return output

end

return p