diff --git a/system/src/Grav/Common/TwigExtension.php b/system/src/Grav/Common/TwigExtension.php index 303c7b2b7..c5b1ed2ed 100644 --- a/system/src/Grav/Common/TwigExtension.php +++ b/system/src/Grav/Common/TwigExtension.php @@ -68,7 +68,8 @@ class TwigExtension extends \Twig_Extension new \Twig_SimpleFunction('url', [$this, 'urlFunc']), new \Twig_SimpleFunction('dump', [$this, 'dump'], ['needs_context' => true, 'needs_environment' => true]), new \Twig_SimpleFunction('debug', [$this, 'dump'], ['needs_context' => true, 'needs_environment' => true]), - new \Twig_SimpleFunction('gist', [$this, 'gistFunc']) + new \Twig_SimpleFunction('gist', [$this, 'gistFunc']), + new \Twig_simpleFunction('random_string', [$this, 'randomStringFunc']), ]; } @@ -433,4 +434,16 @@ class TwigExtension extends \Twig_Extension { return ''; } + + /** + * Generate a random string + * + * @param int $count + * + * @return string + */ + public function randomStringFunc($count = 5) + { + return Utils::generateRandomString($count); + } } diff --git a/system/src/Grav/Common/Utils.php b/system/src/Grav/Common/Utils.php index 9c973964b..c82aabf33 100644 --- a/system/src/Grav/Common/Utils.php +++ b/system/src/Grav/Common/Utils.php @@ -219,4 +219,16 @@ abstract class Utils } return $truncate; } + + /** + * Generate a random string of a given length + * + * @param int $length + * + * @return string + */ + public static function generateRandomString($length = 5) + { + return substr(str_shuffle("0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"), 0, $length); + } }