Changes

24672 dəyişikliyi WikiSysop (Müzakirə) tərəfindən geri qaytarıldı.
Sətir 238: Sətir 238:        +
--[[--------------------------< L I N K _ P A R A M _ O K >---------------------------------------------------
    +
checks the content of |title-link=, |series-link=, |author-link= etc for properly formatted content: no wikilinks, no urls
 +
 +
Link parameters are to hold the title of a wikipedia article so none of the WP:TITLESPECIALCHARACTERS are allowed:
 +
# < > [ ] | { } _
 +
except the underscore which is used as a space in wiki urls and # which is used for section links
 +
 +
returns false when the value contains any of these characters.
 +
 +
When there are no illegal characters, this function returns TRUE if value DOES NOT appear to be a valid url (the
 +
|<param>-link= parameter is ok); else false when value appears to be a valid url (the |<param>-link= parameter is NOT ok).
 +
 +
]]
 +
 +
local function link_param_ok (value)
 +
local scheme, domain;
 +
if value:find ('[<>%[%]|{}]') then -- if any prohibited characters
 +
return false;
 +
end
 +
 +
scheme, domain = split_url (value); -- get scheme or nil and domain or nil from url;
 +
return not is_url (scheme, domain); -- return true if value DOES NOT appear to be a valid url
 +
end
 +
 +
 +
--[[--------------------------< L I N K _ T I T L E _ O K >---------------------------------------------------
 +
 +
Use link_param_ok() to validate |<param>-link= value and its matching |<title>= value.
 +
 +
|<title>= may be wikilinked but not when |<param>-link= has a value.  This function emits an error message when
 +
that condition exists
 +
 +
]]
 +
 +
local function link_title_ok (link, lorig, title, torig)
 +
local orig;
 +
 +
if is_set (link) then -- don't bother if <param>-link doesn't have a value
 +
if not link_param_ok (link) then -- check |<param>-link= markup
 +
orig = lorig; -- identify the failing link parameter
 +
elseif title:find ('%[%[') then -- check |title= for wikilink markup
 +
orig = torig; -- identify the failing |title= parameter
 +
end
 +
end
 +
 +
if is_set (orig) then
 +
table.insert( z.message_tail, { set_error( 'bad_paramlink', orig)}); -- url or wikilink in |title= with |title-link=;
 +
end
 +
end