¿Insertar un argumento variable en la función de una plantilla de Silverstripe?

StackOverflow https://stackoverflow.com/questions/9314481

  •  26-10-2019
  •  | 
  •  

Pregunta

Estoy usando un ejemplo de paginación del diseño de Balbus. En el .ss plantilla, hay una línea de código:

<% control ProductList.PaginationSummary(5) %>

Es posible usar una variable en lugar de codificar el valor 5? Por ejemplo:

<% control ProductList.PaginationSummary(PSSize) %>

La variable PSSize se define en el modelo y devolverá el número establecido en el CMS.

¿Fue útil?

Solución

El lenguaje de plantilla SS 2.4 es muy limitado en términos de lo que puede hacer.

En este caso específico, puede intentar resolverlo en el controlador: intente ajustar el $resultSet dentro de ProductListPage_Controller::ProductList Para preprocesar el resumen de paginación al tamaño de contexto deseado, por lo que puede acceder a él más tarde desde la plantilla.

Prueba algo así:

$resultSet->AdjustedPaginationSummary = $resultSet->PaginationSummary($this->productsPerPage);
return $resultSet;

Y luego, en la plantilla, deberías poder hacer:

<% control ProductList.AdjustedPaginationSummary %>
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top