Skip to main content

Getting started

Requirements

  • Evolution CMS 3.2.0+
  • PHP 8.2+
  • Composer 2.2+
  • One of: MySQL 8.0+ / MariaDB 10.5+ / PostgreSQL 10+ / SQLite 3.25+

Where to find the module

Manager → Tools → sMultisite. You’ll see tabs for Configure.

Install by artisan package

Go to You /core/ folder

cd core
composer update

Run php artisan commands

php artisan package:installrequire seiger/smultisite "*"
php artisan vendor:publish --tag="sMultisite"
php artisan migrate

Available values

$currentDomainKey = evo()->getConfig('site_key');
$currentDomainName = evo()->getConfig('site_name');
$currentDomainHomePage = evo()->getConfig('site_start');
$currentDomainNotFoundPage = evo()->getConfig('error_page');
$currentDomainUnauthorizedPage = evo()->getConfig('unauthorized_page');

Configuration in frontend

Show all domains in Blade layout:

@foreach(sMultisite::domains() as $domain)
<a href="{{$domain['link']}}" class="@if($domain['is_current']) active @endif">
<img src="/img/logo-{{$domain['key']}}.svg" alt="" />
<span>{{$domain['site_name']}}</span>
</a>
@endforeach

This sMultisite::domains() method returns the list of active domains as an array:

array:2 [▼
"default" => array:4 [▼
"key" => "default"
"link" => "https://default.example.com"
"site_name" => "Default Example Website"
"is_current" => true
]
"example" => array:4 [▼
"key" => "example"
"link" => "https://example.example.com"
"site_name" => "Example Example Website"
"is_current" => false
]
]

More examples in Use in Blade page.

Extra

If you write your own code that can integrate with the sMultisite plugin, you can check the presence of this module in the system through a configuration variable.

if (evo()->getConfig('check_sMultisite', false)) {
// You code
}

If the plugin is installed, the result of evo()->getConfig('check_sMultisite', false) will always be true. Otherwise, you will get an false.