Merge branch 'multilanguage' into dev
This commit is contained in:
@@ -0,0 +1,62 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Console\Commands;
|
||||||
|
|
||||||
|
use App\Models\Language;
|
||||||
|
use Illuminate\Console\Command;
|
||||||
|
|
||||||
|
class AddLanguage extends Command
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* The name and signature of the console command.
|
||||||
|
*
|
||||||
|
* @var string
|
||||||
|
*/
|
||||||
|
protected $signature = 'language:add {code} {translation} {native} {script?}';
|
||||||
|
/**
|
||||||
|
* The console command description.
|
||||||
|
*
|
||||||
|
* @var string
|
||||||
|
*/
|
||||||
|
protected $description = 'Insert new language into database';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create a new command instance.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function __construct()
|
||||||
|
{
|
||||||
|
parent::__construct();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Execute the console command.
|
||||||
|
*
|
||||||
|
* @return mixed
|
||||||
|
*/
|
||||||
|
public function handle()
|
||||||
|
{
|
||||||
|
$code = $this->argument('code');
|
||||||
|
$translation = $this->argument('translation');
|
||||||
|
$native = $this->argument('native');
|
||||||
|
$script = $this->argument('script');
|
||||||
|
|
||||||
|
// check if language does not exist
|
||||||
|
$exist = Language::find($code);
|
||||||
|
|
||||||
|
if ($exist) {
|
||||||
|
$this->error('Language ' . $code . ' already exists!');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
Language::create([
|
||||||
|
'code' => $code,
|
||||||
|
'name' => $translation,
|
||||||
|
'native' => $native,
|
||||||
|
'script' => $script ? $script : 'Latn'
|
||||||
|
]);
|
||||||
|
|
||||||
|
$this->line('Successfully installed.');
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -36,6 +36,10 @@ class Translations extends Command
|
|||||||
$defaultLocalesDir = $dir . '/' . $defaultLocales;
|
$defaultLocalesDir = $dir . '/' . $defaultLocales;
|
||||||
$currentLocalesDir = $dir . '/' . $currentLocales;
|
$currentLocalesDir = $dir . '/' . $currentLocales;
|
||||||
|
|
||||||
|
if (!is_dir($currentLocalesDir)) {
|
||||||
|
File::makeDirectory($currentLocalesDir);
|
||||||
|
}
|
||||||
|
|
||||||
$this->compareTranslationsInDirectory($defaultLocalesDir, $currentLocalesDir);
|
$this->compareTranslationsInDirectory($defaultLocalesDir, $currentLocalesDir);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -2,6 +2,7 @@
|
|||||||
|
|
||||||
namespace App\Console;
|
namespace App\Console;
|
||||||
|
|
||||||
|
use App\Console\Commands\AddLanguage;
|
||||||
use Illuminate\Console\Scheduling\Schedule;
|
use Illuminate\Console\Scheduling\Schedule;
|
||||||
use Illuminate\Foundation\Console\Kernel as ConsoleKernel;
|
use Illuminate\Foundation\Console\Kernel as ConsoleKernel;
|
||||||
|
|
||||||
@@ -21,6 +22,7 @@ class Kernel extends ConsoleKernel
|
|||||||
Commands\TranslateAll::class,
|
Commands\TranslateAll::class,
|
||||||
Commands\InitDatabaseSchema::class,
|
Commands\InitDatabaseSchema::class,
|
||||||
Commands\SetTheme::class,
|
Commands\SetTheme::class,
|
||||||
|
AddLanguage::class
|
||||||
];
|
];
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -11,6 +11,7 @@ use App\Models\WidgetArea;
|
|||||||
use App\Models\WidgetInWidgetArea;
|
use App\Models\WidgetInWidgetArea;
|
||||||
use Illuminate\Database\QueryException;
|
use Illuminate\Database\QueryException;
|
||||||
use Illuminate\Support\Facades\Event;
|
use Illuminate\Support\Facades\Event;
|
||||||
|
use Mcamara\LaravelLocalization\Facades\LaravelLocalization;
|
||||||
|
|
||||||
class AssociateWidget extends Controller
|
class AssociateWidget extends Controller
|
||||||
{
|
{
|
||||||
@@ -18,7 +19,8 @@ class AssociateWidget extends Controller
|
|||||||
{
|
{
|
||||||
$area = WidgetArea::findOrFail($widgetArea);
|
$area = WidgetArea::findOrFail($widgetArea);
|
||||||
$associatedWidgetIds = WidgetInWidgetArea::getWidgetIdsFromArea($area->id);
|
$associatedWidgetIds = WidgetInWidgetArea::getWidgetIdsFromArea($area->id);
|
||||||
$widgets = Widget::paginate(25);
|
$widgets = Widget::where('language', LaravelLocalization::getCurrentLocale())
|
||||||
|
->paginate(25);
|
||||||
|
|
||||||
return view('admin.widgets.association', [
|
return view('admin.widgets.association', [
|
||||||
'widgetArea' => $area,
|
'widgetArea' => $area,
|
||||||
|
|||||||
@@ -10,6 +10,7 @@ use App\Models\Module;
|
|||||||
use App\Models\Template;
|
use App\Models\Template;
|
||||||
use Illuminate\Support\Facades\Event;
|
use Illuminate\Support\Facades\Event;
|
||||||
use Illuminate\Support\Str;
|
use Illuminate\Support\Str;
|
||||||
|
use Mcamara\LaravelLocalization\Facades\LaravelLocalization;
|
||||||
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
|
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
|
||||||
|
|
||||||
class CreateNewContent extends Controller
|
class CreateNewContent extends Controller
|
||||||
@@ -56,7 +57,8 @@ class CreateNewContent extends Controller
|
|||||||
'templates' => $templates,
|
'templates' => $templates,
|
||||||
'moduleId' => $moduleId,
|
'moduleId' => $moduleId,
|
||||||
'page' => $this->content,
|
'page' => $this->content,
|
||||||
'rootPages' => $this->content->getOverview()->get(),
|
'rootPages' => $this->content->getOverview()
|
||||||
|
->get(),
|
||||||
'moduleName' => trans($module->name),
|
'moduleName' => trans($module->name),
|
||||||
'extraData' => call_user_func([$module->handler, 'loadExtraData'], $this->content),
|
'extraData' => call_user_func([$module->handler, 'loadExtraData'], $this->content),
|
||||||
'formSectionNames' => call_user_func([$module->handler, 'getExtendedFormSections']),
|
'formSectionNames' => call_user_func([$module->handler, 'getExtendedFormSections']),
|
||||||
@@ -86,6 +88,7 @@ class CreateNewContent extends Controller
|
|||||||
|
|
||||||
// setup basic info
|
// setup basic info
|
||||||
$page->user_id = \Auth::user()->id;
|
$page->user_id = \Auth::user()->id;
|
||||||
|
$page->language = LaravelLocalization::getLocale();
|
||||||
$page->title = $request->title;
|
$page->title = $request->title;
|
||||||
$page->url = Str::slug($request->url);
|
$page->url = Str::slug($request->url);
|
||||||
$page->published_from = $request->publishedFrom;
|
$page->published_from = $request->publishedFrom;
|
||||||
|
|||||||
@@ -17,6 +17,7 @@ use App\Models\File;
|
|||||||
use App\Models\Template;
|
use App\Models\Template;
|
||||||
use Illuminate\Support\Facades\Event;
|
use Illuminate\Support\Facades\Event;
|
||||||
use Illuminate\Support\Str;
|
use Illuminate\Support\Str;
|
||||||
|
use Mcamara\LaravelLocalization\Facades\LaravelLocalization;
|
||||||
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
|
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
|
||||||
|
|
||||||
class EditContent extends Controller
|
class EditContent extends Controller
|
||||||
@@ -65,8 +66,8 @@ class EditContent extends Controller
|
|||||||
'contentStatuses' => $statuses,
|
'contentStatuses' => $statuses,
|
||||||
'page' => $page,
|
'page' => $page,
|
||||||
'rootPages' => $page->getOverview()
|
'rootPages' => $page->getOverview()
|
||||||
->where('contents.id', '!=', $page->id)
|
->where('contents.id', '!=', $page->id)
|
||||||
->get(),
|
->get(),
|
||||||
'templates' => $templates,
|
'templates' => $templates,
|
||||||
'extraData' => call_user_func([$page->module_handler, 'loadExtraData'], $page),
|
'extraData' => call_user_func([$page->module_handler, 'loadExtraData'], $page),
|
||||||
'formSectionNames' => call_user_func([$page->module_handler, 'getExtendedFormSections']),
|
'formSectionNames' => call_user_func([$page->module_handler, 'getExtendedFormSections']),
|
||||||
@@ -223,7 +224,7 @@ class EditContent extends Controller
|
|||||||
|
|
||||||
// change url to something unique
|
// change url to something unique
|
||||||
$oldURL = $page->url;
|
$oldURL = $page->url;
|
||||||
$page->url = uniqid($page->url.'_deleted');
|
$page->url = uniqid($page->url . '_deleted');
|
||||||
$page->save();
|
$page->save();
|
||||||
|
|
||||||
list ($revision, $changedColumns) = $page->updateWithHistory(['status' => 'status'], ['status' => Content::STATUS_DELETED]);
|
list ($revision, $changedColumns) = $page->updateWithHistory(['status' => 'status'], ['status' => Content::STATUS_DELETED]);
|
||||||
@@ -274,6 +275,7 @@ class EditContent extends Controller
|
|||||||
|
|
||||||
// disable any other existing homepage
|
// disable any other existing homepage
|
||||||
Content::where('is_homepage', 1)
|
Content::where('is_homepage', 1)
|
||||||
|
->where('language', LaravelLocalization::getCurrentLocale())
|
||||||
->update(['is_homepage' => 0]);
|
->update(['is_homepage' => 0]);
|
||||||
|
|
||||||
// set new homepage
|
// set new homepage
|
||||||
|
|||||||
@@ -4,30 +4,39 @@ namespace App\Http\Controllers\Admin;
|
|||||||
|
|
||||||
use App\Http\Controllers\Controller;
|
use App\Http\Controllers\Controller;
|
||||||
use App\Http\Requests;
|
use App\Http\Requests;
|
||||||
|
use App\Models\Settings as SettingsModel;
|
||||||
use Illuminate\Support\Facades\App;
|
use Illuminate\Support\Facades\App;
|
||||||
|
use Mcamara\LaravelLocalization\Facades\LaravelLocalization;
|
||||||
|
|
||||||
class Settings extends Controller
|
class Settings extends Controller
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* @var \App\Models\Settings
|
* @var SettingsModel
|
||||||
*/
|
*/
|
||||||
protected $settings;
|
protected $settings;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Settings constructor.
|
* Settings constructor.
|
||||||
*
|
*
|
||||||
* @param \App\Models\Settings $settings
|
* @param SettingsModel $settings
|
||||||
*/
|
*/
|
||||||
public function __construct(\App\Models\Settings $settings)
|
public function __construct(SettingsModel $settings)
|
||||||
{
|
{
|
||||||
$this->settings = $settings;
|
$this->settings = $settings;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get overview (with form) for editing settings
|
||||||
|
*
|
||||||
|
* @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View
|
||||||
|
*/
|
||||||
public function getOverview()
|
public function getOverview()
|
||||||
{
|
{
|
||||||
$sections = App::make('registerSettingsExtension')
|
$sections = App::make('registerSettingsExtension')
|
||||||
->get();
|
->get();
|
||||||
$settings = $this->settings->getAll();
|
|
||||||
|
// load all settings with language info
|
||||||
|
$settings = $this->settings->getAllWithLanguage();
|
||||||
|
|
||||||
return view('admin.settings.overview', [
|
return view('admin.settings.overview', [
|
||||||
'formSections' => $sections,
|
'formSections' => $sections,
|
||||||
@@ -35,35 +44,39 @@ class Settings extends Controller
|
|||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Save all settings (ignore empty ones)
|
||||||
|
*
|
||||||
|
* When settings used to be non-empty string and user deletes it, key is also deleted from database
|
||||||
|
*
|
||||||
|
* @param Requests\SaveSettingsRequest $request
|
||||||
|
*
|
||||||
|
* @return \Illuminate\Http\RedirectResponse
|
||||||
|
*/
|
||||||
public function saveSettings(Requests\SaveSettingsRequest $request)
|
public function saveSettings(Requests\SaveSettingsRequest $request)
|
||||||
{
|
{
|
||||||
$data = $request->all();
|
$data = $request->all();
|
||||||
|
$commonSettings = isset($data['commonSettings']) ? $data['commonSettings'] : [];
|
||||||
|
|
||||||
// remove CSRF token field
|
// remove CSRF token field
|
||||||
unset($data['_token']);
|
unset($data['_token'], $data['commonSettings']);
|
||||||
|
|
||||||
$settings = $this->settings->getAll();
|
|
||||||
$updated = 0;
|
|
||||||
foreach ($data as $key => $value) {
|
foreach ($data as $key => $value) {
|
||||||
if (isset($settings->$key)) {
|
// select language for this setting key
|
||||||
if ($settings->$key != $value) {
|
$language = isset($commonSettings[$key]) ? null : LaravelLocalization::getCurrentLocale();
|
||||||
$updated++;
|
$setting = SettingsModel::firstOrNew(['language' => $language, 'key' => $key]);
|
||||||
\App\Models\Settings::where('key', $key)
|
|
||||||
->update(['value' => $value]);
|
if ($setting->value == $value) {
|
||||||
}
|
continue;
|
||||||
} else {
|
|
||||||
\App\Models\Settings::create(['key' => $key, 'value' => $value]);
|
|
||||||
$updated++;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// set value and save or delete
|
||||||
|
$setting->value = $value;
|
||||||
|
empty($value) ? $setting->delete() : $setting->save();
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($updated > 0) {
|
return redirect()
|
||||||
return redirect()
|
->route('settings.overview')
|
||||||
->route('settings.overview')
|
->with('success', trans('admin/settings.successfullySaved'));
|
||||||
->with('success', trans('admin/settings.successfullySaved'));
|
|
||||||
} else {
|
|
||||||
return redirect()
|
|
||||||
->route('settings.overview')
|
|
||||||
->with('error', trans('admin/settings.nothingToSave'));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,12 +2,14 @@
|
|||||||
namespace App\Http\Controllers\Admin;
|
namespace App\Http\Controllers\Admin;
|
||||||
|
|
||||||
use App\Models\Widget;
|
use App\Models\Widget;
|
||||||
|
use Mcamara\LaravelLocalization\Facades\LaravelLocalization;
|
||||||
|
|
||||||
class WidgetsOverview extends Controller
|
class WidgetsOverview extends Controller
|
||||||
{
|
{
|
||||||
public function getOverview()
|
public function getOverview()
|
||||||
{
|
{
|
||||||
$widgets = Widget::paginate(25);
|
$widgets = Widget::where('language', LaravelLocalization::getCurrentLocale())
|
||||||
|
->paginate(25);
|
||||||
|
|
||||||
return view('admin.widgets.overview', ['widgets' => $widgets]);
|
return view('admin.widgets.overview', ['widgets' => $widgets]);
|
||||||
}
|
}
|
||||||
|
|||||||
+14
-7
@@ -3,6 +3,10 @@
|
|||||||
namespace App\Http;
|
namespace App\Http;
|
||||||
|
|
||||||
use Illuminate\Foundation\Http\Kernel as HttpKernel;
|
use Illuminate\Foundation\Http\Kernel as HttpKernel;
|
||||||
|
use Illuminate\Routing\Middleware\ThrottleRequests;
|
||||||
|
use Mcamara\LaravelLocalization\Middleware\LaravelLocalizationRedirectFilter;
|
||||||
|
use Mcamara\LaravelLocalization\Middleware\LaravelLocalizationRoutes;
|
||||||
|
use Mcamara\LaravelLocalization\Middleware\LocaleSessionRedirect;
|
||||||
|
|
||||||
class Kernel extends HttpKernel
|
class Kernel extends HttpKernel
|
||||||
{
|
{
|
||||||
@@ -23,11 +27,11 @@ class Kernel extends HttpKernel
|
|||||||
*/
|
*/
|
||||||
protected $middlewareGroups = [
|
protected $middlewareGroups = [
|
||||||
'web' => [
|
'web' => [
|
||||||
\App\Http\Middleware\EncryptCookies::class,
|
Middleware\EncryptCookies::class,
|
||||||
\Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
|
\Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
|
||||||
\Illuminate\Session\Middleware\StartSession::class,
|
\Illuminate\Session\Middleware\StartSession::class,
|
||||||
\Illuminate\View\Middleware\ShareErrorsFromSession::class,
|
\Illuminate\View\Middleware\ShareErrorsFromSession::class,
|
||||||
\App\Http\Middleware\VerifyCsrfToken::class,
|
Middleware\VerifyCsrfToken::class,
|
||||||
],
|
],
|
||||||
'api' => [
|
'api' => [
|
||||||
'throttle:60,1',
|
'throttle:60,1',
|
||||||
@@ -41,10 +45,13 @@ class Kernel extends HttpKernel
|
|||||||
* @var array
|
* @var array
|
||||||
*/
|
*/
|
||||||
protected $routeMiddleware = [
|
protected $routeMiddleware = [
|
||||||
'auth' => \App\Http\Middleware\Authenticate::class,
|
'auth' => Middleware\Authenticate::class,
|
||||||
'onlyAdmin' => \App\Http\Middleware\RequireAdminRole::class,
|
'onlyAdmin' => Middleware\RequireAdminRole::class,
|
||||||
'adminMenu' => \App\Http\Middleware\AdminMenuRegistrator::class,
|
'adminMenu' => Middleware\AdminMenuRegistrator::class,
|
||||||
'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class,
|
'guest' => Middleware\RedirectIfAuthenticated::class,
|
||||||
'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class,
|
'throttle' => ThrottleRequests::class,
|
||||||
|
'localize' => LaravelLocalizationRoutes::class,
|
||||||
|
'localizationRedirect' => LaravelLocalizationRedirectFilter::class,
|
||||||
|
'localeSessionRedirect' => LocaleSessionRedirect::class
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|||||||
+248
-241
@@ -4,274 +4,281 @@
|
|||||||
* This routing groups is used for routing along public part of website
|
* This routing groups is used for routing along public part of website
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
use Mcamara\LaravelLocalization\Facades\LaravelLocalization;
|
||||||
|
|
||||||
Route::pattern('id', '\d+');
|
Route::pattern('id', '\d+');
|
||||||
Route::pattern('url', '[0-9\-a-z]+');
|
Route::pattern('url', '[0-9\-a-z]+');
|
||||||
|
|
||||||
/*******************************************************************************/
|
/*******************************************************************************/
|
||||||
|
|
||||||
/**
|
|
||||||
* This route group serves to handle request in admin
|
|
||||||
*/
|
|
||||||
Route::group([
|
Route::group([
|
||||||
'middleware' => ['web', 'auth', 'adminMenu'],
|
'prefix' => LaravelLocalization::setLocale(),
|
||||||
'namespace' => 'Admin',
|
'middleware' => ['localeSessionRedirect', 'localizationRedirect']
|
||||||
'prefix' => 'admin'
|
|
||||||
], function () {
|
], function () {
|
||||||
|
/**
|
||||||
|
* This route group serves to handle request in admin
|
||||||
|
*/
|
||||||
|
Route::group([
|
||||||
|
'middleware' => ['web', 'auth', 'adminMenu'],
|
||||||
|
'namespace' => 'Admin',
|
||||||
|
'prefix' => 'admin'
|
||||||
|
], function () {
|
||||||
|
|
||||||
// these routes are available only for user with role admin
|
// these routes are available only for user with role admin
|
||||||
Route::group(['middleware' => 'onlyAdmin'], function () {
|
Route::group(['middleware' => 'onlyAdmin'], function () {
|
||||||
// display form for creating new user
|
// display form for creating new user
|
||||||
Route::get('users/new', 'CreateNewUser@getNewUser')
|
Route::get('users/new', 'CreateNewUser@getNewUser')
|
||||||
->name('users.new');
|
->name('users.new');
|
||||||
|
|
||||||
// POST methods
|
// POST methods
|
||||||
// display form for creating new user
|
// display form for creating new user
|
||||||
Route::post('users/new', 'CreateNewUser@postRegistration')
|
Route::post('users/new', 'CreateNewUser@postRegistration')
|
||||||
->name('users.newPost');
|
->name('users.newPost');
|
||||||
|
|
||||||
// display form for edit of existing user
|
// display form for edit of existing user
|
||||||
Route::get('users/edit/{id}', 'EditUser@getEditExistingUser')
|
Route::get('users/edit/{id}', 'EditUser@getEditExistingUser')
|
||||||
->name('users.edit');
|
->name('users.edit');
|
||||||
|
|
||||||
// form for adding new custom field
|
// form for adding new custom field
|
||||||
Route::get('customfields/new', 'CreateNewCustomField@getNew')
|
Route::get('customfields/new', 'CreateNewCustomField@getNew')
|
||||||
->name('customfields.new');
|
->name('customfields.new');
|
||||||
|
|
||||||
// form for editing custom field
|
// form for editing custom field
|
||||||
Route::get('customfields/edit/{id}', 'EditCustomField@getEditCustomField')
|
Route::get('customfields/edit/{id}', 'EditCustomField@getEditCustomField')
|
||||||
->name('customfields.edit');
|
->name('customfields.edit');
|
||||||
|
|
||||||
// form for adding new custom field
|
// form for adding new custom field
|
||||||
Route::post('customfields/new', 'CreateNewCustomField@postNew')
|
Route::post('customfields/new', 'CreateNewCustomField@postNew')
|
||||||
->name('customfields.newPost');
|
->name('customfields.newPost');
|
||||||
|
|
||||||
// form for editing custom field
|
// form for editing custom field
|
||||||
Route::post('customfields/edit/{id}', 'EditCustomField@postEditCustomField')
|
Route::post('customfields/edit/{id}', 'EditCustomField@postEditCustomField')
|
||||||
->name('customfields.editPost');
|
->name('customfields.editPost');
|
||||||
|
|
||||||
Route::get('customfields/delete/{id}', 'EditCustomField@deleteCustomField')
|
Route::get('customfields/delete/{id}', 'EditCustomField@deleteCustomField')
|
||||||
->name('customfields.delete');
|
->name('customfields.delete');
|
||||||
|
|
||||||
Route::get('templates/overview/path/{id}', 'TemplateOverview@getPath')
|
Route::get('templates/overview/path/{id}', 'TemplateOverview@getPath')
|
||||||
->name('templates.overview');
|
->name('templates.overview');
|
||||||
|
|
||||||
Route::post('templates/copy', 'CopyTemplate@createCopy')
|
Route::post('templates/copy', 'CopyTemplate@createCopy')
|
||||||
->name('templates.postCopy');
|
->name('templates.postCopy');
|
||||||
|
|
||||||
// Route::get('templates/new/{pathId}', 'TemplateOverview@getPath')
|
// Route::get('templates/new/{pathId}', 'TemplateOverview@getPath')
|
||||||
// ->name('templates.new');
|
// ->name('templates.new');
|
||||||
|
|
||||||
Route::get('templates/edit/{id}', 'EditTemplate@getEdit')
|
Route::get('templates/edit/{id}', 'EditTemplate@getEdit')
|
||||||
->name('templates.edit');
|
->name('templates.edit');
|
||||||
|
|
||||||
Route::post('templates/edit/{id}', 'EditTemplate@postEdit')
|
Route::post('templates/edit/{id}', 'EditTemplate@postEdit')
|
||||||
->name('templates.postEdit');
|
->name('templates.postEdit');
|
||||||
|
});
|
||||||
|
|
||||||
|
// list of all static pages
|
||||||
|
Route::get('content/overview/{moduleId?}/{status?}', 'ContentOverview@getOverview')
|
||||||
|
->name('content.overview');
|
||||||
|
|
||||||
|
// form for creating new static page
|
||||||
|
Route::get('content/new/{moduleId}', 'CreateNewContent@getNew')
|
||||||
|
->name('content.new');
|
||||||
|
|
||||||
|
// form for editing existing static page
|
||||||
|
Route::get('content/edit/{id}', 'EditContent@getEdit')
|
||||||
|
->name('content.edit');
|
||||||
|
|
||||||
|
// post method for creating new static page
|
||||||
|
Route::post('content/new/{moduleId}', 'CreateNewContent@postNew')
|
||||||
|
->name('content.newPost');
|
||||||
|
|
||||||
|
// post method for creating new static page
|
||||||
|
Route::post('content/edit/{id}', 'EditContent@postEdit')
|
||||||
|
->name('content.editPost');
|
||||||
|
|
||||||
|
// routes for quick actions
|
||||||
|
|
||||||
|
// change status of page (protected, public or draft)
|
||||||
|
Route::get('content/status/{id}/{status}', 'EditContent@changeStatus')
|
||||||
|
->name('content.changeStatus');
|
||||||
|
|
||||||
|
// set homepage
|
||||||
|
Route::get('content/homepage/{id}', 'EditContent@setHomepage')
|
||||||
|
->name('content.setHomepage');
|
||||||
|
|
||||||
|
// delete page
|
||||||
|
Route::get('content/delete/{id}', 'EditContent@deletePage')
|
||||||
|
->name('content.delete');
|
||||||
|
|
||||||
|
// these routes are available for all logged (authenticated) users
|
||||||
|
|
||||||
|
// display dashboard with some usefull information
|
||||||
|
Route::get('/', 'Dashboard@getIndex')
|
||||||
|
->name('admin.dashboard');
|
||||||
|
|
||||||
|
// display user detail in admin
|
||||||
|
Route::get('users/detail/{id?}', 'UserDetail@getDetail')
|
||||||
|
->name('users.detail');
|
||||||
|
|
||||||
|
// method for saving edited data of user
|
||||||
|
Route::post('users/edit/{id}', 'EditUser@postEdit')
|
||||||
|
->name('users.editPost');
|
||||||
|
|
||||||
|
// display list of all users registered into our system
|
||||||
|
Route::get('users/overview/{state?}/{perPage?}', 'UsersOverview@getOverview')
|
||||||
|
->name('users.overview');
|
||||||
|
|
||||||
|
// history of changes for specified page
|
||||||
|
Route::get('history/{id}', 'History@getOverview')
|
||||||
|
->name('content.history');
|
||||||
|
|
||||||
|
// history of changes for specified page
|
||||||
|
Route::get('history/{revision}/{id}', 'History@getDiff')
|
||||||
|
->name('history.diff');
|
||||||
|
|
||||||
|
// list of all actions
|
||||||
|
Route::get('actions', 'ActionLogOverview@getOverview')
|
||||||
|
->name('log.overview');
|
||||||
|
|
||||||
|
// routes for widget areas
|
||||||
|
Route::get('widgets/areas/overview', 'WidgetAreaOverview@getOverview')
|
||||||
|
->name('widgetareas.overview');
|
||||||
|
|
||||||
|
// form for new widget area
|
||||||
|
Route::get('widgets/areas/new', 'CreateNewWidgetArea@getNew')
|
||||||
|
->name('widgetareas.new');
|
||||||
|
|
||||||
|
// form for new widget area
|
||||||
|
Route::post('widgets/areas/new', 'CreateNewWidgetArea@postNew')
|
||||||
|
->name('widgetareas.postNew');
|
||||||
|
|
||||||
|
// edit form for widget area
|
||||||
|
Route::get('widgets/areas/edit/{id}', 'EditWidgetArea@getEdit')
|
||||||
|
->name('widgetareas.edit');
|
||||||
|
|
||||||
|
Route::post('widgets/areas/edit/{id}', 'EditWidgetArea@postEdit')
|
||||||
|
->name('widgetareas.postEdit');
|
||||||
|
|
||||||
|
// edit form for widget area
|
||||||
|
Route::get('widgets/areas/delete/{id}', 'EditWidgetArea@deleteArea')
|
||||||
|
->name('widgetareas.delete');
|
||||||
|
|
||||||
|
// list of all installed widget types
|
||||||
|
Route::get('widgets/overview', 'WidgetsOverview@getOverview')
|
||||||
|
->name('widgets.overview');
|
||||||
|
|
||||||
|
// create new instance of widget of given type
|
||||||
|
Route::get('widgets/new/{type}', 'CreateNewWidget@getNew')
|
||||||
|
->name('widgets.new');
|
||||||
|
|
||||||
|
Route::post('widgets/new/{type}', 'CreateNewWidget@postNew')
|
||||||
|
->name('widgets.postNew');
|
||||||
|
|
||||||
|
// edit widget settings
|
||||||
|
Route::get('widgets/edit/{id}', 'EditWidget@getEdit')
|
||||||
|
->name('widgets.edit');
|
||||||
|
|
||||||
|
Route::post('widgets/edit/{id}', 'EditWidget@postEdit')
|
||||||
|
->name('widgets.postEdit');
|
||||||
|
|
||||||
|
// display form for association of widget and widget area
|
||||||
|
Route::get('widgets/associate/{widgetArea}', 'AssociateWidget@getList')
|
||||||
|
->name('widgets.associate');
|
||||||
|
|
||||||
|
Route::get('widgets/deassociate/{widgetId}/{widgetArea}', 'AssociateWidget@deleteAssociation')
|
||||||
|
->name('widgets.deleteAssociation');
|
||||||
|
|
||||||
|
Route::get('widgets/associate/{widgetId}/{widgetArea}', 'AssociateWidget@makeAssociation')
|
||||||
|
->name('widgets.makeAssociation');
|
||||||
|
|
||||||
|
// uploader methods
|
||||||
|
Route::get('directories/new/{id?}', 'CreateNewDirectory@getNew')
|
||||||
|
->name('upload.newDirectory');
|
||||||
|
|
||||||
|
Route::get('directories/edit/{id}', 'EditDirectory@getEdit')
|
||||||
|
->name('upload.editDirectory');
|
||||||
|
|
||||||
|
Route::post('directories/edit/{id}', 'EditDirectory@postEdit')
|
||||||
|
->name('upload.postEditDirectory');
|
||||||
|
|
||||||
|
Route::get('files/overview/{id?}/{type?}/{subtype?}', 'UploadedFilesOverview@getOverview')
|
||||||
|
->name('upload.overview');
|
||||||
|
|
||||||
|
route::post('directories/new', 'CreateNewDirectory@postNew')
|
||||||
|
->name('upload.postNewDirectory');
|
||||||
|
|
||||||
|
Route::get('upload/detail/{id}', 'EditUploadedFile@getDetail')
|
||||||
|
->name('upload.detail');
|
||||||
|
|
||||||
|
Route::post('upload/detail/{id}', 'EditUploadedFile@postEdit')
|
||||||
|
->name('upload.postEdit');
|
||||||
|
|
||||||
|
Route::get('upload/delete/{id}', 'EditUploadedFile@deleteFile')
|
||||||
|
->name('upload.delete');
|
||||||
|
|
||||||
|
// uploader methods
|
||||||
|
Route::post('upload/file', 'UploadFile@postFile')
|
||||||
|
->name('upload.postFile');
|
||||||
|
|
||||||
|
Route::post('upload/image', 'UploadFile@postImage')
|
||||||
|
->name('upload.postImage');
|
||||||
|
|
||||||
|
// form with settings
|
||||||
|
Route::get('settings', 'Settings@getOverview')
|
||||||
|
->name('settings.overview');
|
||||||
|
|
||||||
|
Route::post('settings', 'Settings@saveSettings')
|
||||||
|
->name('settings.save');
|
||||||
|
|
||||||
|
Route::get('search', 'Search@getSearch')
|
||||||
|
->name('search');
|
||||||
|
|
||||||
|
// custom fields
|
||||||
|
// ------------------------------
|
||||||
|
|
||||||
|
// list of all custom fields
|
||||||
|
Route::get('customfields/overview', 'CustomFieldsOverview@getOverview')
|
||||||
|
->name('customfields.overview');
|
||||||
|
|
||||||
|
// logout method
|
||||||
|
Route::get('logout', function () {
|
||||||
|
|
||||||
|
// remove user information
|
||||||
|
\Auth::logout();
|
||||||
|
|
||||||
|
// redirect to login form with info about successfull logout
|
||||||
|
return redirect()
|
||||||
|
->route('login')
|
||||||
|
->with('success', trans('admin/common.logoutSuccessfull'));
|
||||||
|
})
|
||||||
|
->name('logout');
|
||||||
});
|
});
|
||||||
|
|
||||||
// list of all static pages
|
/**************************************************************************************/
|
||||||
Route::get('content/overview/{moduleId?}/{status?}', 'ContentOverview@getOverview')
|
|
||||||
->name('content.overview');
|
|
||||||
|
|
||||||
// form for creating new static page
|
/**
|
||||||
Route::get('content/new/{moduleId}', 'CreateNewContent@getNew')
|
* This section must be specified as last one
|
||||||
->name('content.new');
|
*/
|
||||||
|
|
||||||
// form for editing existing static page
|
Route::group(['middleware' => ['web']], function () {
|
||||||
Route::get('content/edit/{id}', 'EditContent@getEdit')
|
|
||||||
->name('content.edit');
|
|
||||||
|
|
||||||
// post method for creating new static page
|
Route::get('/', 'Visitor\Homepage@getIndex')
|
||||||
Route::post('content/new/{moduleId}', 'CreateNewContent@postNew')
|
->name('page.index');
|
||||||
->name('content.newPost');
|
|
||||||
|
|
||||||
// post method for creating new static page
|
// display login form
|
||||||
Route::post('content/edit/{id}', 'EditContent@postEdit')
|
Route::get('admin/login', function () {
|
||||||
->name('content.editPost');
|
return view('admin.loginForm.form');
|
||||||
|
})
|
||||||
|
->name('loginForm');
|
||||||
|
|
||||||
// routes for quick actions
|
// handle login
|
||||||
|
Route::post('admin/login', 'Admin\Login@postLogin')
|
||||||
|
->name('login');
|
||||||
|
|
||||||
// change status of page (protected, public or draft)
|
// route for sitemap
|
||||||
Route::get('content/status/{id}/{status}', 'EditContent@changeStatus')
|
Route::get('sitemap.xml', 'Sitemap@getMap')
|
||||||
->name('content.changeStatus');
|
->name('sitemap');
|
||||||
|
|
||||||
// set homepage
|
// route for all content pages. This rule must be specified last (because it matches every route)
|
||||||
Route::get('content/homepage/{id}', 'EditContent@setHomepage')
|
Route::get('{url}', 'Visitor\ContentPage@getPage')
|
||||||
->name('content.setHomepage');
|
->name('page.content');
|
||||||
|
});
|
||||||
// delete page
|
|
||||||
Route::get('content/delete/{id}', 'EditContent@deletePage')
|
|
||||||
->name('content.delete');
|
|
||||||
|
|
||||||
// these routes are available for all logged (authenticated) users
|
|
||||||
|
|
||||||
// display dashboard with some usefull information
|
|
||||||
Route::get('/', 'Dashboard@getIndex')
|
|
||||||
->name('admin.dashboard');
|
|
||||||
|
|
||||||
// display user detail in admin
|
|
||||||
Route::get('users/detail/{id?}', 'UserDetail@getDetail')
|
|
||||||
->name('users.detail');
|
|
||||||
|
|
||||||
// method for saving edited data of user
|
|
||||||
Route::post('users/edit/{id}', 'EditUser@postEdit')
|
|
||||||
->name('users.editPost');
|
|
||||||
|
|
||||||
// display list of all users registered into our system
|
|
||||||
Route::get('users/overview/{state?}/{perPage?}', 'UsersOverview@getOverview')
|
|
||||||
->name('users.overview');
|
|
||||||
|
|
||||||
// history of changes for specified page
|
|
||||||
Route::get('history/{id}', 'History@getOverview')
|
|
||||||
->name('content.history');
|
|
||||||
|
|
||||||
// history of changes for specified page
|
|
||||||
Route::get('history/{revision}/{id}', 'History@getDiff')
|
|
||||||
->name('history.diff');
|
|
||||||
|
|
||||||
// list of all actions
|
|
||||||
Route::get('actions', 'ActionLogOverview@getOverview')
|
|
||||||
->name('log.overview');
|
|
||||||
|
|
||||||
// routes for widget areas
|
|
||||||
Route::get('widgets/areas/overview', 'WidgetAreaOverview@getOverview')
|
|
||||||
->name('widgetareas.overview');
|
|
||||||
|
|
||||||
// form for new widget area
|
|
||||||
Route::get('widgets/areas/new', 'CreateNewWidgetArea@getNew')
|
|
||||||
->name('widgetareas.new');
|
|
||||||
|
|
||||||
// form for new widget area
|
|
||||||
Route::post('widgets/areas/new', 'CreateNewWidgetArea@postNew')
|
|
||||||
->name('widgetareas.postNew');
|
|
||||||
|
|
||||||
// edit form for widget area
|
|
||||||
Route::get('widgets/areas/edit/{id}', 'EditWidgetArea@getEdit')
|
|
||||||
->name('widgetareas.edit');
|
|
||||||
|
|
||||||
Route::post('widgets/areas/edit/{id}', 'EditWidgetArea@postEdit')
|
|
||||||
->name('widgetareas.postEdit');
|
|
||||||
|
|
||||||
// edit form for widget area
|
|
||||||
Route::get('widgets/areas/delete/{id}', 'EditWidgetArea@deleteArea')
|
|
||||||
->name('widgetareas.delete');
|
|
||||||
|
|
||||||
// list of all installed widget types
|
|
||||||
Route::get('widgets/overview', 'WidgetsOverview@getOverview')
|
|
||||||
->name('widgets.overview');
|
|
||||||
|
|
||||||
// create new instance of widget of given type
|
|
||||||
Route::get('widgets/new/{type}', 'CreateNewWidget@getNew')
|
|
||||||
->name('widgets.new');
|
|
||||||
|
|
||||||
Route::post('widgets/new/{type}', 'CreateNewWidget@postNew')
|
|
||||||
->name('widgets.postNew');
|
|
||||||
|
|
||||||
// edit widget settings
|
|
||||||
Route::get('widgets/edit/{id}', 'EditWidget@getEdit')
|
|
||||||
->name('widgets.edit');
|
|
||||||
|
|
||||||
Route::post('widgets/edit/{id}', 'EditWidget@postEdit')
|
|
||||||
->name('widgets.postEdit');
|
|
||||||
|
|
||||||
// display form for association of widget and widget area
|
|
||||||
Route::get('widgets/associate/{widgetArea}', 'AssociateWidget@getList')
|
|
||||||
->name('widgets.associate');
|
|
||||||
|
|
||||||
Route::get('widgets/deassociate/{widgetId}/{widgetArea}', 'AssociateWidget@deleteAssociation')
|
|
||||||
->name('widgets.deleteAssociation');
|
|
||||||
|
|
||||||
Route::get('widgets/associate/{widgetId}/{widgetArea}', 'AssociateWidget@makeAssociation')
|
|
||||||
->name('widgets.makeAssociation');
|
|
||||||
|
|
||||||
// uploader methods
|
|
||||||
Route::get('directories/new/{id?}', 'CreateNewDirectory@getNew')
|
|
||||||
->name('upload.newDirectory');
|
|
||||||
|
|
||||||
Route::get('directories/edit/{id}', 'EditDirectory@getEdit')
|
|
||||||
->name('upload.editDirectory');
|
|
||||||
|
|
||||||
Route::post('directories/edit/{id}', 'EditDirectory@postEdit')
|
|
||||||
->name('upload.postEditDirectory');
|
|
||||||
|
|
||||||
Route::get('files/overview/{id?}/{type?}/{subtype?}', 'UploadedFilesOverview@getOverview')
|
|
||||||
->name('upload.overview');
|
|
||||||
|
|
||||||
route::post('directories/new', 'CreateNewDirectory@postNew')
|
|
||||||
->name('upload.postNewDirectory');
|
|
||||||
|
|
||||||
Route::get('upload/detail/{id}', 'EditUploadedFile@getDetail')
|
|
||||||
->name('upload.detail');
|
|
||||||
|
|
||||||
Route::post('upload/detail/{id}', 'EditUploadedFile@postEdit')
|
|
||||||
->name('upload.postEdit');
|
|
||||||
|
|
||||||
Route::get('upload/delete/{id}', 'EditUploadedFile@deleteFile')
|
|
||||||
->name('upload.delete');
|
|
||||||
|
|
||||||
// uploader methods
|
|
||||||
Route::post('upload/file', 'UploadFile@postFile')
|
|
||||||
->name('upload.postFile');
|
|
||||||
|
|
||||||
Route::post('upload/image', 'UploadFile@postImage')
|
|
||||||
->name('upload.postImage');
|
|
||||||
|
|
||||||
// form with settings
|
|
||||||
Route::get('settings', 'Settings@getOverview')
|
|
||||||
->name('settings.overview');
|
|
||||||
|
|
||||||
Route::post('settings', 'Settings@saveSettings')
|
|
||||||
->name('settings.save');
|
|
||||||
|
|
||||||
Route::get('search', 'Search@getSearch')
|
|
||||||
->name('search');
|
|
||||||
|
|
||||||
// custom fields
|
|
||||||
// ------------------------------
|
|
||||||
|
|
||||||
// list of all custom fields
|
|
||||||
Route::get('customfields/overview', 'CustomFieldsOverview@getOverview')
|
|
||||||
->name('customfields.overview');
|
|
||||||
|
|
||||||
// logout method
|
|
||||||
Route::get('logout', function () {
|
|
||||||
|
|
||||||
// remove user information
|
|
||||||
\Auth::logout();
|
|
||||||
|
|
||||||
// redirect to login form with info about successfull logout
|
|
||||||
return redirect()
|
|
||||||
->route('login')
|
|
||||||
->with('success', trans('admin/common.logoutSuccessfull'));
|
|
||||||
})
|
|
||||||
->name('logout');
|
|
||||||
});
|
|
||||||
|
|
||||||
/**************************************************************************************/
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This section must be specified as last one
|
|
||||||
*/
|
|
||||||
|
|
||||||
Route::group(['middleware' => ['web']], function () {
|
|
||||||
|
|
||||||
Route::get('/', 'Visitor\Homepage@getIndex')
|
|
||||||
->name('page.index');
|
|
||||||
|
|
||||||
// display login form
|
|
||||||
Route::get('admin/login', function () {
|
|
||||||
return view('admin.loginForm.form');
|
|
||||||
})
|
|
||||||
->name('loginForm');
|
|
||||||
|
|
||||||
// handle login
|
|
||||||
Route::post('admin/login', 'Admin\Login@postLogin')
|
|
||||||
->name('login');
|
|
||||||
|
|
||||||
// route for sitemap
|
|
||||||
Route::get('sitemap.xml', 'Sitemap@getMap')
|
|
||||||
->name('sitemap');
|
|
||||||
|
|
||||||
// route for all content pages. This rule must be specified last (because it matches every route)
|
|
||||||
Route::get('{url}', 'Visitor\ContentPage@getPage')
|
|
||||||
->name('page.content');
|
|
||||||
});
|
});
|
||||||
@@ -5,6 +5,7 @@ namespace App\Models;
|
|||||||
use App\Enumerations\ContentStatuses;
|
use App\Enumerations\ContentStatuses;
|
||||||
use Illuminate\Database\Eloquent\Model;
|
use Illuminate\Database\Eloquent\Model;
|
||||||
use Illuminate\Support\Facades\DB;
|
use Illuminate\Support\Facades\DB;
|
||||||
|
use Mcamara\LaravelLocalization\Facades\LaravelLocalization;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Class Content
|
* Class Content
|
||||||
@@ -15,6 +16,7 @@ class Content extends Model
|
|||||||
protected $fillable = [
|
protected $fillable = [
|
||||||
'user_id',
|
'user_id',
|
||||||
'parent_id',
|
'parent_id',
|
||||||
|
'language',
|
||||||
'module_handler',
|
'module_handler',
|
||||||
'published_from',
|
'published_from',
|
||||||
'published_to',
|
'published_to',
|
||||||
@@ -53,6 +55,7 @@ class Content extends Model
|
|||||||
public function getHomepage()
|
public function getHomepage()
|
||||||
{
|
{
|
||||||
return $this->getPageQuery()
|
return $this->getPageQuery()
|
||||||
|
->where('language', LaravelLocalization::getCurrentLocale())
|
||||||
->where('is_homepage', 1)
|
->where('is_homepage', 1)
|
||||||
->first();
|
->first();
|
||||||
}
|
}
|
||||||
@@ -68,6 +71,7 @@ class Content extends Model
|
|||||||
{
|
{
|
||||||
return $this->getPageQuery()
|
return $this->getPageQuery()
|
||||||
->where('url', $url)
|
->where('url', $url)
|
||||||
|
->where('language', LaravelLocalization::getCurrentLocale())
|
||||||
->first();
|
->first();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -81,6 +85,7 @@ class Content extends Model
|
|||||||
if (!$this->subpagesInit) {
|
if (!$this->subpagesInit) {
|
||||||
$this->subpages = $this->getPageQuery()
|
$this->subpages = $this->getPageQuery()
|
||||||
->where('parent_id', $this->id)
|
->where('parent_id', $this->id)
|
||||||
|
->where('language', LaravelLocalization::getCurrentLocale())
|
||||||
->get();
|
->get();
|
||||||
|
|
||||||
// convert JSON settings into stdClass
|
// convert JSON settings into stdClass
|
||||||
@@ -142,6 +147,7 @@ class Content extends Model
|
|||||||
public function rootPages()
|
public function rootPages()
|
||||||
{
|
{
|
||||||
$rootPages = $this->getPageQuery()
|
$rootPages = $this->getPageQuery()
|
||||||
|
->where('language', LaravelLocalization::getCurrentLocale())
|
||||||
->where('parent_id', null);
|
->where('parent_id', null);
|
||||||
|
|
||||||
if ($this->id) {
|
if ($this->id) {
|
||||||
@@ -166,6 +172,7 @@ class Content extends Model
|
|||||||
$query = DB::table('contents')
|
$query = DB::table('contents')
|
||||||
->select('contents.*', 'modules.name AS module_name')
|
->select('contents.*', 'modules.name AS module_name')
|
||||||
->where('contents.status', '<>', self::STATUS_DELETED)
|
->where('contents.status', '<>', self::STATUS_DELETED)
|
||||||
|
->where('contents.language', LaravelLocalization::getCurrentLocale())
|
||||||
->join('modules', 'modules.handler', '=', 'contents.module_handler')
|
->join('modules', 'modules.handler', '=', 'contents.module_handler')
|
||||||
->orderBy('created_at', 'DESC');
|
->orderBy('created_at', 'DESC');
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,18 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Models;
|
||||||
|
|
||||||
|
use Illuminate\Database\Eloquent\Model;
|
||||||
|
|
||||||
|
class Language extends Model
|
||||||
|
{
|
||||||
|
public $timestamps = false;
|
||||||
|
public $primaryKey = 'code';
|
||||||
|
protected $fillable = [
|
||||||
|
'code',
|
||||||
|
'name',
|
||||||
|
'script',
|
||||||
|
'native'
|
||||||
|
];
|
||||||
|
protected $guarded = [];
|
||||||
|
}
|
||||||
+41
-6
@@ -3,12 +3,26 @@
|
|||||||
namespace App\Models;
|
namespace App\Models;
|
||||||
|
|
||||||
use Illuminate\Database\Eloquent\Model;
|
use Illuminate\Database\Eloquent\Model;
|
||||||
|
use Mcamara\LaravelLocalization\Facades\LaravelLocalization;
|
||||||
|
|
||||||
class Settings extends Model
|
class Settings extends Model
|
||||||
{
|
{
|
||||||
protected $table = 'settings';
|
protected $table = 'settings';
|
||||||
public $timestamps = false;
|
public $timestamps = false;
|
||||||
protected $fillable = ['key', 'value'];
|
protected $fillable = ['key', 'value', 'language'];
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Prepares common query for selecting settings
|
||||||
|
*
|
||||||
|
* @return mixed
|
||||||
|
*/
|
||||||
|
protected function getSettingsQuery()
|
||||||
|
{
|
||||||
|
return Settings::select(['key', 'value', 'language'])
|
||||||
|
->where('language', LaravelLocalization::getCurrentLocale())
|
||||||
|
->orWhere('language', null)
|
||||||
|
->orderBy('language', 'DESC');
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Load all settings
|
* Load all settings
|
||||||
@@ -17,12 +31,33 @@ class Settings extends Model
|
|||||||
*/
|
*/
|
||||||
public function getAll()
|
public function getAll()
|
||||||
{
|
{
|
||||||
$settings = Settings::select(['key', 'value'])
|
$settings = $this->getSettingsQuery()
|
||||||
->get();
|
->get();
|
||||||
|
|
||||||
return $this->returnPairs($settings);
|
return $this->returnPairs($settings);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get all settings with language info
|
||||||
|
*
|
||||||
|
* @return \stdClass
|
||||||
|
*/
|
||||||
|
public function getAllWithLanguage()
|
||||||
|
{
|
||||||
|
$settings = $this->getSettingsQuery()
|
||||||
|
->get();
|
||||||
|
|
||||||
|
$data = new \stdClass();
|
||||||
|
foreach ($settings as $conf) {
|
||||||
|
$data->{$conf->key} = [
|
||||||
|
'val' => $conf->value,
|
||||||
|
'lang' => $conf->language
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
return $data;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Load only config for views
|
* Load only config for views
|
||||||
*
|
*
|
||||||
@@ -30,9 +65,9 @@ class Settings extends Model
|
|||||||
*/
|
*/
|
||||||
public function getForView()
|
public function getForView()
|
||||||
{
|
{
|
||||||
$settings = Settings::select(['key', 'value'])
|
$settings = $this->getSettingsQuery()
|
||||||
->where('load_into_views', 1)
|
->where('load_into_views', 1)
|
||||||
->get();
|
->get();
|
||||||
|
|
||||||
return $this->returnPairs($settings);
|
return $this->returnPairs($settings);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ namespace App\Models;
|
|||||||
|
|
||||||
use Illuminate\Database\Eloquent\Model;
|
use Illuminate\Database\Eloquent\Model;
|
||||||
use Illuminate\Support\Facades\Event;
|
use Illuminate\Support\Facades\Event;
|
||||||
|
use Mcamara\LaravelLocalization\Facades\LaravelLocalization;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Class Widget
|
* Class Widget
|
||||||
@@ -39,6 +40,7 @@ class Widget extends Model
|
|||||||
// create new widget
|
// create new widget
|
||||||
$widget = new Widget();
|
$widget = new Widget();
|
||||||
$widget->widget_type_handler = $widgetType->handler;
|
$widget->widget_type_handler = $widgetType->handler;
|
||||||
|
$widget->language = LaravelLocalization::getCurrentLocale();
|
||||||
$widget->user_id = \Auth::user()->id;
|
$widget->user_id = \Auth::user()->id;
|
||||||
$widget->name = $data->name;
|
$widget->name = $data->name;
|
||||||
|
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ namespace App\Models;
|
|||||||
|
|
||||||
use Illuminate\Database\Eloquent\Model;
|
use Illuminate\Database\Eloquent\Model;
|
||||||
use Illuminate\Support\Facades\DB;
|
use Illuminate\Support\Facades\DB;
|
||||||
|
use Mcamara\LaravelLocalization\Facades\LaravelLocalization;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Class WidgetArea
|
* Class WidgetArea
|
||||||
@@ -25,6 +26,7 @@ class WidgetArea extends Model
|
|||||||
->where('code', $uniqueCode)
|
->where('code', $uniqueCode)
|
||||||
->join('widget_in_widget_area', 'widget_in_widget_area.widget_area_id', '=', 'widget_areas.id')
|
->join('widget_in_widget_area', 'widget_in_widget_area.widget_area_id', '=', 'widget_areas.id')
|
||||||
->join('widgets', 'widget_in_widget_area.widget_id', '=', 'widgets.id')
|
->join('widgets', 'widget_in_widget_area.widget_id', '=', 'widgets.id')
|
||||||
|
->where('language', LaravelLocalization::getCurrentLocale())
|
||||||
->orderBy('widget_in_widget_area.position');
|
->orderBy('widget_in_widget_area.position');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -67,6 +67,7 @@ class AppServiceProvider extends ServiceProvider
|
|||||||
// register PingPong module extension
|
// register PingPong module extension
|
||||||
$this->app->register('Pingpong\Modules\ModulesServiceProvider');
|
$this->app->register('Pingpong\Modules\ModulesServiceProvider');
|
||||||
$this->app->register('Pingpong\Menus\MenusServiceProvider');
|
$this->app->register('Pingpong\Menus\MenusServiceProvider');
|
||||||
|
$this->app->register(LaravelLocalizationServiceProvider::class);
|
||||||
|
|
||||||
// create singletons for registering widgets
|
// create singletons for registering widgets
|
||||||
$this->app->singleton('registerWidget', function ($app) {
|
$this->app->singleton('registerWidget', function ($app) {
|
||||||
|
|||||||
@@ -0,0 +1,42 @@
|
|||||||
|
<?php namespace App\Providers;
|
||||||
|
|
||||||
|
use Illuminate\Support\Facades\DB;
|
||||||
|
use Illuminate\Support\ServiceProvider;
|
||||||
|
use Mcamara\LaravelLocalization\Facades\LaravelLocalization;
|
||||||
|
use Symfony\Component\Translation\Translator;
|
||||||
|
|
||||||
|
class LaravelLocalizationServiceProvider extends ServiceProvider
|
||||||
|
{
|
||||||
|
public function register()
|
||||||
|
{
|
||||||
|
|
||||||
|
$languages = DB::table('languages')
|
||||||
|
->get();
|
||||||
|
|
||||||
|
$supportedLocales = [
|
||||||
|
config('app.locale') => [
|
||||||
|
'native' => env('LOCALE_NATIVE_NAME'),
|
||||||
|
'script' => env('LOCALE_SCRIPT'),
|
||||||
|
'name' => env('LOCALE_TRANSLATED_NAME'),
|
||||||
|
]
|
||||||
|
];
|
||||||
|
foreach ($languages as $language) {
|
||||||
|
$supportedLocales[$language->code] = [
|
||||||
|
'native' => $language->native,
|
||||||
|
'name' => $language->name,
|
||||||
|
'script' => $language->script
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
config([
|
||||||
|
'laravellocalization.supportedLocales' => $supportedLocales,
|
||||||
|
'laravellocalization.useAcceptLanguageHeader' => true,
|
||||||
|
'laravellocalization.hideDefaultLocaleInURL' => true
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function boot()
|
||||||
|
{
|
||||||
|
\App::setLocale(LaravelLocalization::getCurrentLocale());
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,10 +1,11 @@
|
|||||||
<?php
|
<?php
|
||||||
namespace App\Widgets\Menu;
|
namespace App\Widgets\Menu;
|
||||||
|
|
||||||
use App\Http\Requests\Request;
|
use App\Models\Content;
|
||||||
use App\Widgets\Contracts\WidgetRenderer;
|
use App\Widgets\Contracts\WidgetRenderer;
|
||||||
use App\Widgets\Exceptions\MissingParameterException;
|
use App\Widgets\Exceptions\MissingParameterException;
|
||||||
use App\Widgets\NonInstallableWidget;
|
use App\Widgets\NonInstallableWidget;
|
||||||
|
use Mcamara\LaravelLocalization\Facades\LaravelLocalization;
|
||||||
|
|
||||||
class Menu extends NonInstallableWidget
|
class Menu extends NonInstallableWidget
|
||||||
{
|
{
|
||||||
@@ -40,7 +41,7 @@ class Menu extends NonInstallableWidget
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @param \App\Models\Widget $widget
|
* @param \App\Models\Widget $widget
|
||||||
* @param \stdClass $data
|
* @param \stdClass $data
|
||||||
*
|
*
|
||||||
* @return mixed
|
* @return mixed
|
||||||
*/
|
*/
|
||||||
@@ -50,8 +51,17 @@ class Menu extends NonInstallableWidget
|
|||||||
throw new MissingParameterException('settings');
|
throw new MissingParameterException('settings');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$links = json_decode($data->settings);
|
||||||
|
$pages = self::selectContentPages(array_keys((array)$links));
|
||||||
|
|
||||||
|
foreach ($links as $link) {
|
||||||
|
if (!isset($pages[$link->id])) {
|
||||||
|
unset($links->{$link->id});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
$settings = [
|
$settings = [
|
||||||
'links' => json_decode($data->settings),
|
'links' => $links,
|
||||||
'containerClass' => $data->containerClass
|
'containerClass' => $data->containerClass
|
||||||
];
|
];
|
||||||
|
|
||||||
@@ -59,4 +69,18 @@ class Menu extends NonInstallableWidget
|
|||||||
|
|
||||||
return $widget;
|
return $widget;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static function selectContentPages($ids)
|
||||||
|
{
|
||||||
|
$pages = Content::where('status', '!=', Content::STATUS_DELETED)
|
||||||
|
->where('language', LaravelLocalization::getCurrentLocale())
|
||||||
|
->whereIn('id', $ids)
|
||||||
|
->get();
|
||||||
|
$used = [];
|
||||||
|
foreach ($pages as $page) {
|
||||||
|
$used[$page->id] = $page;
|
||||||
|
}
|
||||||
|
|
||||||
|
return $used;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -8,23 +8,10 @@ use App\Widgets\Contracts\WidgetRenderer;
|
|||||||
use Illuminate\Support\Facades\App;
|
use Illuminate\Support\Facades\App;
|
||||||
use Illuminate\Support\Facades\Request;
|
use Illuminate\Support\Facades\Request;
|
||||||
use Illuminate\Support\Facades\Route;
|
use Illuminate\Support\Facades\Route;
|
||||||
|
use Mcamara\LaravelLocalization\Facades\LaravelLocalization;
|
||||||
|
|
||||||
class Menu implements WidgetRenderer
|
class Menu implements WidgetRenderer
|
||||||
{
|
{
|
||||||
protected static function selectContentPages($ids)
|
|
||||||
{
|
|
||||||
$pages = Content::where('status', '!=', Content::STATUS_DELETED)
|
|
||||||
->whereIn('id', $ids)
|
|
||||||
->get();
|
|
||||||
$used = [];
|
|
||||||
|
|
||||||
foreach ($pages as $page) {
|
|
||||||
$used[$page->id] = $page;
|
|
||||||
}
|
|
||||||
|
|
||||||
return $used;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Method used for displaying widget.
|
* Method used for displaying widget.
|
||||||
*
|
*
|
||||||
@@ -41,7 +28,7 @@ class Menu implements WidgetRenderer
|
|||||||
$pageIds = array_keys($links);
|
$pageIds = array_keys($links);
|
||||||
|
|
||||||
// get pages
|
// get pages
|
||||||
$pages = self::selectContentPages($pageIds);
|
$pages = \App\Widgets\Menu\Menu::selectContentPages($pageIds);
|
||||||
|
|
||||||
// sort links using "order"
|
// sort links using "order"
|
||||||
uasort($links, function ($a, $b) {
|
uasort($links, function ($a, $b) {
|
||||||
|
|||||||
+2
-1
@@ -11,7 +11,8 @@
|
|||||||
"laravel/framework": "5.2.*",
|
"laravel/framework": "5.2.*",
|
||||||
"pingpong/modules": "~2.0",
|
"pingpong/modules": "~2.0",
|
||||||
"pingpong/menus": "^2.2",
|
"pingpong/menus": "^2.2",
|
||||||
"watson/sitemap": "^2.0"
|
"watson/sitemap": "^2.0",
|
||||||
|
"mcamara/laravel-localization": "^1.1"
|
||||||
},
|
},
|
||||||
"require-dev": {
|
"require-dev": {
|
||||||
"fzaninotto/faker": "~1.4",
|
"fzaninotto/faker": "~1.4",
|
||||||
|
|||||||
Generated
+62
-14
@@ -4,8 +4,8 @@
|
|||||||
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
|
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
|
||||||
"This file is @generated automatically"
|
"This file is @generated automatically"
|
||||||
],
|
],
|
||||||
"hash": "64dd6115505ac9f62926d5fccc14704d",
|
"hash": "3a1cbb52ac8547058b740bac891b3b82",
|
||||||
"content-hash": "8cefeb3bdf109c79d77ac6cb303a1a96",
|
"content-hash": "f274b2d31a4a37163ddd90984815797d",
|
||||||
"packages": [
|
"packages": [
|
||||||
{
|
{
|
||||||
"name": "classpreloader/classpreloader",
|
"name": "classpreloader/classpreloader",
|
||||||
@@ -796,12 +796,12 @@
|
|||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/laravel/framework.git",
|
"url": "https://github.com/laravel/framework.git",
|
||||||
"reference": "9d853b9b2db24849b68ce219d80fc68165807810"
|
"reference": "f6a4db472ca9013e56d8a7065c9fd64383a3d4d4"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/laravel/framework/zipball/9d853b9b2db24849b68ce219d80fc68165807810",
|
"url": "https://api.github.com/repos/laravel/framework/zipball/f6a4db472ca9013e56d8a7065c9fd64383a3d4d4",
|
||||||
"reference": "9d853b9b2db24849b68ce219d80fc68165807810",
|
"reference": "f6a4db472ca9013e56d8a7065c9fd64383a3d4d4",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
@@ -918,7 +918,7 @@
|
|||||||
"framework",
|
"framework",
|
||||||
"laravel"
|
"laravel"
|
||||||
],
|
],
|
||||||
"time": "2016-07-21 15:40:02"
|
"time": "2016-07-22 22:19:36"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "laravelcollective/html",
|
"name": "laravelcollective/html",
|
||||||
@@ -1057,6 +1057,54 @@
|
|||||||
],
|
],
|
||||||
"time": "2016-07-21 09:35:56"
|
"time": "2016-07-21 09:35:56"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"name": "mcamara/laravel-localization",
|
||||||
|
"version": "1.1.4",
|
||||||
|
"source": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/mcamara/laravel-localization.git",
|
||||||
|
"reference": "239d711d1f861e333e6de73d98dabdf94500512e"
|
||||||
|
},
|
||||||
|
"dist": {
|
||||||
|
"type": "zip",
|
||||||
|
"url": "https://api.github.com/repos/mcamara/laravel-localization/zipball/239d711d1f861e333e6de73d98dabdf94500512e",
|
||||||
|
"reference": "239d711d1f861e333e6de73d98dabdf94500512e",
|
||||||
|
"shasum": ""
|
||||||
|
},
|
||||||
|
"require": {
|
||||||
|
"laravel/framework": "~5.2",
|
||||||
|
"php": ">=5.5.0"
|
||||||
|
},
|
||||||
|
"require-dev": {
|
||||||
|
"orchestra/testbench": "3.2.*"
|
||||||
|
},
|
||||||
|
"type": "library",
|
||||||
|
"autoload": {
|
||||||
|
"classmap": [],
|
||||||
|
"psr-0": {
|
||||||
|
"Mcamara\\LaravelLocalization": "src/"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"notification-url": "https://packagist.org/downloads/",
|
||||||
|
"license": [
|
||||||
|
"MIT"
|
||||||
|
],
|
||||||
|
"authors": [
|
||||||
|
{
|
||||||
|
"name": "Marc Cámara",
|
||||||
|
"email": "mcamara88@gmail.com",
|
||||||
|
"role": "Developer"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"description": "Easy localization for Laravel",
|
||||||
|
"homepage": "https://github.com/mcamara/laravel-localization",
|
||||||
|
"keywords": [
|
||||||
|
"laravel",
|
||||||
|
"localization",
|
||||||
|
"php"
|
||||||
|
],
|
||||||
|
"time": "2016-07-11 12:59:33"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "monolog/monolog",
|
"name": "monolog/monolog",
|
||||||
"version": "1.x-dev",
|
"version": "1.x-dev",
|
||||||
@@ -3551,28 +3599,28 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "sebastian/environment",
|
"name": "sebastian/environment",
|
||||||
"version": "dev-master",
|
"version": "1.3.x-dev",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/sebastianbergmann/environment.git",
|
"url": "https://github.com/sebastianbergmann/environment.git",
|
||||||
"reference": "a13903bf5fd0239748fe322dfbdd5f5720ab20e6"
|
"reference": "622c5dc0a8036cfc4ccd73c7b1b668a431e69d96"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/a13903bf5fd0239748fe322dfbdd5f5720ab20e6",
|
"url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/622c5dc0a8036cfc4ccd73c7b1b668a431e69d96",
|
||||||
"reference": "a13903bf5fd0239748fe322dfbdd5f5720ab20e6",
|
"reference": "622c5dc0a8036cfc4ccd73c7b1b668a431e69d96",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
"php": "^5.6 || ^7.0"
|
"php": "^5.3.3 || ^7.0"
|
||||||
},
|
},
|
||||||
"require-dev": {
|
"require-dev": {
|
||||||
"phpunit/phpunit": "^5.0"
|
"phpunit/phpunit": "^4.8 || ^5.0"
|
||||||
},
|
},
|
||||||
"type": "library",
|
"type": "library",
|
||||||
"extra": {
|
"extra": {
|
||||||
"branch-alias": {
|
"branch-alias": {
|
||||||
"dev-master": "2.0.x-dev"
|
"dev-master": "1.3.x-dev"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"autoload": {
|
"autoload": {
|
||||||
@@ -3597,7 +3645,7 @@
|
|||||||
"environment",
|
"environment",
|
||||||
"hhvm"
|
"hhvm"
|
||||||
],
|
],
|
||||||
"time": "2016-06-11 08:54:23"
|
"time": "2016-06-11 08:21:19"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "sebastian/exporter",
|
"name": "sebastian/exporter",
|
||||||
|
|||||||
+35
-33
@@ -149,6 +149,7 @@ return [
|
|||||||
Illuminate\Translation\TranslationServiceProvider::class,
|
Illuminate\Translation\TranslationServiceProvider::class,
|
||||||
Illuminate\Validation\ValidationServiceProvider::class,
|
Illuminate\Validation\ValidationServiceProvider::class,
|
||||||
Illuminate\View\ViewServiceProvider::class,
|
Illuminate\View\ViewServiceProvider::class,
|
||||||
|
Mcamara\LaravelLocalization\LaravelLocalizationServiceProvider::class,
|
||||||
// this class must be before ModulesServiceProvider from PingPong, because it handles files module.json
|
// this class must be before ModulesServiceProvider from PingPong, because it handles files module.json
|
||||||
App\Providers\ModuleManager::class,
|
App\Providers\ModuleManager::class,
|
||||||
Pingpong\Modules\ModulesServiceProvider::class,
|
Pingpong\Modules\ModulesServiceProvider::class,
|
||||||
@@ -177,39 +178,40 @@ return [
|
|||||||
|
|
||||||
'aliases' => [
|
'aliases' => [
|
||||||
|
|
||||||
'App' => Illuminate\Support\Facades\App::class,
|
'App' => Illuminate\Support\Facades\App::class,
|
||||||
'Artisan' => Illuminate\Support\Facades\Artisan::class,
|
'Artisan' => Illuminate\Support\Facades\Artisan::class,
|
||||||
'Auth' => Illuminate\Support\Facades\Auth::class,
|
'Auth' => Illuminate\Support\Facades\Auth::class,
|
||||||
'Blade' => Illuminate\Support\Facades\Blade::class,
|
'Blade' => Illuminate\Support\Facades\Blade::class,
|
||||||
'Cache' => Illuminate\Support\Facades\Cache::class,
|
'Cache' => Illuminate\Support\Facades\Cache::class,
|
||||||
'Config' => Illuminate\Support\Facades\Config::class,
|
'Config' => Illuminate\Support\Facades\Config::class,
|
||||||
'Cookie' => Illuminate\Support\Facades\Cookie::class,
|
'Cookie' => Illuminate\Support\Facades\Cookie::class,
|
||||||
'Crypt' => Illuminate\Support\Facades\Crypt::class,
|
'Crypt' => Illuminate\Support\Facades\Crypt::class,
|
||||||
'DB' => Illuminate\Support\Facades\DB::class,
|
'DB' => Illuminate\Support\Facades\DB::class,
|
||||||
'Eloquent' => Illuminate\Database\Eloquent\Model::class,
|
'Eloquent' => Illuminate\Database\Eloquent\Model::class,
|
||||||
'Event' => Illuminate\Support\Facades\Event::class,
|
'Event' => Illuminate\Support\Facades\Event::class,
|
||||||
'File' => Illuminate\Support\Facades\File::class,
|
'File' => Illuminate\Support\Facades\File::class,
|
||||||
'Gate' => Illuminate\Support\Facades\Gate::class,
|
'Gate' => Illuminate\Support\Facades\Gate::class,
|
||||||
'Hash' => Illuminate\Support\Facades\Hash::class,
|
'Hash' => Illuminate\Support\Facades\Hash::class,
|
||||||
'Lang' => Illuminate\Support\Facades\Lang::class,
|
'Lang' => Illuminate\Support\Facades\Lang::class,
|
||||||
'Log' => Illuminate\Support\Facades\Log::class,
|
'Log' => Illuminate\Support\Facades\Log::class,
|
||||||
'Mail' => Illuminate\Support\Facades\Mail::class,
|
'Mail' => Illuminate\Support\Facades\Mail::class,
|
||||||
'Menu' => Pingpong\Menus\MenuFacade::class,
|
'Menu' => Pingpong\Menus\MenuFacade::class,
|
||||||
'Module' => Pingpong\Modules\Facades\Module::class,
|
'Module' => Pingpong\Modules\Facades\Module::class,
|
||||||
'Password' => Illuminate\Support\Facades\Password::class,
|
'Password' => Illuminate\Support\Facades\Password::class,
|
||||||
'Queue' => Illuminate\Support\Facades\Queue::class,
|
'Queue' => Illuminate\Support\Facades\Queue::class,
|
||||||
'Redirect' => Illuminate\Support\Facades\Redirect::class,
|
'Redirect' => Illuminate\Support\Facades\Redirect::class,
|
||||||
'Redis' => Illuminate\Support\Facades\Redis::class,
|
'Redis' => Illuminate\Support\Facades\Redis::class,
|
||||||
'Request' => Illuminate\Support\Facades\Request::class,
|
'Request' => Illuminate\Support\Facades\Request::class,
|
||||||
'Response' => Illuminate\Support\Facades\Response::class,
|
'Response' => Illuminate\Support\Facades\Response::class,
|
||||||
'Route' => Illuminate\Support\Facades\Route::class,
|
'Route' => Illuminate\Support\Facades\Route::class,
|
||||||
'Schema' => Illuminate\Support\Facades\Schema::class,
|
'Schema' => Illuminate\Support\Facades\Schema::class,
|
||||||
'Session' => Illuminate\Support\Facades\Session::class,
|
'Session' => Illuminate\Support\Facades\Session::class,
|
||||||
'Sitemap' => Watson\Sitemap\Facades\Sitemap::class,
|
'Sitemap' => Watson\Sitemap\Facades\Sitemap::class,
|
||||||
'Storage' => Illuminate\Support\Facades\Storage::class,
|
'Storage' => Illuminate\Support\Facades\Storage::class,
|
||||||
'URL' => Illuminate\Support\Facades\URL::class,
|
'URL' => Illuminate\Support\Facades\URL::class,
|
||||||
'Validator' => Illuminate\Support\Facades\Validator::class,
|
'Validator' => Illuminate\Support\Facades\Validator::class,
|
||||||
'View' => Illuminate\Support\Facades\View::class,
|
'LaravelLocalization' => Mcamara\LaravelLocalization\Facades\LaravelLocalization::class,
|
||||||
|
'View' => Illuminate\Support\Facades\View::class,
|
||||||
|
|
||||||
],
|
],
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -59,7 +59,7 @@ return [
|
|||||||
'username' => env('DB_USERNAME', 'forge'),
|
'username' => env('DB_USERNAME', 'forge'),
|
||||||
'password' => env('DB_PASSWORD', ''),
|
'password' => env('DB_PASSWORD', ''),
|
||||||
'charset' => 'utf8',
|
'charset' => 'utf8',
|
||||||
'collation' => 'utf8_unicode_ci',
|
'collation' => 'utf8_general_ci',
|
||||||
'prefix' => '',
|
'prefix' => '',
|
||||||
'strict' => false,
|
'strict' => false,
|
||||||
],
|
],
|
||||||
|
|||||||
@@ -0,0 +1,33 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
use Illuminate\Database\Migrations\Migration;
|
||||||
|
use Illuminate\Database\Schema\Blueprint;
|
||||||
|
use Illuminate\Support\Facades\Schema;
|
||||||
|
|
||||||
|
class MakeLangEnumerations extends Migration
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Run the migrations.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function up()
|
||||||
|
{
|
||||||
|
Schema::create('languages', function (Blueprint $table) {
|
||||||
|
$table->string('code', 8)
|
||||||
|
->primary();
|
||||||
|
$table->string('name')
|
||||||
|
->comment('Translated name for given language');
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Reverse the migrations.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function down()
|
||||||
|
{
|
||||||
|
Schema::drop('languages');
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,37 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
use Illuminate\Database\Migrations\Migration;
|
||||||
|
use Illuminate\Database\Schema\Blueprint;
|
||||||
|
use Illuminate\Support\Facades\Schema;
|
||||||
|
|
||||||
|
class AddFieldsIntoLanguages extends Migration
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Run the migrations.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function up()
|
||||||
|
{
|
||||||
|
Schema::table('languages', function (Blueprint $table) {
|
||||||
|
$table->string('script', 16)
|
||||||
|
->default('Latn')
|
||||||
|
->comment('ISO code for locale script (Latn, Arab, ...)');
|
||||||
|
$table->string('native')
|
||||||
|
->comment('Native name for language');
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Reverse the migrations.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function down()
|
||||||
|
{
|
||||||
|
Schema::table('languages', function (Blueprint $table) {
|
||||||
|
$table->dropColumn('script');
|
||||||
|
$table->dropColumn('native');
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,75 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
use Illuminate\Database\Migrations\Migration;
|
||||||
|
use Illuminate\Database\Schema\Blueprint;
|
||||||
|
use Illuminate\Support\Facades\DB;
|
||||||
|
use Illuminate\Support\Facades\Schema;
|
||||||
|
|
||||||
|
class AddLanguageToContentPages extends Migration
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Run the migrations.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function up()
|
||||||
|
{
|
||||||
|
$platform = Schema::getConnection()
|
||||||
|
->getDoctrineSchemaManager()
|
||||||
|
->getDatabasePlatform();
|
||||||
|
$platform->registerDoctrineTypeMapping('enum', 'string');
|
||||||
|
|
||||||
|
DB::raw('ALTER TABLE `languages`
|
||||||
|
CHANGE `code` `code` varchar(8) COLLATE \'utf8_general_ci\' NOT NULL FIRST,
|
||||||
|
CHANGE `name` `name` varchar(255) COLLATE \'utf8_general_ci\' NOT NULL COMMENT \'Translated name for given language\' AFTER `code`,
|
||||||
|
CHANGE `script` `script` varchar(16) COLLATE \'utf8_general_ci\' NOT NULL DEFAULT \'Latn\' COMMENT \'ISO code for locale script (Latn, Arab, ...)\' AFTER `name`,
|
||||||
|
CHANGE `native` `native` varchar(255) COLLATE \'utf8_general_ci\' NOT NULL COMMENT \'Native name for language\' AFTER `script`,
|
||||||
|
COLLATE \'utf8_general_ci\';');
|
||||||
|
|
||||||
|
Schema::table('contents', function (Blueprint $table) {
|
||||||
|
$table->string('language', 8)
|
||||||
|
->after('template')
|
||||||
|
->default(\App::getLocale());
|
||||||
|
});
|
||||||
|
|
||||||
|
Schema::table('contents', function (Blueprint $table) {
|
||||||
|
$table->index('language')
|
||||||
|
->change();
|
||||||
|
|
||||||
|
$table->unique(['language', 'url']);
|
||||||
|
|
||||||
|
$doctrine = Schema::getConnection()
|
||||||
|
->getDoctrineSchemaManager()
|
||||||
|
->listTableDetails('contents');
|
||||||
|
|
||||||
|
// remove unique index from URL column
|
||||||
|
if ($doctrine->hasIndex('url_UNIQUE')) {
|
||||||
|
$table->dropUnique('url_UNIQUE');
|
||||||
|
} else {
|
||||||
|
$table->dropUnique('contents_url_unique');
|
||||||
|
}
|
||||||
|
|
||||||
|
$table->foreign('language')
|
||||||
|
->references('code')
|
||||||
|
->on('languages')
|
||||||
|
->onDelete('cascade')
|
||||||
|
->onUpdate('cascade');
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Reverse the migrations.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function down()
|
||||||
|
{
|
||||||
|
Schema::table('contents', function (Blueprint $table) {
|
||||||
|
$table->dropForeign('contents_language_foreign');
|
||||||
|
$table->dropIndex('contents_language_index');
|
||||||
|
$table->dropUnique('contents_language_url_unique');
|
||||||
|
$table->dropColumn('language');
|
||||||
|
$table->unique('url');
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,41 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
use Illuminate\Database\Migrations\Migration;
|
||||||
|
use Illuminate\Database\Schema\Blueprint;
|
||||||
|
use Illuminate\Support\Facades\Schema;
|
||||||
|
|
||||||
|
class AddLanguageIntoWidgets extends Migration
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Run the migrations.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function up()
|
||||||
|
{
|
||||||
|
Schema::table('widgets', function (Blueprint $table) {
|
||||||
|
$table->string('language', 8)
|
||||||
|
->after('widget_type_handler')
|
||||||
|
->default(\App::getLocale());
|
||||||
|
|
||||||
|
$table->foreign('language')
|
||||||
|
->references('code')
|
||||||
|
->on('languages')
|
||||||
|
->onDelete('cascade')
|
||||||
|
->onUpdate('cascade');
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Reverse the migrations.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function down()
|
||||||
|
{
|
||||||
|
Schema::table('widgets', function (Blueprint $table) {
|
||||||
|
$table->dropForeign('widgets_language_foreign');
|
||||||
|
$table->dropColumn('language');
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,53 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
use Illuminate\Database\Migrations\Migration;
|
||||||
|
use Illuminate\Database\Schema\Blueprint;
|
||||||
|
use Illuminate\Support\Facades\DB;
|
||||||
|
|
||||||
|
class AddLanguageIntoSettings extends Migration
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Run the migrations.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function up()
|
||||||
|
{
|
||||||
|
DB::raw("ALTER TABLE `settings`
|
||||||
|
CHANGE `language` `language` varchar(8) COLLATE 'utf8_general_ci' NULL AFTER `id`,
|
||||||
|
CHANGE `key` `key` varchar(64) COLLATE 'utf8_general_ci' NOT NULL COMMENT 'User readable key for accessing value of this config. Config will be available under this key also in views.' AFTER `language`,
|
||||||
|
CHANGE `value` `value` text COLLATE 'utf8_general_ci' NOT NULL COMMENT 'Value of config.' AFTER `key`,
|
||||||
|
COLLATE 'utf8_general_ci';");
|
||||||
|
|
||||||
|
Schema::table('settings', function (Blueprint $table) {
|
||||||
|
$table->string('language', 8)
|
||||||
|
->after('id')
|
||||||
|
->nullable(true)
|
||||||
|
->default(null);
|
||||||
|
|
||||||
|
$table->dropUnique('settings_key_unique');
|
||||||
|
$table->unique(['key', 'language']);
|
||||||
|
|
||||||
|
$table->foreign('language')
|
||||||
|
->references('code')
|
||||||
|
->on('languages')
|
||||||
|
->onDelete('set null')
|
||||||
|
->onUpdate('cascade');
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Reverse the migrations.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function down()
|
||||||
|
{
|
||||||
|
Schema::table('settings', function (Blueprint $table) {
|
||||||
|
$table->dropForeign('settings_language_foreign');
|
||||||
|
$table->dropColumn('language');
|
||||||
|
$table->dropUnique('settings_key_language_unique');
|
||||||
|
$table->unique('key');
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,13 +1,13 @@
|
|||||||
<label>
|
<label>
|
||||||
@lang('contactform::admin/settings.recaptchaSiteKey')
|
@lang('contactform::admin/settings.recaptchaSiteKey')
|
||||||
|
|
||||||
<input type="text" name="recaptchaSiteKey" value="{{old('recaptchaSiteKey', isset($settings->recaptchaSiteKey) ? $settings->recaptchaSiteKey : null)}}" />
|
<input type="text" name="recaptchaSiteKey" value="{{old('recaptchaSiteKey', isset($settings->recaptchaSiteKey) ? $settings->recaptchaSiteKey['val'] : null)}}" />
|
||||||
</label>
|
</label>
|
||||||
|
|
||||||
<label>
|
<label>
|
||||||
@lang('contactform::admin/settings.recaptchaSecret')
|
@lang('contactform::admin/settings.recaptchaSecret')
|
||||||
|
|
||||||
<input type="text" name="recaptchaSecret" value="{{old('recaptchaSecret', isset($settings->recaptchaSecret) ? $settings->recaptchaSecret : null)}}" />
|
<input type="text" name="recaptchaSecret" value="{{old('recaptchaSecret', isset($settings->recaptchaSecret) ? $settings->recaptchaSecret['val'] : null)}}" />
|
||||||
</label>
|
</label>
|
||||||
|
|
||||||
<em><a href="https://www.google.com/recaptcha/admin#list" target="_blank">reCAPTCHA</a></em>
|
<em><a href="https://www.google.com/recaptcha/admin#list" target="_blank">reCAPTCHA</a></em>
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
<?php
|
||||||
|
return [
|
||||||
|
'overview' => 'Seznam všech obsahových stránek',
|
||||||
|
];
|
||||||
@@ -11,8 +11,9 @@ return [
|
|||||||
'successfullySaved' => 'Settings successfully saved',
|
'successfullySaved' => 'Settings successfully saved',
|
||||||
'nothingToSave' => 'You have submitted unchanged form. Try to change some attribute first.',
|
'nothingToSave' => 'You have submitted unchanged form. Try to change some attribute first.',
|
||||||
'meta' => 'Meta information',
|
'meta' => 'Meta information',
|
||||||
'socialSites' => 'Social networks',
|
'commonSettings' => 'Use for all languages?',
|
||||||
'social' => [
|
'socialSites' => 'Social networks',
|
||||||
|
'social' => [
|
||||||
'facebook' => 'Facebook profile',
|
'facebook' => 'Facebook profile',
|
||||||
'instagram' => 'Instagram profile',
|
'instagram' => 'Instagram profile',
|
||||||
'twitter' => 'Twitter profile',
|
'twitter' => 'Twitter profile',
|
||||||
|
|||||||
@@ -0,0 +1,7 @@
|
|||||||
|
<?php
|
||||||
|
return [
|
||||||
|
'lang' => [
|
||||||
|
'english' => 'English',
|
||||||
|
'czech' => 'Czech'
|
||||||
|
]
|
||||||
|
];
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
<?php
|
|
||||||
return [
|
|
||||||
'welcome' => 'Welcome to my page'
|
|
||||||
];
|
|
||||||
@@ -10,5 +10,6 @@ return [
|
|||||||
'new' => 'New menu',
|
'new' => 'New menu',
|
||||||
'edit' => 'Edit menu',
|
'edit' => 'Edit menu',
|
||||||
'preview' => 'Menu preview',
|
'preview' => 'Menu preview',
|
||||||
'availablePages' => 'Available pages'
|
'availablePages' => 'Available pages',
|
||||||
|
'noLinks' => 'Cannot save menu without any link!',
|
||||||
];
|
];
|
||||||
@@ -5,7 +5,7 @@
|
|||||||
<meta http-equiv="x-ua-compatible" content="ie=edge">
|
<meta http-equiv="x-ua-compatible" content="ie=edge">
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||||
@yield('head_meta')
|
@yield('head_meta')
|
||||||
<title>@yield('pageName', @trans('admin/common.admin')) | {{$pageName}}</title>
|
<title>@yield('pageName', @trans('admin/common.admin')) | {{isset($pageName) ? $pageName : ''}}</title>
|
||||||
<link rel="stylesheet" href="{{asset('resources/assets/css/foundation.min.css')}}" />
|
<link rel="stylesheet" href="{{asset('resources/assets/css/foundation.min.css')}}" />
|
||||||
<link rel="stylesheet" href="{{asset('resources/assets/css/font-awesome.min.css')}}" />
|
<link rel="stylesheet" href="{{asset('resources/assets/css/font-awesome.min.css')}}" />
|
||||||
<link rel="stylesheet" href="{{asset('resources/assets/css/admin.css')}}" />
|
<link rel="stylesheet" href="{{asset('resources/assets/css/admin.css')}}" />
|
||||||
@@ -17,7 +17,21 @@
|
|||||||
|
|
||||||
<header class="row nav top-bar">
|
<header class="row nav top-bar">
|
||||||
<section class="logo columns small-1 medium-3 large-2">
|
<section class="logo columns small-1 medium-3 large-2">
|
||||||
|
<ul class="dropdown menu language_bar_chooser" data-dropdown-menu>
|
||||||
|
<li>
|
||||||
|
<a href="#">@lang(LaravelLocalization::getCurrentLocaleName())</a>
|
||||||
|
<ul class="menu">
|
||||||
|
@foreach(LaravelLocalization::getSupportedLocales() as $localeCode => $properties)
|
||||||
|
<li @if(LaravelLocalization::getCurrentLocale() == $localeCode) class="active" @endif>
|
||||||
|
<a rel="alternate" hreflang="{{$localeCode}}"
|
||||||
|
href="{{LaravelLocalization::getLocalizedURL($localeCode) }}">
|
||||||
|
{{ $properties['native'] }}
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
@endforeach
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
<section class="heading columns small-10 medium-8 large-8">
|
<section class="heading columns small-10 medium-8 large-8">
|
||||||
@@ -48,7 +62,7 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<footer class="row text-center">
|
<footer class="row text-center">
|
||||||
© {{$pageName}} {{date('Y')}}
|
© {{isset($pageName) ? $pageName : ''}} {{date('Y')}}
|
||||||
</footer>
|
</footer>
|
||||||
</div>
|
</div>
|
||||||
<script src="{{asset('resources/assets/js/vendor/jquery.min.js')}}"></script>
|
<script src="{{asset('resources/assets/js/vendor/jquery.min.js')}}"></script>
|
||||||
|
|||||||
@@ -1,17 +1,27 @@
|
|||||||
<label>
|
<label>
|
||||||
@lang('admin/settings.pageName')
|
@lang('admin/settings.pageName')
|
||||||
|
|
||||||
<input type="text" name="pageName" value="{{old('pageName', $settings->pageName)}}" />
|
<input type="text" name="pageName" value="{{old('pageName', isset($settings->pageName) ? $settings->pageName['val'] : '')}}" />
|
||||||
|
|
||||||
|
@if (isset($errors) && $errors->has('pageName'))
|
||||||
|
<div class="callout alert">
|
||||||
|
{{ $errors->first('pageName') }}
|
||||||
|
</div>
|
||||||
|
@endif
|
||||||
</label>
|
</label>
|
||||||
|
|
||||||
<label>
|
<label>
|
||||||
@lang('admin/settings.author')
|
@lang('admin/settings.author')
|
||||||
|
|
||||||
<input type="text" name="author" value="{{old('author', $settings->author)}}" />
|
<input type="text" name="author" value="{{old('author', isset($settings->author) ? $settings->author['val'] : '')}}" />
|
||||||
|
|
||||||
|
@include('admin.settings.snippets.commonSettings', ['field' => 'author'])
|
||||||
</label>
|
</label>
|
||||||
|
|
||||||
<label>
|
<label>
|
||||||
@lang('admin/settings.googleAnalyticsCode')
|
@lang('admin/settings.googleAnalyticsCode')
|
||||||
|
|
||||||
<input type="text" name="googleAnalyticsCode" value="{{old('googleAnalyticsCode', $settings->googleAnalyticsCode)}}" />
|
<input type="text" name="googleAnalyticsCode" value="{{old('googleAnalyticsCode', isset($settings->googleAnalyticsCode) ? $settings->googleAnalyticsCode['val'] : '')}}" />
|
||||||
|
|
||||||
|
@include('admin.settings.snippets.commonSettings', ['field' => 'googleAnalyticsCode'])
|
||||||
</label>
|
</label>
|
||||||
@@ -1,11 +1,13 @@
|
|||||||
<label>
|
<label>
|
||||||
@lang('admin/settings.metaKeywords')
|
@lang('admin/settings.metaKeywords')
|
||||||
|
|
||||||
<input type="text" name="metaKeywords" value="{{old('metaKeywords', $settings->metaKeywords)}}" />
|
<input type="text" name="metaKeywords"
|
||||||
|
value="{{old('metaKeywords', isset($settings->metaKeywords) ? $settings->metaKeywords['val'] : '')}}" />
|
||||||
</label>
|
</label>
|
||||||
|
|
||||||
<label>
|
<label>
|
||||||
@lang('admin/settings.metaDescription')
|
@lang('admin/settings.metaDescription')
|
||||||
|
|
||||||
<textarea name="metaDescription" rows="3">{{old('metaDescription', $settings->metaDescription)}}</textarea>
|
<textarea name="metaDescription"
|
||||||
|
rows="3">{{old('metaDescription', isset($settings->metaDescription) ? $settings->metaDescription['val'] : '')}}</textarea>
|
||||||
</label>
|
</label>
|
||||||
@@ -1,29 +1,29 @@
|
|||||||
<label>
|
<label>
|
||||||
@lang('admin/settings.social.facebook')
|
@lang('admin/settings.social.facebook')
|
||||||
|
|
||||||
<input type="text" name="facebookProfile" value="{{old('facebookProfile', isset($settings->facebookProfile) ? $settings->facebookProfile : '')}}" />
|
<input type="text" name="facebookProfile" value="{{old('facebookProfile', isset($settings->facebookProfile) ? $settings->facebookProfile['val'] : '')}}" />
|
||||||
</label>
|
</label>
|
||||||
|
|
||||||
<label>
|
<label>
|
||||||
@lang('admin/settings.social.twitter')
|
@lang('admin/settings.social.twitter')
|
||||||
|
|
||||||
<input type="text" name="twitterProfile" value="{{old('twitterProfile', isset($settings->twitterProfile) ? $settings->twitterProfile : '')}}" />
|
<input type="text" name="twitterProfile" value="{{old('twitterProfile', isset($settings->twitterProfile) ? $settings->twitterProfile['val'] : '')}}" />
|
||||||
</label>
|
</label>
|
||||||
|
|
||||||
<label>
|
<label>
|
||||||
@lang('admin/settings.social.pinterest')
|
@lang('admin/settings.social.pinterest')
|
||||||
|
|
||||||
<input type="text" name="pinterestProfile" value="{{old('pinterestProfile', isset($settings->pinterestProfile) ? $settings->pinterestProfile : '')}}" />
|
<input type="text" name="pinterestProfile" value="{{old('pinterestProfile', isset($settings->pinterestProfile) ? $settings->pinterestProfile['val'] : '')}}" />
|
||||||
</label>
|
</label>
|
||||||
|
|
||||||
<label>
|
<label>
|
||||||
@lang('admin/settings.social.gplus')
|
@lang('admin/settings.social.gplus')
|
||||||
|
|
||||||
<input type="text" name="gplusProfile" value="{{old('gplusProfile', isset($settings->gplusProfile) ? $settings->gplusProfile : '')}}" />
|
<input type="text" name="gplusProfile" value="{{old('gplusProfile', isset($settings->gplusProfile) ? $settings->gplusProfile['val'] : '')}}" />
|
||||||
</label>
|
</label>
|
||||||
|
|
||||||
<label>
|
<label>
|
||||||
@lang('admin/settings.social.instagram')
|
@lang('admin/settings.social.instagram')
|
||||||
|
|
||||||
<input type="text" name="instagramProfile" value="{{old('instagramProfile', isset($settings->instagramProfile) ? $settings->instagramProfile : '')}}" />
|
<input type="text" name="instagramProfile" value="{{old('instagramProfile', isset($settings->instagramProfile) ? $settings->instagramProfile['val'] : '')}}" />
|
||||||
</label>
|
</label>
|
||||||
|
|||||||
@@ -0,0 +1,5 @@
|
|||||||
|
<input type="checkbox" name="commonSettings[{{$field}}]" value="1"
|
||||||
|
@if(!isset($settings->{$field}) || $settings->{$field}['lang'] == null)
|
||||||
|
checked
|
||||||
|
@endif />
|
||||||
|
@lang('admin/settings.commonSettings')
|
||||||
@@ -99,7 +99,7 @@
|
|||||||
|
|
||||||
// check if menu is not empty
|
// check if menu is not empty
|
||||||
if (i == 0) {
|
if (i == 0) {
|
||||||
alert ('@lang('widget/menu.noLinks')');
|
alert ('@lang('widgets/menu.noLinks')');
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -22,7 +22,7 @@
|
|||||||
</div>
|
</div>
|
||||||
@endif
|
@endif
|
||||||
|
|
||||||
@if (!empty($widgets))
|
@if (count($widgets))
|
||||||
<table class="full-width">
|
<table class="full-width">
|
||||||
<tr>
|
<tr>
|
||||||
<th>@lang('admin/widgets.widgetType')</th>
|
<th>@lang('admin/widgets.widgetType')</th>
|
||||||
|
|||||||
Vendored
Reference in New Issue
Block a user