Mô đun:Bad title suggestion

Tài liệu mô đun[xem] [sửa] [lịch sử] [làm mới]

Mô đun này sẽ đề xuất tiêu đề hợp lệ cho thông báo "Tựa trang sai" tại MediaWiki:Title-invalid-characters. Khi một thành viên nhập tên trang chứa ký tự không hợp lệ, mô đun này sẽ kiểm tra tiêu đề đã cho đến ký tự không hợp lệ đầu tiên. Nếu nó tồn tại, {{Did you mean box}} sẽ được hiển thị.

Cách sử dụng sửa

{{#invoke:Bad title suggestion|main|invalid_char|bad_title_encoded}}

Đối với trường hợp tại MediaWiki:Title-invalid-characters, nó sẽ là:

{{#invoke:Bad title suggestion|main|$1|$2}}

Ví dụ sửa

  • Foobar>: {{#invoke:Bad title suggestion|main|>|Foobar>}}

(không hiển thị gì)

  • <Foobar>: {{#invoke:Bad title suggestion|main|<|#60;Foobar#62;}}

(không hiển thị gì)

local getArgs = require("Module:Arguments").getArgs
local p = {}

function p.main(frame)
	local args = getArgs(frame)
	-- The invalid character, e.g. ">" or "}"
	local chr = args[1]
	-- The escaped bad title, e.g. "Foobar&#62;" or "Foobar&#124;text"
	local title = args[2]
	-- A pipe (|) as the invalid character is a special case; it is not
	-- escaped, so instead the module thinks it got two empty arguments
	-- and the title as the third argument.
	if chr == nil and title == nil then
		chr = "|"
		title = args[3]
	end
	if chr == nil or title == nil then
		return ""
	end

	-- Determine the suggested title by taking a prefix of the bad title
	-- up to the first invalid character. Only display the suggestion box
	-- if the page exists.
	local index = mw.ustring.find(title, mw.text.nowiki(chr), 1, true)
	if index == nil then
		return ""
	end
	local page = mw.title.new(mw.ustring.sub(title, 1, index - 1))
	if page == nil or not page.exists then
		return ""
	end
	return frame:expandTemplate{
		title = "No article text/Did you mean box",
		args = { 'Có phải bạn muốn xem [[:' .. page.fullText .. ']]?' }
	}
end

return p