Template:Ulistproc

From Runes of Magic Wiki
Jump to: navigation, search

This replaces my original template using the #while function to control the looping.

The difference between this and my original listproc templates is that this approach has no limit to the length of the lists. We do still have a list length issue because of the 99 Expensive Parser Functions limit. For instance, a Template:Mob page for a Merchant or Instructor that uses the Drops fields to list the For Sale items, or a Boss page that lists everything they drop, will exceed this limit causing the item icons to stop rendering once this limit is surpassed. At this time there is nothing we can do about this limit.


This duplicates, in wikicode, a function, that I miss very much from ZAM. We had a wiki function called #commalist that would take multiple lists and process them against a mask to create displays.

The basic idea is to have a group of comma-delimited lists, each of which defines a part of what I need. Note: MediaWiki does not allow recursion.

See also: Template:Clistproc, Template:nolistproc

Dependent Extensions

This template makes extensive use of #SimpleSort, written by Clark Verbrugge (MediaWiki user clump). This uses the "keyed" option to sort list 2 thru mobtypes in the same order as list1 to maintain the connections.

#while from Extension:Loops (by David M. Sledge and Daniel Werner) is also used/needed.

Usage

{{ulistproc
|pre=
|linker=
|list1=
|list3=
|list4=
|list5=
|notes=
|mobtypes=
|type=
|noprefix=
|usebr=
|px=
|ol=
|noicon=
|sorted=
|}}

pre=

Display this before each call to the linker. Added specifically for Template:BWItem to display "Quest " to the left of each quest name this item is needed for.

list1= to list5=

With the above fields, we are going to extract the first value from each and use it to build a call to [[Template: {{{linker|}}}]] while building an Unordered List. list1 controls the output. if list1 has fewer elements than the others, it will stop when it runs out of list1. If list1 has more, it will treat the short lists as blanks. list2 is ONLY needed if you need to be able to use alternate names for values in list1. If list1 contains a blank element processing will stop there.

notes=

if the value is not blank it is placed to the right of the linker call, inside parentheses, as a note

mobtypes=

This is only needed IF linker=moblink. This allows you to tell if each mob in the list is a Monster, NPC, Passive or Ambience.

type=

If you are using this for zonelink or poilink calls on a Quest, Object or Mob page, you use this to tell the linker to add the ...by Zone or ...by POI category. Generally, suers do not need to worry about this, as the Quest, Object or Mob template will set the type= when it calls Ulistproc.

noprefix=

Currently, this only applies if linker=questlink.

usebr=

If NOT blank, make this a vertical list using <br /> instead of <ul>. Default is to make this an Unordered List.
px=
Used only by classlink to set the class icon size
ol
(switch) use Ordered List instead of the default of Unordered List. Ordered List means the list is numbered instead of using bullets.
noicon
passed to linker. Used if linker=itemlink
sorted
(switch) IF non-blank, sort the lists using #SimpleSort!
Linker-Specific Notes
Linker Skeleton Parameters Notes
moblink
{{ulistproc
|linker=moblink
|list1=
|list2=
|mobtypes=
|}}
list1 mob name
list2 not likely to be needed
mobtypes NPC, Monster, Passive or Ambience
itemlink
{{ulistproc
|linker=itemlink
|list1=
|list2=
|list3=
|list4=
|notes=
|sorted=y
|}}
list1 items
list2 not needed
list3 quantity
list4 quality
notes most useful on lists of armor to display the armor type
sorted used by Template:Mob to sort the list of dropped items
questlink
{{ulistproc
|linker=questlink
|list1=
|list2=
|list3=
|list4=
|list5=
|}}
list1 quest names
list2 actual quest name with missing punctuation (if any)
list3 level
list4 questtype (Daily, Public, Epic, etc
list5 party (Group, Raid, Group 4, etc)


Bludwyng
This template was created, or is maintained, by Bludwyng (contribs).

In-game, you can find me on Aeterna. I regularly play: Mithrandyr, Bludwyng, Grymjack


Bludwyng's: PagesTemplatesWants/HavesSandbox