What is Smarty?
Why use it?
Use Cases and Work Flow
Syntax Comparison
Template Inheritance
Best Practices
Crash Course
You may use the Smarty logo according to the trademark notice.
For sponsorship, advertising, news or other inquiries, contact us at:
Los modificadores son funciones que son aplicadas a una variable en el template antes de ser mostrada o usada en algun otro contexto. Los modificadores pueden ser encadenados conjuntamente.
mixed smarty_modifier_name( |
$value, | |
$param1) ; |
mixed $value
;[mixed $param1, ...]
;El primer parámetro en el modificador de plugin es el valor sobre el cual el modificador es precisa para funcionar. El resto de los parámetros pueden ser opcionales, dependiendo de cual tipo de operación va a ser ejecutada.
El modificador debe retornar el resultado de su procesamiento.
Vea Tambien register_modifier(), unregister_modifier().
Example 16.3. Plugin modificador simple
Este plugin básicamente es un alias de una función incorporada en PHP. Este no tiene ningun parámetro adicional.
<?php /* * Smarty plugin * ------------------------------------------------------------- * File: modifier.capitalize.php * Type: modifier * Name: capitalize * Purpose: capitalize words in the string * ------------------------------------------------------------- */ function smarty_modifier_capitalize($string) { return ucwords($string); } ?>
Example 16.4. Plugin modificador mas complejo
<?php /* * Smarty plugin * ------------------------------------------------------------- * File: modifier.truncate.php * Type: modifier * Name: truncate * Purpose: Truncate a string to a certain length if necessary, * optionally splitting in the middle of a word, and * appending the $etc string. * ------------------------------------------------------------- */ function smarty_modifier_truncate($string, $length = 80, $etc = '...', $break_words = false) { if ($length == 0) return ''; if (strlen($string) > $length) { $length -= strlen($etc); $fragment = substr($string, 0, $length+1); if ($break_words) $fragment = substr($fragment, 0, -1); else $fragment = preg_replace('/\s+(\S+)?$/', '', $fragment); return $fragment.$etc; } else return $string; } ?>