Difference between revisions of "Template:Emptyor"

From blackwiki
Jump to navigation Jump to search
imported>Johnuniq
(rv to version at 18:42, 3 January 2018: per Module talk:WikidataIB#Function emptyor; the module is more efficient, more flexible if tweaks are needed, and less klunky)
imported>Pppery
(Restore my version using Template:MultiReplace instead of a function in [[Module:WikidataIB]; it is not "less klunky" or "more flexible" to pass the list of replacements to a template instead of putting them in a module with separate string:gsub calls)
Line 1: Line 1:
{{#invoke:WikidataIB |emptyor |{{{1|}}}}}<noinclude>
+
{{if||{{MultiReplace|{{{1}}}|plain=no|</?%w*>||%p||{{=}}|}}|{{{1}}}}}<noinclude>
 
{{documentation}}</noinclude>
 
{{documentation}}</noinclude>

Revision as of 18:14, 6 January 2018

{{{1}}}

Template documentation[view] [edit] [history] [purge]

Description

Emptyor tests a piece of text to ascertain whether it's effectively empty or contains some text. It is a wrapper for the function emptyor() in Module:WikidataIB.

If the unnamed parameter consists only of html tags, punctuation (e.g. Wiki-markup) and whitespace, then Emptyor returns nothing; otherwise it returns the parameter unchanged.

In designing a Wikidata-enabled infobox, we may need to apply markup, such as italics, to a value fetched from Wikidata. However, if that value is blank, then the markup would normally produce a label with a blank entry for its data. Using this template will suppress such rows when nothing is returned from Wikidata.

Usage

Example:

label99 = This Field
data99  = 
	{{emptyor
		| <i>{{#invoke:WikidataIB |getValue |P666 |name=thisfield |qid={{{qid|}}} |suppressfields={{{suppressfields|}}} |fetchwikidata={{{fetchwikidata|}}} |onlysourced={{{onlysourced|}}} |noicon={{{noicon|}}} |list={{{list|}}} | {{{thisfield|}}} }}</i>
	}}

If the getValue call returns anything, the infobox will show a row labelled "This field", with the value returned in italics.

If the getValue call returns nothing, the infobox will not show the row "This field".