Jump to content

Josh Bond

Members
  • Posts

    276
  • Joined

  • Last visited

Reputation Activity

  1. Like
    Josh Bond reacted to Rikki for a guide, Template plugins   
    It's often useful to transform raw values in some way, and this is achieved in IPS4 with template plugins. Template plugins take a value, and optionally some arguments, and output some transformed value.
    The syntax for template tags is:
    {pluginkey="<value>" argument="..."} The value can be a normal string, or it could be a variable coming from elsewhere.
    Template plugins can always be used in templates, but some can also be used in CSS files. Those that can are identified below.
     
    Available plugins
    {advertisement="$location"}
    The HTML for the specified ad location
    Parameters
    $location - A valid advertisement location
     
    {datetime="$timestamp" dateonly="[boolean]" norelative="[boolean]" lowercase="[boolean]" short="[boolean]"}
    Shows a time formatted according to the user's locale
    Parameters
    $timestamp - A timestamp to transform into a date
    dateonly - Show only the date (with no time)
    norelative - By default, relative times will be used (e.g. 8 hours ago). To always show an absolute date/time, set this to true.
    lowercase - By default, date strings will be capitalized where necessary (e.g. Yesterday, 8:32pm). Setting this to true ensures it is lowercase, for use in a sentence.
    short - Uses a very short date format (ideal for mobile devices)
     
    {expression="$expression" raw="[boolean]"}
    Allows the result of arbitrary PHP expressions to be inserted into templates. The result of the expression is output.
    Can be used in CSS files.
    Parameters
    $expression - A valid PHP expression that produces output of some kind
    raw - By default, the result of the expression is HTML-escaped. Setting this parameter to true outputs the raw result. Be careful! This can be a security risk.
     
    {file="$file" extension="[string]"}
    Outputs the URL to a file stored by IPS4's file handling classes.
    Can be used in CSS files.
    Parameters
    $file - Either an instance of the \IPS\File class, or a string representing the stored URL to the file
    extension - The file storage extension used to originally store the file, e.g. calendar_Events. If none is specified, core_Attachment is assumed.
     
    {filesize="$sizeInBytes" decimal="[boolean]"}
    Formats the specified filesize and outputs an appropriate human-readable form.
    Parameters
    $sizeInBytes - An integer representing a file size, in bytes, to be formatted
    decimal - Whether the filesize should be treated as a KB (i.e. 1kb = 1024 bytes) or 1 = 1000. All values are always rounded to one decimal place.
     
    {insert="$filename"}
    Includes a PHP script file
    Parameters
    $filename - The filename of the PHP file to include. The output of the file is buffered and output.
     
    {lang="$languageKey" sprintf="[string]" htmlsprintf="[string]" pluralize="[string]" wordbreak="[boolean]" ucfirst="[boolean]"}
    Inserts a phrase from the language system in the user's chosen language.
    Paramaters
    $languageKey - The key of the language phrase to insert
    sprintf - Comma-separated list of values to replace in the language string. These values are HTML-escaped.
    htmlsprintf - Comma-separated list of values to replace in the language string. These values are not escaped. Be careful!
    pluralize - Comma-separated list of values to pass into any pluralize statements in the language string.
    wordbreak - If true, adds <wbr> tags to the returned string to help prevent strings that break the page width.
    ucfirst - Determines whether the first character of the string should be made uppercase.
     
    {member="$propertyToDisplay" id="[integer]" group="[boolean]" raw="[boolean]"}
    Outputs the property or result of a method called on the member object.
    Parameters
    $propertyToDisplay - One of the properties or methods available on the member object. For example: link() or name.
    id - Member ID to load and display. If not specified, the current member is used.
    group - If true, this tag works on the member's group instead (and so the $propertyToDisplay should be one of the group properties or methods instead)
    raw - By default, the returned output is HTML escaped. Setting this to true means the output won't be escaped. Be careful!
     
    {number="$number"}
    Formats a number according to the user's locale (e.g. with commas or periods)
    Parameters
    $number - Number to format
     
    {prefix="$CSSPropertyName" value="[string]"}
    Shortcut tag which automatically prefixes the provided CSS property with vendor prefixes.
    Can be used in CSS files.
    Parameters
    $CSSPropertyName - The property name to prefix. The supported properties are: transition, transform, animation, animation-name, animation-duration, animation-fill-mode, animation-timing-function, user-select, box-sizing, background-size.
    value - the value of the CSS property.
     
    {request="$requestParameter" raw="[boolean]"}
    Inserts the value of a request parameter.
    Paramaters
    $requestParameter - The parameter from the request object to be inserted.
    raw - By default, the returned value is HTML-escaped. If this parameter is true, the output won't be HTML-escaped. Be careful!
     
    {resource="$path" app="[string]" location="[string]" noprotocol="[boolean]"}
    Returns the absolute URL to the specified resource.
    Can be used in CSS files.
    Parameters
    $path - Relative path to the required resource (path is relative to the current theme's /resource directory)
    app - The app to which the resource belongs.
    location - The location (front/admin/global)
    noprotocol - Whether to make the resulting URL protocol-less (i.e. do not include http:// or https:// at the beginning, which can be useful for resources which are not allowed to be loaded over http on an https connection)
     
    {setting="$settingKey" escape="[boolean]"}
    Inserts the value of a system setting.
    Can be used in CSS files.
    Parameters
    $settingKey - Key of the system setting to insert.
    escape - By default, the raw value is output. If you need the value to be HTML-escaped, pass true for this parameter.
     
    {url="$url" csrf="[bool]" base="[string]" seoTemplate="[string]" seoTitle="[string]" seoTitles="[array]" protocol="[\IPS\Http\Url::PROTOCOL_AUTOMATIC|\IPS\Http\Url::PROTOCOL_HTTPS|\IPS\Http\Url::PROTOCOL_HTTP|\IPS\Http\Url::PROTOCOL_RELATIVE]" fragment="[string]" ref="[string]" plain="[bool]" ips="[string]" noprotocol="[bool]"}
    Generates an \IPS\Http\Url instance of a URL.
    Can be used in CSS files.
    Parameters
    csrf - Adds the CSRF Key to the query string
    base - The base to use, if this is an internal URL.
    seoTemplate - The SEO template for this URL to construct a friendly URL.
    seoTitle - The title to use for the friendly URL.
    seoTitles - An array of friendly URL titles. Not used if seoTitle is used.
    protocol - One of the \IPS\Http\Url::PROTOCOL_* constants to define the protocol to use.
    fragment - Adds a fragment to the end of the URL.
    ref - Sets a base64 encoded referring URL as a query string to the URL (used in conjunction with \IPS\Request::i()->referrer()).
    plain - To output the string value of the URL raw. If omitted, the string value is run through htmlspecialchars().
    ips - If this is an internal IPS URL to the documentation. Ignores all other parameters.
    noprotocol - Makes the URL protocol relative regardless of the defined protocol. This is deprecated, and \IPS\Http\Url::PROTOCOL_RELATIVE should be used instead.
×
×
  • Create New...