Grav - Filtros y funciones de Twig

En este capítulo, estudiemos sobre Twig Filters and Functions. Los filtros se utilizan para formatear los datos de la manera que desee con la salida requerida también. Las funciones se utilizan para generar contenidos.

Las plantillas Twig son archivos de texto que contienen expresiones y variables reemplazadas por valores. Twig usa tres tipos de etiquetas.

  • Output tags - La siguiente sintaxis se utiliza para mostrar el resultado de las expresiones evaluadas aquí.

{{  Place Your Output Here  }}
  • Action Tags - La siguiente sintaxis se utiliza para ejecutar declaraciones aquí.

{%  executable statements are placed here  %}
  • Comment tags - La siguiente sintaxis se utiliza para escribir comentarios en el archivo de plantilla Twig.

{#  write your comment here  #}

Filtros Twig

Twig Filters utiliza el |carácter para aplicar filtros a la variable Twig seguido del nombre del filtro. Los argumentos se pueden pasar entre paréntesis de manera similar a las funciones Twig.

La siguiente tabla muestra los filtros Twig utilizados en Grav -

No Señor. Filtro y descripción Ejemplo
1

Absolute URL

Toma la ruta relativa y la convierte en una URL absoluta.

'<img src="/some/path/img.jpg"/>' |absolute_url

se convierte en -

<img src="http://learn.getGrav.org/some/path/img.jpg" />
2

Camelize

Convierte una cadena al formato CamelCase.

'contact_us'| camelize

se convierte en -

ContactUs
3

Contains

si encuentra la cadena.

'This is some string' | contains('some')

la salida es -

1
4

Defined

Puede comprobar si alguna variable está definida o no. Si la variable no está definida, puede proporcionar un valor predeterminado.

set header_image_width = 
page.header.header_image_width|defined(900)

Establece header_image_width con valor 900 si no está definido.

5

Ends-With

Puede determinar si una cadena termina con una cadena determinada utilizando el filtro Termina con.

'this is an example for ends-with filter' | ends_with('filter')

se muestra como -

True
6

FieldName

Filtra el nombre del campo cambiando el punto a la notación de matriz.

'field.name'|fieldName

se muestra como -

field[name]
7

Humanize

Se utiliza para convertir una cadena a un formato legible por humanos.

'some_text_to_read'|humanize

se muestra como -

Some text to read
8

Ksort

Ordena un mapa de matriz usando key.

{% set ritems = {'orange':1, 'apple':2, 'peach':3}|ksort %}
{% for key, value in ritems %}{{ key }}:{{ value }}, {% endfor %}

se muestra como -

apple:2, orange:1, peach:3,
9

Left Trim

Se utiliza para eliminar los espacios en blanco al principio de una cadena y elimina el carácter coincidente dado en el lado izquierdo de la cadena.

'/strip/leading/slash/'|ltrim('/')

se muestra como -

strip/leading/slash/
10

Markdown

Se utiliza para convertir la cadena que contiene la rebaja en HTML utilizando el analizador de rebajas de Grav.

'## some text with markdown'|markdown

se muestra como -

some text with markdown

11

MD5

El hash md5 para la cadena se puede crear utilizando este filtro.

'something'|md5

se muestra como -

437b930db84b8079c2dd804a71936b5f
12

Monthize

Al usar el filtro Monthize, podemos convertir un número entero de días en un número de meses.

'61'|monthize

se muestra como -

2
13

Nice Time

Al usar el filtro Nice Time, podemos obtener una fecha en un formato de hora agradable y legible por humanos como salida.

page.date|nicetime(false)

se muestra como -

3 hrs ago
14

Ordinalize

Ordinales (como 1 st , 2 nd , 3 rd ) se puede dar a números enteros mediante el uso de filtro Ordinalize.

'78'| ordinalize

se muestra como -

78th
15

Pluralize

Una cadena se puede convertir a su forma plural en inglés utilizando el filtro Pluralizar.

'child'|pluralize

se muestra como -

children
dieciséis

Randomize

Este filtro ayuda a aleatorizar la lista proporcionada. Si el parámetro contiene algún valor, esos valores se omiten de la aleatorización.

{% set ritems = ['one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine', 'ten']|randomize(3) %}
{% for ritem in ritems %}{{ ritem }}, {% endfor %}

se muestra como -

one, two, three, eight, six, five, nine, seven, ten, four,
17

Right Trim

Es bastante similar al recorte izquierdo, excepto que elimina los espacios en blanco y el carácter coincidente del lado derecho de la cadena.

'/strip/leading/slash/'|rtrim('/')

se muestra como -

/strip/leading/slash
18

Singularize

Una cadena se puede convertir a la versión singular en inglés utilizando el filtro Singular.

'vehicles'|singularize

se muestra como -

vehicle
19

Safe Email

El filtro de correo electrónico seguro se utiliza para convertir una dirección de correo electrónico en caracteres ASCII para que sea más difícil enviar spam a un correo electrónico.

"[email protected]"|safe_email

la salida es -

[email protected]
20

SortByKey

Se utiliza para ordenar el mapa de matriz mediante claves.

{% set people = [{'email':'[email protected]', 'id':3}, {'email':'[email protected]', 'id':1}, {'email':'[email protected]', 'id':7}]|sort_by_key('id') %}
{% for person in people %}{{ person.email }}:{{ person.id }}, {% endfor %}

muestra -

[email protected]:1, [email protected]:3, [email protected]:7,
21

Starts-With

Puede determinar si una cadena comienza con una cadena determinada mediante el uso del filtro Empieza por.

'this is an example for starts-with filter' |starts_with('this')

la salida es -

true
22

Translate

para obtener información más detallada.

MY_LANGUAGE_KEY_STRING

muestra -

'Some text in English'
23

Translate Admin

Traduce una cadena al idioma actual que se establece en el user.yaml archivo.

24

Titleize

Una cadena se convierte en formato de caso de título utilizando Titleize.

'welcome page'|titleize

se muestra como -

Welcome Page
25

UnderScoreize

formato mediante el uso del filtro de subvaloración.

'ContactUs'|underscorize

se convierte en -

contact_us
26

Truncate a string

Puede utilizar Truncar para truncar una cadena o acortar la cadena, debe especificar el número de caracteres.

'one sentence. two sentences'|truncate(5)

se trunca a -

one s...

Puedes usar true como parámetro si no desea truncar la cadena al final de oración más cercano después del número dado de caracteres.

'one sentence. two sentences'|truncate(5, true)

se trunca a -

one sentence
También puede eliminar texto HTML, pero debe usar striptags filtrar antes truncate filtrar.
'<p>one <strong>sentence<strong>. two sentences</p>'|striptags|truncate(5)

se muestra como -

one s

Funciones de Twig

Las funciones de Twig se llaman directamente pasando el parámetro. La siguiente tabla enumera las funciones:

No Señor. Función descriptiva Ejemplo
1

Array

Esta función lanza un valor a la matriz.

array(value)
2

Authorize

Esta función hace que un usuario autenticado esté autorizado para ver un recurso y acepta una cadena de permisos o una matriz de cadenas de permisos.

authorize(['admin.statistics', 'admin.super'])
3

Dump

Acepta una variable twig válida y la vuelca en el panel del depurador de Grav. Sin embargo, el depurador debe estar habilitado para ver los valores de la pestaña de mensajes.

dump(page.header)
4

Debug

Esto funciona igual que la función dump ().

5

Gist

Esta función crea el código de inserción de Gist basado en el ID de Github Gist.

6

Random String Generation

Esta función creará una cadena aleatoria con el número especificado de caracteres. Estas cadenas se pueden utilizar como identificación o clave única.

generate_random_string(10)
7

Repeat

Esta función repetirá la cadena durante un período de tiempo determinado.

repeat('Grav ', 10) will repeat Grav 10 times.
8

String

Genera una cadena aleatoria de una longitud de carácter especificada.

ta (23)
9

Translate Array

Es una función relacionada con |ta filtrar.

10

Url

Este filtro creará una URL y también convertirá las secuencias de URL de PHP en recursos HTML válidos. Si la URL no se puede resolver, se puede pasar un valor predeterminado.

url('theme://images/logo.png') | default('http://www.placehold.it/150x100/f4f4f4')
11

Translate

Con el filtro Traducir, una cadena se traduce como |t filtrar.

t('SITE_NAME')

se traduce a -

Site Name