Salem Logo Small.png
The Official Unofficial Wiki for the Paradox / Seatribe game

Salem: The Crafting MMO

PM Sabinati on the forums with issues, or post in the Thread

Template:PropVals

From Salem Wiki
Jump to: navigation, search
    Template documentation (for the template shown above, sometimes hidden or invisible)

    Description

    This is the main-entry-point of a complex template-class
    It is used to automatically list all the values of a property of a page as an un-ordered list.
    This generated-output will be used in {{Infobox}} to automatically show relevant info.
    See these pages for documentation on functions used:
    Other pages with relevant info are:

    Functional logic

    • {{PropVals}} is used as a wrapper to inject extra arguments into {{PropVals/List}}, using the output of {{PropVals/getGroupedRecords}}.
      1. {{PropVals/List}} is used as a wrapper to inject extra arguments into {{PropVals/Print Entry}}, to output each entry of a grouped-record under a common group-heading when appropriate, as list-items <li>...</li>.
        • {{PropVals/Print Entry}} is used to display each entry in a visually appealing way, by outputting an icon-image followed by a link to the page of the object followed by the amount when requested.
          It uses {{PropVals/Split}} to extract the name- and amount-fields from the entry.
      2. {{PropVals/getGroupedRecords}} is used as a wrapper to inject extra arguments into {{PropVals/Group}}, using the output of {{PropVals/getRecords}} as input, to output grouped-records, for further processing by {{PropVals}}.
        1. {{PropVals/Group}} is used as a wrapper to inject extra arguments into {{PropVals/Group/NextPart}}, using records as input, to output grouped-records.
          • {{PropVals/Group/NextPart}} is used as a helper-template, to output a grouped-record that starts with the group-heading followed by entries.
            An entry is a record with its heading-field removed, that has the same heading-field as the previous record.
            It uses {{PropVals/Group/heading}} and {{PropVals/Split}} to separate the fields in the record.
            The structure of a record is: Objectname{{{sep}}}Amount{{{sep}}}Groupheading
        2. {{PropVals/getRecords}} is used to retrieve all the values of a property of a page, and output them as records for further processing by {{PropVals/getGroupedRecords}}.

    Syntax

    Type the below code somewhere inside {{Infobox}} or a page:
    {{PropVals |prop=RequiresObj |page={{FULLPAGENAME}} |sep={{{sep|;}}} |grpsep={{{grpsep|/\}}} |showamount={{{showamount|no}}} }}

    Examples

    1. {{PropVals|prop=RequiresObj|page=Help:Infobox/testdata|showamount=y}} gives:
    2. {{PropVals|prop=RequiresObj|page=Help:Infobox/testdata|showamount=y|debug=y}} gives:
      • {{PropVals/List|sep=;|showamount=y|Flint;1|Stone;3}}
      • {{PropVals/List|sep=;|showamount=y|heading=Startpost|Lime;15|Flint;15|Stone;30}}
      • {{PropVals/List|sep=;|showamount=y|heading=Cornerpost|Lime;8|Flint;8|Stone;15}}
      • {{PropVals/List|sep=;|showamount=y|heading=|Board;10|Nails;4}}

    Sub-templates


    Visit Template:PropVals/doc to edit this text! (How does this work?)
    Personal tools
    Namespaces

    Variants
    Actions
    Navigation
    Game Development
    Contributing
    Other
    Toolbox