Streams Plugin
Addons
addon
The addon
function returns a decorated addon instance or null
if not found. The identifier
argument can be a dot notation namespace
or unique slug
.
{{ addon('anomaly.module.users').name }}
// Users Module
{{ addon('pages').namespace('settings') }}
// anomaly.module.pages::settings
addons
The addons
method returns a decorated collection of addons. An optional type
argument will restrict the type of addon returned.
{{ addons() }} // All addons.
// All enabled modules.
{% for module in addons('modules').enabled() %}
<p>{{ module.name }} is enabled.</p>
{% endfor %}
User Agent
agent_is
The agent_is
function returns if the agent matches a given string
.
{% if agent_is("iPhone") %}
<p>Sweet iPhone bro.</p>
{% endif %}
agent_is_mobile
The agent_is_mobile
function returns whether the user agent is a mobile browser or not.
{% if agent_is_mobile() %}
{{ asset_style('theme::mobile.css') }}
{% endif %}
Assets
asset_add
Adds an asset
to a collection
. An optional array of flags
is also available.
{{ asset_add("theme.js", "theme::js/vendor/*", ["min"]) }}
asset_script
The asset_script
function returns the script
tag to the given collection
.
{{ asset_script("theme.js", ["min"]) }}
asset_scripts
The asset_scripts
function returns an array of script
tags for the assets within a given collection
.
{% for script in asset_scripts("scripts.js", ["min"]) %}
{{ script|raw }}
{% endfor %}
constants
The constants
function returns a script
tag containing a number of often required javascript constants necessary for field types and potentially other components to work correctly. Make sure you include it in your themes!
{{ constants() }}
Learn more about JS constants.
Authorization
auth_check
The auth_check
function returns whether a user is logged in or not.
{% if auth_check() %}
Hello {{ auth_user().display_name }}!
{% endif %}
auth_guest
The auth_guest
function returns the opposite of auth_check
.
{% if auth_guest() %}
<a href="{{ url_route('lgoin') }}">Login</a>
{% endif %}
Theming
Breadcrumb
The breadcrumb
function renders a Bootstrap breadcrumb.
{{ breadcrumb() }}
You can use this function as an array to generate your own breadcrumb:
<ol class="breadcrumb">
{% for breadcrumb, url in breadcrumb() %}
{% if loop.last %}
<li class="breadcrumb-item active">{{ trans(breadcrumb) }}</li>
{% else %}
<li class="breadcrumb-item"><a href="{{ url }}">{{ trans(breadcrumb) }}</a></li>
{% endif %}
{% endfor %}
</ol>
favicons
The favicons
function renders multiple favicon tags based on a single source
.
You can use this function to automatically generate comprehensive and modern favicon tags:
{{ favicons('theme::img/favicon.png') }}
The above function will generate the below favicons using the streams::partials/favicons
view:
<link rel="icon" type="image/png" href="{{ image(source).resize(16, 16).path }}" sizes="16x16"/>
<link rel="icon" type="image/png" href="{{ image(source).resize(32, 32).path }}" sizes="32x32"/>
<link rel="icon" type="image/png" href="{{ image(source).resize(96, 96).path }}" sizes="96x96"/>
<link rel="icon" type="image/png" href="{{ image(source).resize(128, 128).path }}" sizes="128x128"/>
<link rel="icon" type="image/png" href="{{ image(source).resize(196, 196).path }}" sizes="196x196"/>
<link rel="apple-touch-icon-precomposed" sizes="57x57" href="{{ image(source).resize(57, 57).path }}"/>
<link rel="apple-touch-icon-precomposed" sizes="60x60" href="{{ image(source).resize(60, 60).path }}"/>
<link rel="apple-touch-icon-precomposed" sizes="72x72" href="{{ image(source).resize(72, 72).path }}"/>
<link rel="apple-touch-icon-precomposed" sizes="76x76" href="{{ image(source).resize(76, 76).path }}"/>
<link rel="apple-touch-icon-precomposed" sizes="114x114" href="{{ image(source).resize(114, 114).path }}"/>
<link rel="apple-touch-icon-precomposed" sizes="120x120" href="{{ image(source).resize(120, 120).path }}"/>
<link rel="apple-touch-icon-precomposed" sizes="144x144" href="{{ image(source).resize(144, 144).path }}"/>
<link rel="apple-touch-icon-precomposed" sizes="152x152" href="{{ image(source).resize(152, 152).path }}"/>
Miscellaneous
carbon
The carbon
function provides access to Carbon.
{{ carbon().today() }}
// 2016-06-24 00:00:00
{{ carbon('-1 day', config('app.timezone')) }}
// "2016-08-17 15:05:26"
{{ carbon('-1 day', config('app.timezone')).diffInHours() }}
// 24
Currency
currency_format
The currency_format
function returns the number
in currency format proceeded by the system configured currency
symbol.
You may also specify an optional currency
code to use specifically. The system configured currency will be used by default.
Lastly you can specify an array of options
to change configured behavior. Available options are direction
, separator
, decimals
, and point
.
{{ currency_format(number) }}
{{ currency_format(number, currency) }}
{{ currency_format(number, currency, options) }}
// Sum up the "amount" of a collection of entries.
// Assuming "amount" is an integer field type.
{{ currency_format(payments.sum('amount.value')) }}
// $12,712.93
currency_normalize
The currency_normalize
function returns the number
in currency format without the system configured currency
symbol.
You may also specify an optional currency
code to use specifically. The system configured currency will be used by default.
Lastly you can specify an array of options
to change configured behavior. Available options are direction
, separator
, decimals
, and point
.
{{ currency_normalize(number) }}
{{ currency_normalize(number, currency) }}
{{ currency_normalize(number, currency, options) }}
// Sum up the "amount" of a collection of entries.
// Assuming "amount" is an integer field type.
{{ currency_normalize(payments.sum('amount.value'), 'USD', {'separator': ''}) }}
// 12712.93
CSRF
csrf_token
The csrf_token
function returns the CSRF token value.
{{ csrf_token() }}
// Uge4akcwu7HyGLEeJ3uJseqUCRxk9Yz6B7Yi0kkG
csrf_field
The csrf_field
function returns the name
of the CSRF field.
{{ csrf_field() }}
// <input type="hidden" name="_token" value="Uge4akcwu7HyGLEeJ3uJseqUCRxk9Yz6B7Yi0kkG">
Entries
entries
The entries
function provide you with a convenient, fluent interface to fetch stream entries.
<ul>
{% for category in entries('posts', 'categories').get() %}
<li>
{{ category.slug }}
</li>
{% endfor %}
</ul>
You can interact with entries
before firing get
just like you would a query builder.
{% set products = entries('store', 'products')
.where('featured', true)
.order_by('rating','DESC')
.get() %}
<ul>
{% for product in products %}
<li>
{{ product.name }}
</li>
{% endfor %}
</ul>
The entry criteria is extendable! To learn how to add your own functionality to queries refer to the criteria documetation.{.tip}
query
The query
function aids in fetching database records that are not streams.
{% set jobs = query()
.from('failed_jobs')
.orderBy('failed_at', 'DESC'
.get() %}
You can also provide a model to use instead of specifying with from(table)
:
{% set users = query('App\Example\TestModel')
.where('active', true)
.orderBy('failed_at', 'DESC'
.get() %}
In order to leverage model criteria you must provide a model.{.notice}
Environment
env
You can access environmental variable values with the env
function. This function behaves just like the Laravel helper function.
{% if env(key, default) %}
True
{% endif %}
{% if env("APP_DEBUG") %}
You are debugging!
{% endif %}
Footprint
request_time
The request_time
function returns the elapsed time in seconds for the request. You can optionally specify the number of decimals
to return. The default is 1
.
{{ request_time(3) }}
// 0.551
memory_usage
The memory_usage
function returns the memory used by the request. You can optionally specify the number of decimals
to return. The default is 1
.
{{ memory_usage(2) }}
// 6.51 m
Images
Learn more about working with images.
img
The img
function returns an image instance with <img>
as the default output
method.
{{ image('theme::img/logo.png')|raw }}
// <img src="/app/default/assets/addons/default/mysite/example-theme/resources/images/logo.png?v=1549566000" alt="Logo">
You can fluently chain methods together to manipulate the image:
{{ image('theme::img/logo.png').resize(1000).quality(60)|raw }}
// <img src="/app/default/assets/addons/default/mysite/example-theme/resources/images/082f74498bc34c1f37fbd56818417350.png?v=1549566000" alt="Logo">
You can also specify alternate output
methods:
<img src="{{ image('theme::img/logo.png').path }}">
// /app/default/assets/addons/default/anomaly/example-theme/resources/images/logo.png?v=1549566000
<img src="{{ image('theme::img/logo.png').height(95).inline|raw }}">
// <img alt="Logo" height="95" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMcAAABfCAYAAABcMNP=">
Requests
request
The request
function returns the request object. For example you can get the route's id
parameter like this:
{{ request().route('id') }}
// 123
request_get
The request_get
function returns $_GET
parameters from the request.
{{ request_get(parameter, default) }}
request_method
The request_method
function returns the request's method verb
.
{% if request_method() == 'GET' %}
<p>Lemme GET that for you.</p>
{% endif %}
request_root
The request_root
function returns the request root.
{{ request_root() }}
// http://domain.com/
request_path
The request_path
function returns the request path.
{{ request_path() }}
// /the/uri/path
request_segment
The request_segment
function returns the specified URI segment.
{{ request_segment(1) }}
// admin
request_is
The request_is
function returns if the request path matches a pattern
. If multiple patterns are provided then true
will be returned if any
match.
{{ request_is("myaccount/*", "account/*") }}
// true or false
request_ajax
The request_ajax
function whether or not the request is ajax
.
{{ request_ajax() }}
// true or false
Session
session_get
The session_get
function returns a value from session.
{{ session_get(key) }}
{{ session_get(key, default) }}
session_pull
The session_pull
function returns and removes a value from session.
{{ session_pull(key) }}
{{ session_pull(key, default) }}
session_has
The session_has
function returns whether the session has a value by key
or not.
{% if session_has(key) %}
<p>Party in da house!</p>
{% endif %}
Strings
Learn more about working with strings.
str_humanize
The str_humanize
function returns the humanized
version of a string. The separator
is -
by default. This is a common way to transform slugs into human readable names.
{{ str_humanize(string, separator) }}
str_truncate
The str_truncate
function returns a truncated string
of a given length
while preserving words. The end
argument defaults to ...
.
{{ str_truncate(string, length, end) }}
str_is
The str_is
function returns whether or not the provided string
matches the pattern
. You can use *
in your pattern
as a wildcard.
{% if str_is(pattern, string) %}
<p>The pattern matches!</p>
{% endif %}
str_camel
The str_camel
function returns the camel case version of a string
.
{{ str_camel(string) }}
str_studly
The str_studly
function returns the studly cased version of a string
.
{{ str_studly(string) }}
str_random
The str_random
function returns a random string. The length
argument defaults to 16.
{{ str_random(10) }}
Localization
trans
The trans
function returns the translated string from a key
.
{{ trans("anomaly.module.users::addon.name") }}
// Users Module
You can optionally provide an array of data to replace
in the string as well as a locale
. The current locale will be used by default.
{{ trans(key, replace, locale) }}
trans_has
The trans_has
function returns whether or not the given translation key
exists. You may also specify an optional locale
. The current locale will be used by default.
{{ trans_has(key) }}
{{ trans(key, locale) }}
URLs
Learn more about URL generation.
url
The url
function returns an absolute URL to a given path
. An array of extra
parameters may be passed to build a query string. Lastly a secure
flag (true or false) may also be used to force HTTPS in the generated URL. Your current request protocol will be used by default.
{{ url(path) }}
{{ url(path, extra) }}
{{ url(path, extra, secure) }}
url_secure
The url_secure
function returns an absolute URL to a given path
while forcing HTTPS. An array of extra
parameters may be passed to build a query string.
{{ url_secure(path) }}
{{ url_secure(path, extra) }}
url_route
The url_route
function returns the URL to a given named route
. An array of extra
parameters may be passed to build a query string and replace variables in the route path. Lastly a secure
flag (true or false) may also be used to force HTTPS in the generated URL. Your current request protocol will be used by default.
{{ url_route(path) }}
{{ url_route(path, extra) }}
{{ url_route(path, extra, secure) }}
Views
view
The view
function returns a rendered view
. This method is similar to Twig's include
tag.
{{ view(view) }}
You may also pass an array of data
to use within the specified view
.
{{ view('example.module.test::example/view', {'foo': 'Bar'}) }}
parse
The parse
function parses a string as a template.
{{ parse(template) }}
You may also pass an array of data
to use within the specified template
.
{{ parse("This is a template {{ foo }}", {"foo": "bar"}) }}
This can be helpful if you need to render content from something like a textarea value.
{{ parse(entry.simple_content.value) }}
value
The value
function value parses a string for an entry
.
{{ value(parameters, entry) }}
layout
The layout
method checks for and returns a theme layout
or returns the default
if it's not found. The default layout is theme::layouts/default
by default.
{% extends layout(layout) %}
{% extends layout(layout, default) %}
Most modules specify a layout named after the addon and default normally. This way if it exists great, otherwise use the default layout which always exists.
{% extends layout('posts') %}