Module:Navbar: Difference between revisions

Jump to navigation Jump to search
Content added Content deleted
(handle expensive parser function limit without killing the box)
(also trap talk title)
Line 21: Line 21:
function getTitle( pageName )
function getTitle( pageName )
pageName = trim( pageName );
pageName = trim( pageName );
local page_title, talk_page_title;
if mw.ustring.sub(pageName, 1, 1) == ':' then
if mw.ustring.sub(pageName, 1, 1) == ':' then
return mw.title.new( mw.ustring.sub(pageName, 2) );
page_title = mw.title.new( mw.ustring.sub(pageName, 2) );
else
else
return mw.title.new( pageName, 'Template' );
page_title = mw.title.new( pageName, 'Template' );
end
end
if page_title then
talk_page_title = page_title.talkPageTitle;
else
talk_page_title = nil;
end
return page_title, talk_page_title;
end
end


Line 33: Line 43:
end
end
local good, title;
local good, title, talk_title;
good, title = pcall( getTitle, args[1] );
good, title, talk_title = pcall( getTitle, args[1] );
if not good then
if not good then
return error('Expensive parser function limit exceeded');
return error('Expensive parser function limit exceeded');
Line 44: Line 54:
local mainpage = title.fullText;
local mainpage = title.fullText;
local talkpage = title.talkPageTitle and title.talkPageTitle.fullText or ''
local talkpage = talk_title and talk_title.fullText or ''
local editurl = title:fullUrl( 'action=edit' );
local editurl = title:fullUrl( 'action=edit' );