protected function buildTemplateFunctions()
    {
        //path to area
        $this->templateEngine->addFunction('pathToArea', function ($language = false) {
            return implode('/', $this->buildPathToArea($language)) . '/';
        });
        //path to subject
        $this->templateEngine->addFunction('pathToSubject', function ($language = false) {
            return implode('/', $this->buildPathToSubject($language)) . '/';
        });
        //path to action
        $this->templateEngine->addFunction('pathToAction', function ($action, $configurationUrl = false, $primaryKeyValue = false) {
            return $this->buildPathToAction($action, $configurationUrl, $primaryKeyValue);
        });
        //path to ancestor
        $this->templateEngine->addFunction('pathToAncestor', function ($ancestor) {
            return implode('/', $this->buildPathToAncestor($ancestor));
        });
    }