class CubistMagicAbstractModel extends Model implements HasMedia
{
use CrudTrait;
- use Sluggable;
- use SluggableScopeHelpers;
use HasMediaTrait;
use RevisionableTrait;
use BunchOfFields {
class CubistMagicTranslatableModel extends CubistMagicAbstractModel
{
- use Sluggable;
- use SluggableScopeHelpers;
use HasTranslations {
update as protected updateTranslations;
create as protected createTranslations;
'translatable' => false,
]);
}
+
+ public static function getLocaleClass()
+ {
+ $class = self::class;
+ $config = config('cubist.locale_model', 'Cubist\Backpack\app\Magic\Models\Locale');
+ if (class_exists($config)) {
+ $class = $config;
+ }
+ return $class;
+ }
}
--- /dev/null
+<?php
+
+namespace Cubist\Backpack\app\Middleware;
+
+use Cubist\Backpack\app\Magic\Models\Locale;
+use Illuminate\Http\Request;
+
+class LocaleSelector
+{
+ public function handle(Request $request, Closure $next)
+ {
+ $response = $next($request);
+ // No need to change locale depending on the domaine on admin
+ if (strpos($request->getPathInfo(), '/admin/') === 0) {
+ return $response;
+ }
+
+ $domain = $request->getHttpHost();
+ $class = Locale::getLocaleClass();
+
+ $locales = $class::where('active', 1)->get(0);
+ foreach ($locales as $locale) {
+ dd($locale);
+ }
+
+ return $response;
+ }
+}
'internal_search_index' => env('CUBIST_INTERNAL_SEARCH_INDEX', strtolower(env('APP_NAME', 'App_name') . '_' . env('APP_ENV', 'dev'))),
'page_model' => '\App\Models\Page',
'settings_model' => '\App\Models\Settings',
+ 'locale_model' => '\App\Models\Locale',
'seo_robots' => env('SEO_ROBOTS', true),
];