. * */ /* Name: Language specific html template Slug: language-specific-template Category: tools Url: https://www.vvveb.com Description: Set a different html template for a specific language, the plugin will check for language specific html file like index.fr_FR.html or content/post.fr_FR.html before serving general index.html and content/post.html Author: givanz Version: 0.1 Thumb: language-specific-template.svg Author url: https://www.vvveb.com */ use \Vvveb\System\Event as Event; use function Vvveb\getLanguage; if (! defined('V_VERSION')) { die('Invalid request!'); } class LanguageSpecificTemplatePlugin { function admin() { } function app() { Event::on('Vvveb\System\Core\View', 'compile', __CLASS__, function ($template, $htmlFile, $tplFile, $vTpl, $view) { //check if language html available $lang = getLanguage(); $languageHTMLFile = str_replace('.html', ".$lang.html", $htmlFile); if (file_exists($languageHTMLFile)) { $htmlFile = $languageHTMLFile; } return [$template, $htmlFile, $tplFile, $vTpl, $view]; }); Event::on('Vvveb\System\Core\View', 'template', __CLASS__, function ($filename, $compiledFilename, $view) { //add language to compiled html $lang = getLanguage(); $compiledFilename = str_replace('.html', ".$lang.html", $compiledFilename); return [$filename, $compiledFilename, $view]; }); } function __construct() { if (APP == 'admin') { $this->admin(); } else { if (APP == 'app') { $this->app(); } } } } $languageSpecificTemplatePlugin = new LanguageSpecificTemplatePlugin();