Welcome to sLang

Seiger Lang Management Module for Evolution CMS admin panel. Based on templatesEdit3 plugin.

Welcome to sLang

slang GitHub version CMS Evolution PHP version

Seiger Lang multi language Management Module for Evolution CMS admin panel.

The work of the module is based on the use of the standard Laravel functionality for multilingualism.

Features

Requirements

Before installing the module, make sure you have the templatesEdit3 plugin installed.

Use in controllers

For using this module on front pages your need add few includes to base controller

require_once MODX_BASE_PATH . 'assets/modules/seigerlang/sLang.class.php';

Use in templates

Current language:

[(lang)]

Translation of phrases:

@lang('phrase')

Default language:

[(s_lang_default)]

List of frontend languages by comma:

[(s_lang_front)]

Multilingual link:

[~~[(catalog_root)]~~]

Localized versions of your page for Google hreflang

@php($sLang = new sLang())
{!!$sLang->hrefLang()!!}

Content management

Implementing a Language Switcher

@foreach($sLang->langSwitcher() as $lang => $link)
    <a href=""></a>
@endforeach

Get resources with translations for the current language.

@foreach(\sLang\Models\sLangContent::langAndTvs(evo()->getConfig('lang'))->whereParent(11)->get() as $content)
    <li class="brands__item">
        <a class="text__mini" href="@makeUrl($content->id)"></a>
    </li>
@endforeach

Get resources with TV parameters and filtering by TV parameter.

$mainMenu = sLangContent::langAndTvs(evo()->getConfig('lang'), ['tv_image'])
    ->active()
    ->whereTv('tv_main_menu', 1)
    ->orderBy('menuindex')
    ->get();

Setting

This module uses the templatesEdit3 plugin to display multilingual content fields in the site’s admin area.

If, after setting up the module, the multilingual fields are not displayed on the resource editing tab, then you need to check the file MODX_BASE_PATH.’assets/plugins/templatesedit/configs/custom_fields.php’

<?php global $_lang, $modx; 
return [
	'en_pagetitle' => [
		'title' => $_lang['resource_title'].' (EN)',
		'help' => $_lang['resource_title_help'],
		'default' => '',
		'save' => '',
	],
	'en_longtitle' => [
		'title' => $_lang['long_title'].' (EN)',
		'help' => $_lang['resource_long_title_help'],
		'default' => '',
		'save' => '',
	],
	'en_description' => [
		'title' => $_lang['resource_description'].' (EN)',
		'help' => $_lang['resource_description_help'],
		'default' => '',
		'save' => '',
	],
	'en_introtext' => [
		'title' => $_lang['resource_summary'].' (EN)',
		'help' => $_lang['resource_summary_help'],
		'default' => '',
		'save' => '',
	],
	'en_content' => [
		'title' => $_lang['resource_content'].' (EN)',
		'default' => '',
		'save' => '',
	],
	'en_menutitle' => [
		'title' => $_lang['resource_opt_menu_title'].' (EN)',
		'help' => $_lang['resource_opt_menu_title_help'],
		'default' => '',
		'save' => '',
	],
	'en_seotitle' => [
		'title' => $_lang['resource_title'].' SEO (EN)',
		'default' => '',
		'save' => '',
	],
	'en_seodescription' => [
		'title' => $_lang['resource_description'].' SEO (EN)',
		'default' => '',
		'save' => '',
	],
];

To enable a text editor for a content field, you must select Type: Rich Text for the field when setting the template fields in templatesEdit3.