--- /dev/null
+<?php
+
+namespace App\Http\Controllers;
+
+use Cubist\Backpack\app\Http\Controllers\CubistPageController;
+
+class PageController extends CubistPageController
+{
+
+}
* @var array
*/
protected $middleware = [
+ \App\Http\Middleware\TrustProxies::class,
\App\Http\Middleware\CheckForMaintenanceMode::class,
\Illuminate\Foundation\Http\Middleware\ValidatePostSize::class,
\App\Http\Middleware\TrimStrings::class,
\Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull::class,
- \App\Http\Middleware\TrustProxies::class,
+ \Cubist\Backpack\app\Middleware\VariantSelector::class,
+ \Spatie\MissingPageRedirector\RedirectsMissingPages::class,
+ \Spatie\Honeypot\ProtectAgainstSpam::class,
];
/**
\App\Http\Middleware\EncryptCookies::class,
\Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
\Illuminate\Session\Middleware\StartSession::class,
- // \Illuminate\Session\Middleware\AuthenticateSession::class,
+ \Backpack\CRUD\app\Http\Middleware\UseBackpackAuthGuardInsteadOfDefaultAuthGuard::class,
+ \Illuminate\Session\Middleware\AuthenticateSession::class,
+ \Cubist\Backpack\app\Middleware\VariantSelector::class,
+ \Cubist\Backpack\app\Middleware\LocaleSelector::class,
\Illuminate\View\Middleware\ShareErrorsFromSession::class,
\App\Http\Middleware\VerifyCsrfToken::class,
\Illuminate\Routing\Middleware\SubstituteBindings::class,
+ \Cubist\Backpack\app\Middleware\EmailObfuscate::class,
],
'api' => [
'throttle:60,1',
- 'bindings',
+ \Illuminate\Routing\Middleware\SubstituteBindings::class,
],
];
'cache.headers' => \Illuminate\Http\Middleware\SetCacheHeaders::class,
'can' => \Illuminate\Auth\Middleware\Authorize::class,
'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class,
+ 'password.confirm' => \Illuminate\Auth\Middleware\RequirePassword::class,
'signed' => \Illuminate\Routing\Middleware\ValidateSignature::class,
'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class,
'verified' => \Illuminate\Auth\Middleware\EnsureEmailIsVerified::class,
\Illuminate\Session\Middleware\StartSession::class,
\Illuminate\View\Middleware\ShareErrorsFromSession::class,
\App\Http\Middleware\Authenticate::class,
+ \Illuminate\Routing\Middleware\ThrottleRequests::class,
\Illuminate\Session\Middleware\AuthenticateSession::class,
+ \Cubist\Backpack\app\Middleware\VariantSelector::class,
+ \Cubist\Backpack\app\Middleware\LocaleSelector::class,
\Illuminate\Routing\Middleware\SubstituteBindings::class,
\Illuminate\Auth\Middleware\Authorize::class,
];
--- /dev/null
+<?php
+namespace App\Models;
+
+
+class Locale extends \Cubist\Backpack\app\Magic\Models\Locale
+{
+
+}
--- /dev/null
+<?php
+
+namespace App\Models;
+
+use Cubist\Backpack\app\Magic\Models\CMSPage;
+
+class Page extends CMSPage
+{
+
+}
--- /dev/null
+<?php
+
+
+namespace App\Models;
+
+
+class Settings extends \Cubist\Backpack\app\Magic\Models\Settings
+{
+ public function setFields()
+ {
+ parent::setFields();
+ }
+}
'label' => 'Phone',
'type' => 'Phone']);
- $this->addField(['name' => 'phone',
+ $this->addField(['name' => 'mobile',
'label' => 'Mobile',
'type' => 'Phone']);
}
|
*/
-$app = new Illuminate\Foundation\Application(
+$app = new Cubist\Backpack\app\Application(
$_ENV['APP_BASE_PATH'] ?? dirname(__DIR__)
);
*/
'defaults' => [
- 'guard' => 'web',
+ 'guard' => 'admin',
'passwords' => 'users',
],
* --disable-notifications
*/
'backpack_flags' => [
- '--disable-notifications' => true,
+ '--disable-notifications'=> true,
],
/*
'notifications' => [
'notifications' => [
- \Spatie\Backup\Notifications\Notifications\BackupHasFailed::class => ['mail'],
+ \Spatie\Backup\Notifications\Notifications\BackupHasFailed::class => ['mail'],
\Spatie\Backup\Notifications\Notifications\UnhealthyBackupWasFound::class => ['mail'],
- \Spatie\Backup\Notifications\Notifications\CleanupHasFailed::class => ['mail'],
- \Spatie\Backup\Notifications\Notifications\BackupWasSuccessful::class => ['mail'],
- \Spatie\Backup\Notifications\Notifications\HealthyBackupWasFound::class => ['mail'],
- \Spatie\Backup\Notifications\Notifications\CleanupWasSuccessful::class => ['mail'],
+ \Spatie\Backup\Notifications\Notifications\CleanupHasFailed::class => ['mail'],
+ \Spatie\Backup\Notifications\Notifications\BackupWasSuccessful::class => ['mail'],
+ \Spatie\Backup\Notifications\Notifications\HealthyBackupWasFound::class => ['mail'],
+ \Spatie\Backup\Notifications\Notifications\CleanupWasSuccessful::class => ['mail'],
],
/*
* Here you can specify how emails should be sent.
*/
'mail' => [
- 'to' => 'your@email.com',
+ 'to' => 'your@email.com',
],
/*
*/
'monitorBackups' => [
[
- 'name' => env('APP_NAME'),
- 'disks' => ['backups'],
- 'newestBackupsShouldNotBeOlderThanDays' => 1,
+ 'name' => env('APP_NAME'),
+ 'disks' => ['backups'],
+ 'newestBackupsShouldNotBeOlderThanDays' => 1,
'storageUsedMayNotBeHigherThanMegabytes' => 5000,
],
--- /dev/null
+<?php
+
+return [
+
+ /*
+ |--------------------------------------------------------------------------
+ | Look & feel customizations
+ |--------------------------------------------------------------------------
+ |
+ | Make it yours.
+ |
+ */
+
+
+ // Date & Datetime Format Syntax: https://carbon.nesbot.com/docs/#api-localization
+ 'default_date_format' => 'D MMM YYYY',
+ 'default_datetime_format' => 'D MMM YYYY, HH:mm',
+
+ // Direction, according to language
+ // (left-to-right vs right-to-left)
+ 'html_direction' => 'ltr',
+
+ // ----
+ // HEAD
+ // ----
+
+ // Project name. Shown in the window title.
+ 'project_name' => 'Quiz Factory',
+
+ // When clicking on the admin panel's top-left logo/name,
+ // where should the user be redirected?
+ // The string below will be passed through the url() helper.
+ // - default: '' (project root)
+ // - alternative: 'admin' (the admin's dashboard)
+ 'home_link' => 'admin',
+
+ // Content of the HTML meta robots tag to prevent indexing and link following
+ 'meta_robots_content' => 'noindex, nofollow',
+
+ // ------
+ // STYLES
+ // ------
+
+ // CSS files that are loaded in all pages, using Laravel's asset() helper
+ 'styles' => [
+ 'packages/backpack/base/css/bundle.css',
+
+ // Here's what's inside the bundle:
+ // 'packages/@digitallyhappy/backstrap/css/style.min.css',
+ // 'packages/animate.css/animate.min.css',
+ // 'packages/noty/noty.css',
+
+ // Load the fonts separately (so that you can replace them at will):
+ 'packages/source-sans-pro/source-sans-pro.css',
+ 'packages/line-awesome/css/line-awesome.min.css',
+
+ // Example (the fonts above, loaded from CDN instead)
+ // 'https://maxcdn.icons8.com/fonts/line-awesome/1.1/css/line-awesome-font-awesome.min.css',
+ // 'https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,600,700,300italic,400italic,600italic',
+
+ // Example (load font-awesome instead of line-awesome):
+ // 'https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.10.2/css/all.min.css',
+ ],
+
+ // CSS files that are loaded in all pages, using Laravel's mix() helper
+ 'mix_styles' => [ // file_path => manifest_directory_path
+ // 'css/app.css' => '',
+ ],
+
+ // ------
+ // HEADER
+ // ------
+
+ // Menu logo. You can replace this with an <img> tag if you have a logo.
+ 'project_logo' => '<b>PROJECT</b>LOGO',
+
+ // Show / hide breadcrumbs on admin panel pages.
+ 'breadcrumbs' => true,
+
+ // Horizontal navbar classes. Helps make the admin panel look similar to your project's design.
+ 'header_class' => 'app-header bg-purple border-0 navbar navbar-color',
+ // For background colors use: bg-dark, bg-primary, bg-secondary, bg-danger, bg-warning, bg-success, bg-info, bg-blue, bg-light-blue, bg-indigo, bg-purple, bg-pink, bg-red, bg-orange, bg-yellow, bg-green, bg-teal, bg-cyan, bg-white
+ // For links to be visible on different background colors use: "navbar-dark", "navbar-light", "navbar-color"
+
+ // ----
+ // BODY
+ // ----
+
+ // Body element classes.
+ 'body_class' => 'app aside-menu-fixed sidebar-lg-show',
+ // Try sidebar-hidden, sidebar-fixed, sidebar-compact, sidebar-lg-show
+
+ // Sidebar element classes.
+ 'sidebar_class' => 'sidebar sidebar-pills bg-light',
+ // Remove "sidebar-transparent" for standard sidebar look
+ // Try "sidebar-light" or "sidebar-dark" for dark/light links
+ // You can also add a background class like bg-dark, bg-primary, bg-secondary, bg-danger, bg-warning, bg-success, bg-info, bg-blue, bg-light-blue, bg-indigo, bg-purple, bg-pink, bg-red, bg-orange, bg-yellow, bg-green, bg-teal, bg-cyan
+
+ // ------
+ // FOOTER
+ // ------
+
+ // Footer element classes.
+ 'footer_class' => 'app-footer d-print-none',
+ // hide it with d-none
+ // change background color with bg-dark, bg-primary, bg-secondary, bg-danger, bg-warning, bg-success, bg-info, bg-blue, bg-light-blue, bg-indigo, bg-purple, bg-pink, bg-red, bg-orange, bg-yellow, bg-green, bg-teal, bg-cyan, bg-white
+
+ // Developer or company name. Shown in footer.
+ 'developer_name' => 'Cubedesigners',
+
+ // Developer website. Link in footer. Type false if you want to hide it.
+ 'developer_link' => 'https://www.cubedesigners.com',
+
+ // Show powered by Laravel Backpack in the footer? true/false
+ 'show_powered_by' => false,
+
+ // -------
+ // SCRIPTS
+ // -------
+
+ // JS files that are loaded in all pages, using Laravel's asset() helper
+ 'scripts' => [
+ // Backstrap includes jQuery, Bootstrap, CoreUI, PNotify, Popper
+ 'packages/backpack/base/js/bundle.js',
+
+ // examples (everything inside the bundle, loaded from CDN)
+ // 'https://code.jquery.com/jquery-3.4.1.min.js',
+ // 'https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js',
+ // 'https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js',
+ // 'https://unpkg.com/@coreui/coreui/dist/js/coreui.min.js',
+ // 'https://cdnjs.cloudflare.com/ajax/libs/pace/1.0.2/pace.min.js',
+ // 'https://unpkg.com/sweetalert/dist/sweetalert.min.js',
+ // 'https://cdnjs.cloudflare.com/ajax/libs/noty/3.1.4/noty.min.js'
+
+ // examples (VueJS or React)
+ // 'https://unpkg.com/vue@2.4.4/dist/vue.min.js',
+ // 'https://unpkg.com/react@16/umd/react.production.min.js',
+ // 'https://unpkg.com/react-dom@16/umd/react-dom.production.min.js',
+ ],
+
+ // JS files that are loaded in all pages, using Laravel's mix() helper
+ 'mix_scripts' => [// file_path => manifest_directory_path
+ // 'js/app.js' => '',
+ ],
+
+ // -------------
+ // CACHE-BUSTING
+ // -------------
+
+ // All JS and CSS assets defined above have this string appended as query string (?v=string).
+ // If you want to manually trigger cachebusting for all styles and scripts,
+ // append or prepent something to the string below, so that it's different.
+ 'cachebusting_string' => \PackageVersions\Versions::getVersion('backpack/crud'),
+
+ /*
+ |--------------------------------------------------------------------------
+ | Registration Open
+ |--------------------------------------------------------------------------
+ |
+ | Choose whether new users/admins are allowed to register.
+ | This will show the Register button on the login page and allow access to the
+ | Register functions in AuthController.
+ |
+ | By default the registration is open only on localhost.
+ */
+
+ 'registration_open' => env('BACKPACK_REGISTRATION_OPEN', env('APP_ENV') === 'local'),
+
+ /*
+ |--------------------------------------------------------------------------
+ | Routing
+ |--------------------------------------------------------------------------
+ */
+
+ // The prefix used in all base routes (the 'admin' in admin/dashboard)
+ // You can make sure all your URLs use this prefix by using the backpack_url() helper instead of url()
+ 'route_prefix' => 'admin',
+
+ // Set this to false if you would like to use your own AuthController and PasswordController
+ // (you then need to setup your auth routes manually in your routes.php file)
+ 'setup_auth_routes' => true,
+
+ // Set this to false if you would like to skip adding the dashboard routes
+ // (you then need to overwrite the login route on your AuthController)
+ 'setup_dashboard_routes' => true,
+
+ // Set this to false if you would like to skip adding "my account" routes
+ // (you then need to manually define the routes in your web.php)
+ 'setup_my_account_routes' => true,
+
+ /*
+ |--------------------------------------------------------------------------
+ | Authentication
+ |--------------------------------------------------------------------------
+ */
+
+ // Fully qualified namespace of the User model
+ 'user_model_fqn' => App\Models\BackpackUser::class,
+
+ // The classes for the middleware to check if the visitor is an admin
+ // Can be a single class or an array of clases
+ 'middleware_class' => [
+ App\Http\Middleware\CheckIfAdmin::class,
+ \Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull::class,
+ // \Backpack\CRUD\app\Http\Middleware\UseBackpackAuthGuardInsteadOfDefaultAuthGuard::class,
+ ],
+
+ // Alias for that middleware
+ 'middleware_key' => 'admin',
+ // Note: It's recommended to use the backpack_middleware() helper everywhere, which pulls this key for you.
+
+ // Username column for authentication
+ // The Backpack default is the same as the Laravel default (email)
+ // If you need to switch to username, you also need to create that column in your db
+ 'authentication_column' => 'email',
+ 'authentication_column_name' => 'Email',
+
+ // The guard that protects the Backpack admin panel.
+ // If null, the config.auth.defaults.guard value will be used.
+ 'guard' => 'backpack',
+
+ // The password reset configuration for Backpack.
+ // If null, the config.auth.defaults.passwords value will be used.
+ 'passwords' => 'backpack',
+
+ // What kind of avatar will you like to show to the user?
+ // Default: gravatar (automatically use the gravatar for his email)
+ // Other options:
+ // - placehold (generic image with his first letter)
+ // - example_method_name (specify the method on the User model that returns the URL)
+ 'avatar_type' => 'gravatar',
+
+ /*
+ |--------------------------------------------------------------------------
+ | Theme (User Interface)
+ |--------------------------------------------------------------------------
+ */
+ // Change the view namespace in order to load a different theme than the one Backpack provides.
+ // You can create child themes yourself, by creating a view folder anywhere in your resources/views
+ // and choosing that view_namespace instead of the default one. Backpack will load a file from there
+ // if it exists, otherwise it will load it from the default namespace ("backpack::").
+
+ 'view_namespace' => 'backpack::',
+
+ // EXAMPLE: if you create a new folder in resources/views/vendor/myname/mypackage,
+ // your namespace would be the one below. IMPORTANT: in this case the namespace ends with a dot.
+ // 'view_namespace' => 'vendor.myname.mypackage.',
+
+ /*
+ |--------------------------------------------------------------------------
+ | File System
+ |--------------------------------------------------------------------------
+ */
+
+ // Backpack\Base sets up its own filesystem disk, just like you would by
+ // adding an entry to your config/filesystems.php. It points to the root
+ // of your project and it's used throughout all Backpack packages.
+ //
+ // You can rename this disk here. Default: root
+ 'root_disk_name' => 'root',
+
+ /*
+ |--------------------------------------------------------------------------
+ | License Code
+ |--------------------------------------------------------------------------
+ |
+ | If you, your employer or your client make money by using Backpack, you need
+ | to purchase a license. A license code will be provided after purchase,
+ | which you can put here or in your ENV file in staging & production.
+ |
+ | More info and payment form on:
+ | https://www.backpackforlaravel.com
+ |
+ */
+
+ 'license_code' => env('BACKPACK_LICENSE', false),
+];
--- /dev/null
+<?php
+
+return [
+
+ /*
+ |--------------------------------------------------------------------------
+ | SVG Path
+ |--------------------------------------------------------------------------
+ |
+ | This value is the path to the directory of individual SVG files. This
+ | path is then resolved internally. Please ensure that this value is
+ | set relative to the root directory and not the public directory.
+ |
+ */
+
+ 'svg_path' => 'public/images',
+
+ /*
+ |--------------------------------------------------------------------------
+ | Spritesheet Path
+ |--------------------------------------------------------------------------
+ |
+ | If you would rather have one spritesheet than a lot of individual SVG
+ | files, you may specify a path to a spritesheet. The SVG images are
+ | extracted from this spritesheet to be rendered out individually.
+ |
+ */
+
+ 'spritesheet_path' => 'resources/svg/spritesheet.svg',
+
+ /*
+ |--------------------------------------------------------------------------
+ | Spritesheet URL
+ |--------------------------------------------------------------------------
+ |
+ | If you don't want to embed the spritesheet directly in your markup and
+ | would rather reference an external URL, you can specify the path to
+ | the external spritesheet to use with this configuration option.
+ |
+ */
+
+ 'spritesheet_url' => '',
+
+ /*
+ |--------------------------------------------------------------------------
+ | Inline Rendering
+ |--------------------------------------------------------------------------
+ |
+ | This value will determine whether or not the SVG should be rendered inline
+ | or if it should reference a spritesheet through a <use> element.
+ |
+ | Default: true
+ |
+ */
+
+ 'inline' => true,
+
+ /*
+ |--------------------------------------------------------------------------
+ | Optional Class
+ |--------------------------------------------------------------------------
+ |
+ | If you would like to have CSS classes applied to your SVGs, you must
+ | specify them here. Much like how you would define multiple classes
+ | in an HTML attribute, you may separate each class using a space.
+ |
+ | Default: ''
+ |
+ */
+
+ 'class' => 'svg fill-current',
+];
env('MEMCACHED_PASSWORD'),
],
'options' => [
- // Memcached::OPT_CONNECT_TIMEOUT => 2000,
+ // Memcached::OPT_CONNECT_TIMEOUT => 2000,
],
'servers' => [
[
|
*/
- 'prefix' => env('CACHE_PREFIX', Str::slug(env('APP_NAME', 'laravel'), '_').'_cache'),
+ 'prefix' => env('CACHE_PREFIX', Str::slug(env('APP_NAME', 'laravel'), '_') . '_' . Str::slug(env('APP_ENV', 'env')) . '_cache'),
];
--- /dev/null
+<?php
+
+return [
+
+ /*
+ |--------------------------------------------------------------------------
+ | Backpack\CRUD preferences
+ |--------------------------------------------------------------------------
+ */
+
+ // --------------------------
+ // Default operation settings
+ // --------------------------
+ 'operations' => [
+
+ /*
+ * List Operation
+ */
+ 'list' => [
+ // Define the size/looks of the content div for all CRUDs
+ // To override per view use $this->crud->setListContentClass('class-string')
+ 'contentClass' => 'col-md-12',
+
+ // enable the datatables-responsive plugin, which hides columns if they don't fit?
+ // if not, a horizontal scrollbar will be shown instead
+ 'responsiveTable' => true,
+
+ // stores pagination and filters in localStorage for two hours
+ // whenever the user tries to see that page, backpack loads the previous pagination and filtration
+ 'persistentTable' => true,
+
+ // the time the table will be persisted in minutes
+ // after this the table info is cleared from localStorage.
+ // use false to never force localStorage clear. (default)
+ // keep in mind: User can clear his localStorage whenever he wants.
+
+ 'persistentTableDuration' => false,
+
+ // How many items should be shown by default by the Datatable?
+ // This value can be overwritten on a specific CRUD by calling
+ // $this->crud->setDefaultPageLength(50);
+ 'defaultPageLength' => 10,
+
+ // A 1D array of options which will be used for both the displayed option and the value, or
+ // A 2D array in which the first array is used to define the value options and the second array the displayed options
+ // If a 2D array is used, strings in the right hand array will be automatically run through trans()
+ 'pageLengthMenu' => [[10, 25, 50, 100, -1], [10, 25, 50, 100, 'backpack::crud.all']],
+
+ // How important is it for the action buttons to be visible?
+ // - 0 - most important
+ // - 1 - as important as bulk buttons
+ // - 2-3 - more important than the rest of the columns
+ // - 4 - less important than most columns
+ 'actionsColumnPriority' => 1,
+ ],
+
+ /*
+ * Create Operation
+ */
+ 'create' => [
+ // Define the size/looks of the content div for all CRUDs
+ // To override per view use $this->crud->setCreateContentClass('class-string')
+ 'contentClass' => 'col-md-8 bold-labels',
+
+ // When using tabbed forms (create & update), what kind of tabs would you like?
+ 'tabsType' => 'horizontal', //options: horizontal, vertical
+
+ // How would you like the validation errors to be shown?
+ 'groupedErrors' => true,
+ 'inlineErrors' => true,
+
+ // when the page loads, put the cursor on the first input?
+ 'autoFocusOnFirstField' => true,
+
+ // Where do you want to redirect the user by default, save?
+ // options: save_and_back, save_and_edit, save_and_new
+ 'defaultSaveAction' => 'save_and_back',
+
+ // When the user chooses "save and back" or "save and new", show a bubble
+ // for the fact that the default save action has been changed?
+ 'showSaveActionChange' => true, //options: true, false
+
+ // Before saving the entry, how would you like the request to be stripped?
+ // - false - ONLY save inputs that have fields (safest)
+ // - [x, y, z] - save ALL inputs, EXCEPT the ones given in this array
+ 'saveAllInputsExcept' => false,
+ // 'saveAllInputsExcept' => ['_token', '_method', 'http_referrer', 'current_tab', 'save_action'],
+ ],
+
+ /*
+ * Update Operation
+ */
+ 'update' => [
+ // Define the size/looks of the content div for all CRUDs
+ // To override per view use $this->crud->setEditContentClass('class-string')
+ 'contentClass' => 'col-md-8 bold-labels',
+
+ // When using tabbed forms (create & update), what kind of tabs would you like?
+ 'tabsType' => 'horizontal', //options: horizontal, vertical
+
+ // How would you like the validation errors to be shown?
+ 'groupedErrors' => true,
+ 'inlineErrors' => true,
+
+ // when the page loads, put the cursor on the first input?
+ 'autoFocusOnFirstField' => true,
+
+ // Where do you want to redirect the user by default, save?
+ // options: save_and_back, save_and_edit, save_and_new
+ 'defaultSaveAction' => 'save_and_back',
+
+ // When the user chooses "save and back" or "save and new", show a bubble
+ // for the fact that the default save action has been changed?
+ 'showSaveActionChange' => true, //options: true, false
+
+ // Before saving the entry, how would you like the request to be stripped?
+ // - false - Save ONLY inputs that have a field (safest, default);
+ // - [x, y, z] - Save ALL inputs, EXCEPT the ones given in this array;
+ 'saveAllInputsExcept' => false,
+ // 'saveAllInputsExcept' => ['_token', '_method', 'http_referrer', 'current_tab', 'save_action'],
+ ],
+
+ /*
+ * Show Operation
+ */
+ 'show' => [
+ // Define the size/looks of the content div for all CRUDs
+ // To override per Controller use $this->crud->setShowContentClass('class-string')
+ 'contentClass' => 'col-md-8',
+ ],
+
+ /*
+ * Reorder Operation
+ */
+ 'reorder' => [
+ // Define the size/looks of the content div for all CRUDs
+ // To override per Controller use $this->crud->setReorderContentClass('class-string')
+ 'contentClass' => 'col-md-8 col-md-offset-2',
+ ],
+
+ /*
+ * Revisions Operation
+ */
+ 'revisions' => [
+ // Define the size/looks of the content div for all CRUDs
+ // To override per view use $this->crud->setRevisionsTimelineContentClass('class-string')
+ 'timelineContentClass' => 'col-md-12',
+ ],
+
+ ],
+
+ /*
+ |-------------------
+ | TRANSLATABLE CRUDS
+ |-------------------
+ */
+
+ 'show_translatable_field_icon' => true,
+ 'translatable_field_icon_position' => 'right', // left or right
+
+ 'locales' => [
+ // "af_NA" => "Afrikaans (Namibia)",
+ // "af_ZA" => "Afrikaans (South Africa)",
+ // "af" => "Afrikaans",
+ // "ak_GH" => "Akan (Ghana)",
+ // "ak" => "Akan",
+ // "sq_AL" => "Albanian (Albania)",
+ // "sq" => "Albanian",
+ // "am_ET" => "Amharic (Ethiopia)",
+ // "am" => "Amharic",
+ // "ar_DZ" => "Arabic (Algeria)",
+ // "ar_BH" => "Arabic (Bahrain)",
+ // "ar_EG" => "Arabic (Egypt)",
+ // "ar_IQ" => "Arabic (Iraq)",
+ // "ar_JO" => "Arabic (Jordan)",
+ // "ar_KW" => "Arabic (Kuwait)",
+ // "ar_LB" => "Arabic (Lebanon)",
+ // "ar_LY" => "Arabic (Libya)",
+ // "ar_MA" => "Arabic (Morocco)",
+ // "ar_OM" => "Arabic (Oman)",
+ // "ar_QA" => "Arabic (Qatar)",
+ // "ar_SA" => "Arabic (Saudi Arabia)",
+ // "ar_SD" => "Arabic (Sudan)",
+ // "ar_SY" => "Arabic (Syria)",
+ // "ar_TN" => "Arabic (Tunisia)",
+ // "ar_AE" => "Arabic (United Arab Emirates)",
+ // "ar_YE" => "Arabic (Yemen)",
+ // "ar" => "Arabic",
+ // "hy_AM" => "Armenian (Armenia)",
+ // "hy" => "Armenian",
+ // "as_IN" => "Assamese (India)",
+ // "as" => "Assamese",
+ // "asa_TZ" => "Asu (Tanzania)",
+ // "asa" => "Asu",
+ // "az_Cyrl" => "Azerbaijani (Cyrillic)",
+ // "az_Cyrl_AZ" => "Azerbaijani (Cyrillic, Azerbaijan)",
+ // "az_Latn" => "Azerbaijani (Latin)",
+ // "az_Latn_AZ" => "Azerbaijani (Latin, Azerbaijan)",
+ // "az" => "Azerbaijani",
+ // "bm_ML" => "Bambara (Mali)",
+ // "bm" => "Bambara",
+ // "eu_ES" => "Basque (Spain)",
+ // "eu" => "Basque",
+ // "be_BY" => "Belarusian (Belarus)",
+ // "be" => "Belarusian",
+ // "bem_ZM" => "Bemba (Zambia)",
+ // "bem" => "Bemba",
+ // "bez_TZ" => "Bena (Tanzania)",
+ // "bez" => "Bena",
+ // "bn_BD" => "Bengali (Bangladesh)",
+ // "bn_IN" => "Bengali (India)",
+ // "bn" => "Bengali",
+ // "bs_BA" => "Bosnian (Bosnia and Herzegovina)",
+ // "bs" => "Bosnian",
+ // "bg_BG" => "Bulgarian (Bulgaria)",
+ // "bg" => "Bulgarian",
+ // "my_MM" => "Burmese (Myanmar [Burma])",
+ // "my" => "Burmese",
+ // "ca_ES" => "Catalan (Spain)",
+ // "ca" => "Catalan",
+ // "tzm_Latn" => "Central Morocco Tamazight (Latin)",
+ // "tzm_Latn_MA" => "Central Morocco Tamazight (Latin, Morocco)",
+ // "tzm" => "Central Morocco Tamazight",
+ // "chr_US" => "Cherokee (United States)",
+ // "chr" => "Cherokee",
+ // "cgg_UG" => "Chiga (Uganda)",
+ // "cgg" => "Chiga",
+ // "zh_Hans" => "Chinese (Simplified Han)",
+ // "zh_Hans_CN" => "Chinese (Simplified Han, China)",
+ // "zh_Hans_HK" => "Chinese (Simplified Han, Hong Kong SAR China)",
+ // "zh_Hans_MO" => "Chinese (Simplified Han, Macau SAR China)",
+ // "zh_Hans_SG" => "Chinese (Simplified Han, Singapore)",
+ // "zh_Hant" => "Chinese (Traditional Han)",
+ // "zh_Hant_HK" => "Chinese (Traditional Han, Hong Kong SAR China)",
+ // "zh_Hant_MO" => "Chinese (Traditional Han, Macau SAR China)",
+ // "zh_Hant_TW" => "Chinese (Traditional Han, Taiwan)",
+ // "zh" => "Chinese",
+ // "kw_GB" => "Cornish (United Kingdom)",
+ // "kw" => "Cornish",
+ // "hr_HR" => "Croatian (Croatia)",
+ // "hr" => "Croatian",
+ // "cs_CZ" => "Czech (Czech Republic)",
+ // "cs" => "Czech",
+ // "da_DK" => "Danish (Denmark)",
+ // "da" => "Danish",
+ // "nl_BE" => "Dutch (Belgium)",
+ // "nl_NL" => "Dutch (Netherlands)",
+ // "nl" => "Dutch",
+ // "ebu_KE" => "Embu (Kenya)",
+ // "ebu" => "Embu",
+ // "en_AS" => "English (American Samoa)",
+ // "en_AU" => "English (Australia)",
+ // "en_BE" => "English (Belgium)",
+ // "en_BZ" => "English (Belize)",
+ // "en_BW" => "English (Botswana)",
+ // "en_CA" => "English (Canada)",
+ // "en_GU" => "English (Guam)",
+ // "en_HK" => "English (Hong Kong SAR China)",
+ // "en_IN" => "English (India)",
+ // "en_IE" => "English (Ireland)",
+ // "en_JM" => "English (Jamaica)",
+ // "en_MT" => "English (Malta)",
+ // "en_MH" => "English (Marshall Islands)",
+ // "en_MU" => "English (Mauritius)",
+ // "en_NA" => "English (Namibia)",
+ // "en_NZ" => "English (New Zealand)",
+ // "en_MP" => "English (Northern Mariana Islands)",
+ // "en_PK" => "English (Pakistan)",
+ // "en_PH" => "English (Philippines)",
+ // "en_SG" => "English (Singapore)",
+ // "en_ZA" => "English (South Africa)",
+ // "en_TT" => "English (Trinidad and Tobago)",
+ // "en_UM" => "English (U.S. Minor Outlying Islands)",
+ // "en_VI" => "English (U.S. Virgin Islands)",
+ // "en_GB" => "English (United Kingdom)",
+ // "en_US" => "English (United States)",
+ // "en_ZW" => "English (Zimbabwe)",
+ 'en' => 'English',
+ // "eo" => "Esperanto",
+ // "et_EE" => "Estonian (Estonia)",
+ // "et" => "Estonian",
+ // "ee_GH" => "Ewe (Ghana)",
+ // "ee_TG" => "Ewe (Togo)",
+ // "ee" => "Ewe",
+ // "fo_FO" => "Faroese (Faroe Islands)",
+ // "fo" => "Faroese",
+ // "fil_PH" => "Filipino (Philippines)",
+ // "fil" => "Filipino",
+ // "fi_FI" => "Finnish (Finland)",
+ // "fi" => "Finnish",
+ // "fr_BE" => "French (Belgium)",
+ // "fr_BJ" => "French (Benin)",
+ // "fr_BF" => "French (Burkina Faso)",
+ // "fr_BI" => "French (Burundi)",
+ // "fr_CM" => "French (Cameroon)",
+ // "fr_CA" => "French (Canada)",
+ // "fr_CF" => "French (Central African Republic)",
+ // "fr_TD" => "French (Chad)",
+ // "fr_KM" => "French (Comoros)",
+ // "fr_CG" => "French (Congo - Brazzaville)",
+ // "fr_CD" => "French (Congo - Kinshasa)",
+ // "fr_CI" => "French (Côte d’Ivoire)",
+ // "fr_DJ" => "French (Djibouti)",
+ // "fr_GQ" => "French (Equatorial Guinea)",
+ // "fr_FR" => "French (France)",
+ // "fr_GA" => "French (Gabon)",
+ // "fr_GP" => "French (Guadeloupe)",
+ // "fr_GN" => "French (Guinea)",
+ // "fr_LU" => "French (Luxembourg)",
+ // "fr_MG" => "French (Madagascar)",
+ // "fr_ML" => "French (Mali)",
+ // "fr_MQ" => "French (Martinique)",
+ // "fr_MC" => "French (Monaco)",
+ // "fr_NE" => "French (Niger)",
+ // "fr_RW" => "French (Rwanda)",
+ // "fr_RE" => "French (Réunion)",
+ // "fr_BL" => "French (Saint Barthélemy)",
+ // "fr_MF" => "French (Saint Martin)",
+ // "fr_SN" => "French (Senegal)",
+ // "fr_CH" => "French (Switzerland)",
+ // "fr_TG" => "French (Togo)",
+ 'fr' => 'French',
+ // "ff_SN" => "Fulah (Senegal)",
+ // "ff" => "Fulah",
+ // "gl_ES" => "Galician (Spain)",
+ // "gl" => "Galician",
+ // "lg_UG" => "Ganda (Uganda)",
+ // "lg" => "Ganda",
+ // "ka_GE" => "Georgian (Georgia)",
+ // "ka" => "Georgian",
+ // "de_AT" => "German (Austria)",
+ // "de_BE" => "German (Belgium)",
+ // "de_DE" => "German (Germany)",
+ // "de_LI" => "German (Liechtenstein)",
+ // "de_LU" => "German (Luxembourg)",
+ // "de_CH" => "German (Switzerland)",
+ // "de" => "German",
+ // "el_CY" => "Greek (Cyprus)",
+ // "el_GR" => "Greek (Greece)",
+ // "el" => "Greek",
+ // "gu_IN" => "Gujarati (India)",
+ // "gu" => "Gujarati",
+ // "guz_KE" => "Gusii (Kenya)",
+ // "guz" => "Gusii",
+ // "ha_Latn" => "Hausa (Latin)",
+ // "ha_Latn_GH" => "Hausa (Latin, Ghana)",
+ // "ha_Latn_NE" => "Hausa (Latin, Niger)",
+ // "ha_Latn_NG" => "Hausa (Latin, Nigeria)",
+ // "ha" => "Hausa",
+ // "haw_US" => "Hawaiian (United States)",
+ // "haw" => "Hawaiian",
+ // "he_IL" => "Hebrew (Israel)",
+ // "he" => "Hebrew",
+ // "hi_IN" => "Hindi (India)",
+ // "hi" => "Hindi",
+ // "hu_HU" => "Hungarian (Hungary)",
+ // "hu" => "Hungarian",
+ // "is_IS" => "Icelandic (Iceland)",
+ // "is" => "Icelandic",
+ // "ig_NG" => "Igbo (Nigeria)",
+ // "ig" => "Igbo",
+ // "id_ID" => "Indonesian (Indonesia)",
+ // "id" => "Indonesian",
+ // "ga_IE" => "Irish (Ireland)",
+ // "ga" => "Irish",
+ // "it_IT" => "Italian (Italy)",
+ // "it_CH" => "Italian (Switzerland)",
+ 'it' => 'Italian',
+ // "ja_JP" => "Japanese (Japan)",
+ // "ja" => "Japanese",
+ // "kea_CV" => "Kabuverdianu (Cape Verde)",
+ // "kea" => "Kabuverdianu",
+ // "kab_DZ" => "Kabyle (Algeria)",
+ // "kab" => "Kabyle",
+ // "kl_GL" => "Kalaallisut (Greenland)",
+ // "kl" => "Kalaallisut",
+ // "kln_KE" => "Kalenjin (Kenya)",
+ // "kln" => "Kalenjin",
+ // "kam_KE" => "Kamba (Kenya)",
+ // "kam" => "Kamba",
+ // "kn_IN" => "Kannada (India)",
+ // "kn" => "Kannada",
+ // "kk_Cyrl" => "Kazakh (Cyrillic)",
+ // "kk_Cyrl_KZ" => "Kazakh (Cyrillic, Kazakhstan)",
+ // "kk" => "Kazakh",
+ // "km_KH" => "Khmer (Cambodia)",
+ // "km" => "Khmer",
+ // "ki_KE" => "Kikuyu (Kenya)",
+ // "ki" => "Kikuyu",
+ // "rw_RW" => "Kinyarwanda (Rwanda)",
+ // "rw" => "Kinyarwanda",
+ // "kok_IN" => "Konkani (India)",
+ // "kok" => "Konkani",
+ // "ko_KR" => "Korean (South Korea)",
+ // "ko" => "Korean",
+ // "khq_ML" => "Koyra Chiini (Mali)",
+ // "khq" => "Koyra Chiini",
+ // "ses_ML" => "Koyraboro Senni (Mali)",
+ // "ses" => "Koyraboro Senni",
+ // "lag_TZ" => "Langi (Tanzania)",
+ // "lag" => "Langi",
+ // "lv_LV" => "Latvian (Latvia)",
+ // "lv" => "Latvian",
+ // "lt_LT" => "Lithuanian (Lithuania)",
+ // "lt" => "Lithuanian",
+ // "luo_KE" => "Luo (Kenya)",
+ // "luo" => "Luo",
+ // "luy_KE" => "Luyia (Kenya)",
+ // "luy" => "Luyia",
+ // "mk_MK" => "Macedonian (Macedonia)",
+ // "mk" => "Macedonian",
+ // "jmc_TZ" => "Machame (Tanzania)",
+ // "jmc" => "Machame",
+ // "kde_TZ" => "Makonde (Tanzania)",
+ // "kde" => "Makonde",
+ // "mg_MG" => "Malagasy (Madagascar)",
+ // "mg" => "Malagasy",
+ // "ms_BN" => "Malay (Brunei)",
+ // "ms_MY" => "Malay (Malaysia)",
+ // "ms" => "Malay",
+ // "ml_IN" => "Malayalam (India)",
+ // "ml" => "Malayalam",
+ // "mt_MT" => "Maltese (Malta)",
+ // "mt" => "Maltese",
+ // "gv_GB" => "Manx (United Kingdom)",
+ // "gv" => "Manx",
+ // "mr_IN" => "Marathi (India)",
+ // "mr" => "Marathi",
+ // "mas_KE" => "Masai (Kenya)",
+ // "mas_TZ" => "Masai (Tanzania)",
+ // "mas" => "Masai",
+ // "mer_KE" => "Meru (Kenya)",
+ // "mer" => "Meru",
+ // "mfe_MU" => "Morisyen (Mauritius)",
+ // "mfe" => "Morisyen",
+ // "naq_NA" => "Nama (Namibia)",
+ // "naq" => "Nama",
+ // "ne_IN" => "Nepali (India)",
+ // "ne_NP" => "Nepali (Nepal)",
+ // "ne" => "Nepali",
+ // "nd_ZW" => "North Ndebele (Zimbabwe)",
+ // "nd" => "North Ndebele",
+ // "nb_NO" => "Norwegian Bokmål (Norway)",
+ // "nb" => "Norwegian Bokmål",
+ // "nn_NO" => "Norwegian Nynorsk (Norway)",
+ // "nn" => "Norwegian Nynorsk",
+ // "nyn_UG" => "Nyankole (Uganda)",
+ // "nyn" => "Nyankole",
+ // "or_IN" => "Oriya (India)",
+ // "or" => "Oriya",
+ // "om_ET" => "Oromo (Ethiopia)",
+ // "om_KE" => "Oromo (Kenya)",
+ // "om" => "Oromo",
+ // "ps_AF" => "Pashto (Afghanistan)",
+ // "ps" => "Pashto",
+ // "fa_AF" => "Persian (Afghanistan)",
+ // "fa_IR" => "Persian (Iran)",
+ // "fa" => "Persian",
+ // "pl_PL" => "Polish (Poland)",
+ // "pl" => "Polish",
+ // "pt_BR" => "Portuguese (Brazil)",
+ // "pt_GW" => "Portuguese (Guinea-Bissau)",
+ // "pt_MZ" => "Portuguese (Mozambique)",
+ // "pt_PT" => "Portuguese (Portugal)",
+ // "pt" => "Portuguese",
+ // "pa_Arab" => "Punjabi (Arabic)",
+ // "pa_Arab_PK" => "Punjabi (Arabic, Pakistan)",
+ // "pa_Guru" => "Punjabi (Gurmukhi)",
+ // "pa_Guru_IN" => "Punjabi (Gurmukhi, India)",
+ // "pa" => "Punjabi",
+ // "ro_MD" => "Romanian (Moldova)",
+ // "ro_RO" => "Romanian (Romania)",
+ 'ro' => 'Romanian',
+ // "rm_CH" => "Romansh (Switzerland)",
+ // "rm" => "Romansh",
+ // "rof_TZ" => "Rombo (Tanzania)",
+ // "rof" => "Rombo",
+ // "ru_MD" => "Russian (Moldova)",
+ // "ru_RU" => "Russian (Russia)",
+ // "ru_UA" => "Russian (Ukraine)",
+ // "ru" => "Russian",
+ // "rwk_TZ" => "Rwa (Tanzania)",
+ // "rwk" => "Rwa",
+ // "saq_KE" => "Samburu (Kenya)",
+ // "saq" => "Samburu",
+ // "sg_CF" => "Sango (Central African Republic)",
+ // "sg" => "Sango",
+ // "seh_MZ" => "Sena (Mozambique)",
+ // "seh" => "Sena",
+ // "sr_Cyrl" => "Serbian (Cyrillic)",
+ // "sr_Cyrl_BA" => "Serbian (Cyrillic, Bosnia and Herzegovina)",
+ // "sr_Cyrl_ME" => "Serbian (Cyrillic, Montenegro)",
+ // "sr_Cyrl_RS" => "Serbian (Cyrillic, Serbia)",
+ // "sr_Latn" => "Serbian (Latin)",
+ // "sr_Latn_BA" => "Serbian (Latin, Bosnia and Herzegovina)",
+ // "sr_Latn_ME" => "Serbian (Latin, Montenegro)",
+ // "sr_Latn_RS" => "Serbian (Latin, Serbia)",
+ // "sr" => "Serbian",
+ // "sn_ZW" => "Shona (Zimbabwe)",
+ // "sn" => "Shona",
+ // "ii_CN" => "Sichuan Yi (China)",
+ // "ii" => "Sichuan Yi",
+ // "si_LK" => "Sinhala (Sri Lanka)",
+ // "si" => "Sinhala",
+ // "sk_SK" => "Slovak (Slovakia)",
+ // "sk" => "Slovak",
+ // "sl_SI" => "Slovenian (Slovenia)",
+ // "sl" => "Slovenian",
+ // "xog_UG" => "Soga (Uganda)",
+ // "xog" => "Soga",
+ // "so_DJ" => "Somali (Djibouti)",
+ // "so_ET" => "Somali (Ethiopia)",
+ // "so_KE" => "Somali (Kenya)",
+ // "so_SO" => "Somali (Somalia)",
+ // "so" => "Somali",
+ // "es_AR" => "Spanish (Argentina)",
+ // "es_BO" => "Spanish (Bolivia)",
+ // "es_CL" => "Spanish (Chile)",
+ // "es_CO" => "Spanish (Colombia)",
+ // "es_CR" => "Spanish (Costa Rica)",
+ // "es_DO" => "Spanish (Dominican Republic)",
+ // "es_EC" => "Spanish (Ecuador)",
+ // "es_SV" => "Spanish (El Salvador)",
+ // "es_GQ" => "Spanish (Equatorial Guinea)",
+ // "es_GT" => "Spanish (Guatemala)",
+ // "es_HN" => "Spanish (Honduras)",
+ // "es_419" => "Spanish (Latin America)",
+ // "es_MX" => "Spanish (Mexico)",
+ // "es_NI" => "Spanish (Nicaragua)",
+ // "es_PA" => "Spanish (Panama)",
+ // "es_PY" => "Spanish (Paraguay)",
+ // "es_PE" => "Spanish (Peru)",
+ // "es_PR" => "Spanish (Puerto Rico)",
+ // "es_ES" => "Spanish (Spain)",
+ // "es_US" => "Spanish (United States)",
+ // "es_UY" => "Spanish (Uruguay)",
+ // "es_VE" => "Spanish (Venezuela)",
+ // "es" => "Spanish",
+ // "sw_KE" => "Swahili (Kenya)",
+ // "sw_TZ" => "Swahili (Tanzania)",
+ // "sw" => "Swahili",
+ // "sv_FI" => "Swedish (Finland)",
+ // "sv_SE" => "Swedish (Sweden)",
+ // "sv" => "Swedish",
+ // "gsw_CH" => "Swiss German (Switzerland)",
+ // "gsw" => "Swiss German",
+ // "shi_Latn" => "Tachelhit (Latin)",
+ // "shi_Latn_MA" => "Tachelhit (Latin, Morocco)",
+ // "shi_Tfng" => "Tachelhit (Tifinagh)",
+ // "shi_Tfng_MA" => "Tachelhit (Tifinagh, Morocco)",
+ // "shi" => "Tachelhit",
+ // "dav_KE" => "Taita (Kenya)",
+ // "dav" => "Taita",
+ // "ta_IN" => "Tamil (India)",
+ // "ta_LK" => "Tamil (Sri Lanka)",
+ // "ta" => "Tamil",
+ // "te_IN" => "Telugu (India)",
+ // "te" => "Telugu",
+ // "teo_KE" => "Teso (Kenya)",
+ // "teo_UG" => "Teso (Uganda)",
+ // "teo" => "Teso",
+ // "th_TH" => "Thai (Thailand)",
+ // "th" => "Thai",
+ // "bo_CN" => "Tibetan (China)",
+ // "bo_IN" => "Tibetan (India)",
+ // "bo" => "Tibetan",
+ // "ti_ER" => "Tigrinya (Eritrea)",
+ // "ti_ET" => "Tigrinya (Ethiopia)",
+ // "ti" => "Tigrinya",
+ // "to_TO" => "Tonga (Tonga)",
+ // "to" => "Tonga",
+ // "tr_TR" => "Turkish (Turkey)",
+ // "tr" => "Turkish",
+ // "uk_UA" => "Ukrainian (Ukraine)",
+ // "uk" => "Ukrainian",
+ // "ur_IN" => "Urdu (India)",
+ // "ur_PK" => "Urdu (Pakistan)",
+ // "ur" => "Urdu",
+ // "uz_Arab" => "Uzbek (Arabic)",
+ // "uz_Arab_AF" => "Uzbek (Arabic, Afghanistan)",
+ // "uz_Cyrl" => "Uzbek (Cyrillic)",
+ // "uz_Cyrl_UZ" => "Uzbek (Cyrillic, Uzbekistan)",
+ // "uz_Latn" => "Uzbek (Latin)",
+ // "uz_Latn_UZ" => "Uzbek (Latin, Uzbekistan)",
+ // "uz" => "Uzbek",
+ // "vi_VN" => "Vietnamese (Vietnam)",
+ // "vi" => "Vietnamese",
+ // "vun_TZ" => "Vunjo (Tanzania)",
+ // "vun" => "Vunjo",
+ // "cy_GB" => "Welsh (United Kingdom)",
+ // "cy" => "Welsh",
+ // "yo_NG" => "Yoruba (Nigeria)",
+ // "yo" => "Yoruba",
+ // "zu_ZA" => "Zulu (South Africa)",
+ // "zu" => "Zulu"
+ ],
+
+];
--- /dev/null
+<?php
+return [];
\ No newline at end of file
--- /dev/null
+<?php
+return [
+ 'internal_search' => env('CUBIST_INTERNAL_SEARCH', false),
+ '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),
+];
+
--- /dev/null
+<?php
+
+return [
+
+ /**
+ * You can specify one of several different connections when building an
+ * Elasticsearch client.
+ *
+ * Here you may specify which of the connections below you wish to use
+ * as your default connection when building an client. Of course you may
+ * use create several clients at once, each with different configurations.
+ */
+
+ 'defaultConnection' => 'default',
+
+ /**
+ * These are the connection parameters used when building a client.
+ */
+
+ 'connections' => [
+
+ 'default' => [
+
+ /**
+ * Hosts
+ *
+ * This is an array of hosts that the client will connect to. It can be a
+ * single host, or an array if you are running a cluster of Elasticsearch
+ * instances.
+ *
+ * This is the only configuration value that is mandatory.
+ *
+ * Presently using "extended" host configuration method
+ *
+ * @see https://www.elastic.co/guide/en/elasticsearch/client/php-api/2.0/_configuration.html#_extended_host_configuration
+ *
+ * There is also the shorter "inline" configuration method available
+ *
+ * @see https://www.elastic.co/guide/en/elasticsearch/client/php-api/2.0/_configuration.html#_inline_host_configuration
+ */
+
+ 'hosts' => [
+ [
+ 'host' => env('ELASTICSEARCH_HOST', '127.0.0.1'),
+ 'port' => env('ELASTICSEARCH_PORT', 9200),
+ 'scheme' => env('ELASTICSEARCH_SCHEME', null),
+ 'user' => env('ELASTICSEARCH_USER', null),
+ 'pass' => env('ELASTICSEARCH_PASS', null),
+
+ // If you are connecting to an Elasticsearch instance on AWS, you will need these values as well
+ 'aws' => env('AWS_ELASTICSEARCH_ENABLED', false),
+ 'aws_region' => env('AWS_REGION', ''),
+ 'aws_key' => env('AWS_ACCESS_KEY_ID', ''),
+ 'aws_secret' => env('AWS_SECRET_ACCESS_KEY', '')
+ ],
+ ],
+
+ /**
+ * SSL
+ *
+ * If your Elasticsearch instance uses an out-dated or self-signed SSL
+ * certificate, you will need to pass in the certificate bundle. This can
+ * either be the path to the certificate file (for self-signed certs), or a
+ * package like https://github.com/Kdyby/CurlCaBundle. See the documentation
+ * below for all the details.
+ *
+ * If you are using SSL instances, and the certificates are up-to-date and
+ * signed by a public certificate authority, then you can leave this null and
+ * just use "https" in the host path(s) above and you should be fine.
+ *
+ * @see https://www.elastic.co/guide/en/elasticsearch/client/php-api/2.0/_security.html#_ssl_encryption_2
+ */
+
+ 'sslVerification' => null,
+
+ /**
+ * Logging
+ *
+ * Logging is handled by passing in an instance of Monolog\Logger (which
+ * coincidentally is what Laravel's default logger is).
+ *
+ * If logging is enabled, you either need to set the path and log level
+ * (some defaults are given for you below), or you can use a custom logger by
+ * setting 'logObject' to an instance of Psr\Log\LoggerInterface. In fact,
+ * if you just want to use the default Laravel logger, then set 'logObject'
+ * to \Log::getMonolog().
+ *
+ * Note: 'logObject' takes precedent over 'logPath'/'logLevel', so set
+ * 'logObject' null if you just want file-based logging to a custom path.
+ *
+ * @see https://www.elastic.co/guide/en/elasticsearch/client/php-api/2.0/_configuration.html#enabling_logger
+ */
+
+ 'logging' => false,
+
+ // If you have an existing instance of Monolog you can use it here.
+ // 'logObject' => \Log::getMonolog(),
+
+ 'logPath' => storage_path('logs/elasticsearch.log'),
+
+ 'logLevel' => Monolog\Logger::INFO,
+
+ /**
+ * Retries
+ *
+ * By default, the client will retry n times, where n = number of nodes in
+ * your cluster. If you would like to disable retries, or change the number,
+ * you can do so here.
+ *
+ * @see https://www.elastic.co/guide/en/elasticsearch/client/php-api/2.0/_configuration.html#_set_retries
+ */
+
+ 'retries' => null,
+
+ /**
+ * The remainder of the configuration options can almost always be left
+ * as-is unless you have specific reasons to change them. Refer to the
+ * appropriate sections in the Elasticsearch documentation for what each option
+ * does and what values it expects.
+ */
+
+ /**
+ * Sniff On Start
+ *
+ * @see https://www.elastic.co/guide/en/elasticsearch/client/php-api/2.0/_configuration.html
+ */
+
+ 'sniffOnStart' => false,
+
+ /**
+ * HTTP Handler
+ *
+ * @see https://www.elastic.co/guide/en/elasticsearch/client/php-api/2.0/_configuration.html#_configure_the_http_handler
+ * @see http://ringphp.readthedocs.org/en/latest/client_handlers.html
+ */
+
+ 'httpHandler' => null,
+
+ /**
+ * Connection Pool
+ *
+ * @see https://www.elastic.co/guide/en/elasticsearch/client/php-api/2.0/_configuration.html#_setting_the_connection_pool
+ * @see https://www.elastic.co/guide/en/elasticsearch/client/php-api/2.0/_connection_pool.html
+ */
+
+ 'connectionPool' => null,
+
+ /**
+ * Connection Selector
+ *
+ * @see https://www.elastic.co/guide/en/elasticsearch/client/php-api/2.0/_configuration.html#_setting_the_connection_selector
+ * @see https://www.elastic.co/guide/en/elasticsearch/client/php-api/2.0/_selectors.html
+ */
+
+ 'connectionSelector' => null,
+
+ /**
+ * Serializer
+ *
+ * @see https://www.elastic.co/guide/en/elasticsearch/client/php-api/2.0/_configuration.html#_setting_the_serializer
+ * @see https://www.elastic.co/guide/en/elasticsearch/client/php-api/2.0/_serializers.html
+ */
+
+ 'serializer' => null,
+
+ /**
+ * Connection Factory
+ *
+ * @see https://www.elastic.co/guide/en/elasticsearch/client/php-api/2.0/_configuration.html#_setting_a_custom_connectionfactory
+ */
+
+ 'connectionFactory' => null,
+
+ /**
+ * Endpoint
+ *
+ * @see https://www.elastic.co/guide/en/elasticsearch/client/php-api/6.0/_configuration.html#_set_the_endpoint_closure
+ */
+
+ 'endpoint' => null,
+
+
+ /**
+ * Register additional namespaces
+ *
+ * An array of additional namespaces to register.
+ *
+ * @example 'namespaces' => [XPack::Security(), XPack::Watcher()]
+ * @see https://www.elastic.co/guide/en/elasticsearch/client/php-api/current/ElasticsearchPHP_Endpoints.html#Elasticsearch_ClientBuilderregisterNamespace_registerNamespace
+ */
+ 'namespaces' => [],
+
+ /**
+ * Tracer
+ *
+ * Tracer is handled by passing in a name of the class implements Psr\Log\LoggerInterface.
+ *
+ * @see https://www.elastic.co/guide/en/elasticsearch/client/php-api/2.0/_configuration.html#_setting_a_custom_connectionfactory
+ */
+ 'tracer' => null,
+
+ ],
+
+ ],
+
+];
--- /dev/null
+<?php
+return [
+ 'search' => env('FEATURE_SEARCH', true),
+ 'quote' => env('FEATURE_QUOTE', true),
+ 'news' => env('FEATURE_NEWS', true),
+ 'i18n' => env('FEATURE_I18N', true),
+ 'team' => env('FEATURE_TEAM', true),
+ 'partners' => env('FEATURE_PARTNERS', true),
+ 'clients' => env('FEATURE_CLIENTS', true),
+];
'public' => [
'driver' => 'local',
'root' => storage_path('app/public'),
- 'url' => env('APP_URL') . '/storage',
+ 'url' => env('APP_URL').'/storage',
'visibility' => 'public',
],
'url' => env('AWS_URL'),
],
+ // used for Backpack/BackupManager
'backups' => [
'driver' => 'local',
- 'root' => storage_path('backups'), // that's where your backups are stored by default: storage/backups
+ 'root' => storage_path('backups'), // that's where your backups are stored by default: storage/backups
],
'storage' => [
--- /dev/null
+<?php
+return [
+
+ /*
+ * The Google Tag Manager id, should be a code that looks something like "gtm-xxxx".
+ */
+ 'id' => env('GOOGLE_TAGMANAGER_ID', ''),
+
+ /*
+ * Enable or disable script rendering. Useful for local development.
+ */
+ 'enabled' => env('GOOGLE_TAGMANAGER_ID', '') != '',
+
+ /*
+ * If you want to use some macro's you 'll probably store them
+ * in a dedicated file. You can optionally define the path
+ * to that file here and we will load it for you.
+ */
+ 'macroPath' => '',
+
+ /*
+ * The key under which data is saved to the session with flash.
+ */
+ 'sessionKey' => '_googleTagManager',
+
+];
--- /dev/null
+<?php
+
+return [
+
+ /*
+ * The Google Tag Manager id, should be a code that looks something like "gtm-xxxx".
+ */
+ 'id' => env('GOOGLE_ANALYTICS_ID', ''),
+
+ /*
+ * Enable or disable script rendering. Useful for local development.
+ */
+ 'enabled' => env('GOOGLE_ANALYTICS_ID', '') != '',
+
+ /*
+ * Observe Do Not Track header. Disable google analytics tracking when enabled on the user agent
+ */
+ 'observe_dnt' => true,
+];
--- /dev/null
+<?php
+
+return [
+ 'default' => [
+ 'auto_activate' => true,
+ 'activate_parents' => true,
+ 'active_class' => 'active',
+ 'restful' => false,
+ 'cascade_data' => true,
+ 'rest_base' => '', // string|array
+ 'active_element' => 'item', // item|link
+ ],
+];
--- /dev/null
+<?php
+
+return [
+ 'bootstrap-items' => 'laravel-menu::bootstrap-navbar-items',
+];
'stack' => [
'driver' => 'stack',
'channels' => ['daily'],
+ 'ignore_exceptions' => false,
],
'single' => [
],
'papertrail' => [
- 'driver' => 'monolog',
+ 'driver' => 'monolog',
'level' => 'debug',
'handler' => SyslogUdpHandler::class,
'handler_with' => [
'stderr' => [
'driver' => 'monolog',
'handler' => StreamHandler::class,
+ 'formatter' => env('LOG_STDERR_FORMATTER'),
'with' => [
'stream' => 'php://stderr',
],
*/
'from' => [
- 'address' => env('MAIL_FROM_ADDRESS', 'hello@example.com'),
- 'name' => env('MAIL_FROM_NAME', 'Example'),
+ 'address' => env('MAIL_FROM_ADDRESS', 'pmi@cubedesigners.com'),
+ 'name' => env('MAIL_FROM_NAME', 'PM-Instrumentation'),
],
/*
--- /dev/null
+<?php
+
+declare(strict_types=1);
+
+/*
+ * This file is part of Laravel Markdown.
+ *
+ * (c) Graham Campbell <graham@alt-three.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+return [
+
+ /*
+ |--------------------------------------------------------------------------
+ | Enable View Integration
+ |--------------------------------------------------------------------------
+ |
+ | This option specifies if the view integration is enabled so you can write
+ | markdown views and have them rendered as html. The following extensions
+ | are currently supported: ".md", ".md.php", and ".md.blade.php". You may
+ | disable this integration if it is conflicting with another package.
+ |
+ | Default: true
+ |
+ */
+
+ 'views' => true,
+
+ /*
+ |--------------------------------------------------------------------------
+ | CommonMark Extensions
+ |--------------------------------------------------------------------------
+ |
+ | This option specifies what extensions will be automatically enabled.
+ | Simply provide your extension class names here.
+ |
+ | Default: []
+ |
+ */
+
+ 'extensions' => [
+ Cubist\Backpack\app\Markdown\Heading\Extension::class,
+ Cubist\Backpack\app\Markdown\Wrapper\Extension::class,
+ League\CommonMark\Ext\Autolink\AutolinkExtension::class,
+ League\CommonMark\Ext\Table\TableExtension::class,
+ Cubist\Backpack\app\Markdown\InternalLink\Extension::class,
+
+ ],
+
+ /*
+ |--------------------------------------------------------------------------
+ | Renderer Configuration
+ |--------------------------------------------------------------------------
+ |
+ | This option specifies an array of options for rendering HTML.
+ |
+ | Default: [
+ | 'block_separator' => "\n",
+ | 'inner_separator' => "\n",
+ | 'soft_break' => "\n",
+ | ]
+ |
+ */
+
+ 'renderer' => [
+ 'block_separator' => "\n",
+ 'inner_separator' => "\n",
+ 'soft_break' => "\n",
+ ],
+
+ /*
+ |--------------------------------------------------------------------------
+ | Enable Em Tag Parsing
+ |--------------------------------------------------------------------------
+ |
+ | This option specifies if `<em>` parsing is enabled.
+ |
+ | Default: true
+ |
+ */
+
+ 'enable_em' => true,
+
+ /*
+ |--------------------------------------------------------------------------
+ | Enable Strong Tag Parsing
+ |--------------------------------------------------------------------------
+ |
+ | This option specifies if `<strong>` parsing is enabled.
+ |
+ | Default: true
+ |
+ */
+
+ 'enable_strong' => true,
+
+ /*
+ |--------------------------------------------------------------------------
+ | Enable Asterisk Parsing
+ |--------------------------------------------------------------------------
+ |
+ | This option specifies if `*` should be parsed for emphasis.
+ |
+ | Default: true
+ |
+ */
+
+ 'use_asterisk' => true,
+
+ /*
+ |--------------------------------------------------------------------------
+ | Enable Underscore Parsing
+ |--------------------------------------------------------------------------
+ |
+ | This option specifies if `_` should be parsed for emphasis.
+ |
+ | Default: true
+ |
+ */
+
+ 'use_underscore' => true,
+
+ /*
+ |--------------------------------------------------------------------------
+ | HTML Input
+ |--------------------------------------------------------------------------
+ |
+ | This option specifies how to handle untrusted HTML input.
+ |
+ | Default: 'strip'
+ |
+ */
+
+ 'html_input' => 'strip',
+
+ /*
+ |--------------------------------------------------------------------------
+ | Allow Unsafe Links
+ |--------------------------------------------------------------------------
+ |
+ | This option specifies whether to allow risky image URLs and links.
+ |
+ | Default: true
+ |
+ */
+
+ 'allow_unsafe_links' => true,
+
+ /*
+ |--------------------------------------------------------------------------
+ | Maximum Nesting Level
+ |--------------------------------------------------------------------------
+ |
+ | This option specifies the maximum permitted block nesting level.
+ |
+ | Default: INF
+ |
+ */
+
+ 'max_nesting_level' => INF,
+
+ 'heading_offset' => 0,
+ 'heading_max' => 6
+
+];
--- /dev/null
+<?php
+
+return [
+
+ /*
+ * The disk on which to store added files and derived images by default. Choose
+ * one or more of the disks you've configured in config/filesystems.php.
+ */
+ 'disk_name' => 'public',
+
+ /*
+ * The maximum file size of an item in bytes.
+ * Adding a larger file will result in an exception.
+ */
+ 'max_file_size' => 1024 * 1024 * 1024,
+
+ /*
+ * This queue will be used to generate derived and responsive images.
+ * Leave empty to use the default queue.
+ */
+ 'queue_name' => '',
+
+ /*
+ * The fully qualified class name of the media model.
+ */
+ 'media_model' => Spatie\MediaLibrary\Models\Media::class,
+
+ 's3' => [
+ /*
+ * The domain that should be prepended when generating urls.
+ */
+ 'domain' => 'https://'.env('AWS_BUCKET').'.s3.amazonaws.com',
+ ],
+
+ 'remote' => [
+ /*
+ * Any extra headers that should be included when uploading media to
+ * a remote disk. Even though supported headers may vary between
+ * different drivers, a sensible default has been provided.
+ *
+ * Supported by S3: CacheControl, Expires, StorageClass,
+ * ServerSideEncryption, Metadata, ACL, ContentEncoding
+ */
+ 'extra_headers' => [
+ 'CacheControl' => 'max-age=604800',
+ ],
+ ],
+
+ 'responsive_images' => [
+
+ /*
+ * This class is responsible for calculating the target widths of the responsive
+ * images. By default we optimize for filesize and create variations that each are 20%
+ * smaller than the previous one. More info in the documentation.
+ *
+ * https://docs.spatie.be/laravel-medialibrary/v7/advanced-usage/generating-responsive-images
+ */
+ 'width_calculator' => Spatie\MediaLibrary\ResponsiveImages\WidthCalculator\FileSizeOptimizedWidthCalculator::class,
+
+ /*
+ * By default rendering media to a responsive image will add some javascript and a tiny placeholder.
+ * This ensures that the browser can already determine the correct layout.
+ */
+ 'use_tiny_placeholders' => true,
+
+ /*
+ * This class will generate the tiny placeholder used for progressive image loading. By default
+ * the medialibrary will use a tiny blurred jpg image.
+ */
+ 'tiny_placeholder_generator' => Spatie\MediaLibrary\ResponsiveImages\TinyPlaceholderGenerator\Blurred::class,
+ ],
+
+ /*
+ * When urls to files get generated, this class will be called. Leave empty
+ * if your files are stored locally above the site root or on s3.
+ */
+ 'url_generator' => null,
+
+ /*
+ * The class that contains the strategy for determining a media file's path.
+ */
+ 'path_generator' => null,
+
+ /*
+ * Medialibrary will try to optimize all converted images by removing
+ * metadata and applying a little bit of compression. These are
+ * the optimizers that will be used by default.
+ */
+ 'image_optimizers' => [
+ Spatie\ImageOptimizer\Optimizers\Jpegoptim::class => [
+ '--strip-all', // this strips out all text information such as comments and EXIF data
+ '--all-progressive', // this will make sure the resulting image is a progressive one
+ ],
+ Spatie\ImageOptimizer\Optimizers\Pngquant::class => [
+ '--force', // required parameter for this package
+ ],
+ Spatie\ImageOptimizer\Optimizers\Optipng::class => [
+ '-i0', // this will result in a non-interlaced, progressive scanned image
+ '-o2', // this set the optimization level to two (multiple IDAT compression trials)
+ '-quiet', // required parameter for this package
+ ],
+ Spatie\ImageOptimizer\Optimizers\Svgo::class => [
+ '--disable=cleanupIDs', // disabling because it is known to cause troubles
+ ],
+ Spatie\ImageOptimizer\Optimizers\Gifsicle::class => [
+ '-b', // required parameter for this package
+ '-O3', // this produces the slowest but best results
+ ],
+ ],
+
+ /*
+ * These generators will be used to create an image of media files.
+ */
+ 'image_generators' => [
+ Spatie\MediaLibrary\ImageGenerators\FileTypes\Image::class,
+ Spatie\MediaLibrary\ImageGenerators\FileTypes\Webp::class,
+ Spatie\MediaLibrary\ImageGenerators\FileTypes\Pdf::class,
+ Spatie\MediaLibrary\ImageGenerators\FileTypes\Svg::class,
+ Spatie\MediaLibrary\ImageGenerators\FileTypes\Video::class,
+ ],
+
+ /*
+ * The engine that should perform the image conversions.
+ * Should be either `gd` or `imagick`.
+ */
+ 'image_driver' => 'gd',
+
+ /*
+ * FFMPEG & FFProbe binaries paths, only used if you try to generate video
+ * thumbnails and have installed the php-ffmpeg/php-ffmpeg composer
+ * dependency.
+ */
+ 'ffmpeg_path' => env('FFMPEG_PATH', '/usr/bin/ffmpeg'),
+ 'ffprobe_path' => env('FFPROBE_PATH', '/usr/bin/ffprobe'),
+
+ /*
+ * The path where to store temporary files while performing image conversions.
+ * If set to null, storage_path('medialibrary/temp') will be used.
+ */
+ 'temporary_directory_path' => null,
+
+ /*
+ * Here you can override the class names of the jobs used by this package. Make sure
+ * your custom jobs extend the ones provided by the package.
+ */
+ 'jobs' => [
+ 'perform_conversions' => Spatie\MediaLibrary\Jobs\PerformConversions::class,
+ 'generate_responsive_images' => Spatie\MediaLibrary\Jobs\GenerateResponsiveImages::class,
+ ],
+];
return [
- /*
- |--------------------------------------------------------------------------
- | Authorization Models
- |--------------------------------------------------------------------------
- */
-
'models' => [
/*
- |--------------------------------------------------------------------------
- | Permission Model
- |--------------------------------------------------------------------------
- |
- | When using the "HasRoles" trait from this package, we need to know which
- | Eloquent model should be used to retrieve your permissions. Of course, it
- | is often just the "Permission" model but you may use whatever you like.
- |
- | The model you want to use as a Permission model needs to implement the
- | `Spatie\Permission\Contracts\Permission` contract.
- |
+ * When using the "HasPermissions" trait from this package, we need to know which
+ * Eloquent model should be used to retrieve your permissions. Of course, it
+ * is often just the "Permission" model but you may use whatever you like.
+ *
+ * The model you want to use as a Permission model needs to implement the
+ * `Spatie\Permission\Contracts\Permission` contract.
*/
- 'permission' => Backpack\PermissionManager\app\Models\Permission::class,
+ 'permission' => Spatie\Permission\Models\Permission::class,
/*
- |--------------------------------------------------------------------------
- | Role Model
- |--------------------------------------------------------------------------
- |
- | When using the "HasRoles" trait from this package, we need to know which
- | Eloquent model should be used to retrieve your roles. Of course, it
- | is often just the "Role" model but you may use whatever you like.
- |
- | The model you want to use as a Role model needs to implement the
- | `Spatie\Permission\Contracts\Role` contract.
- |
+ * When using the "HasRoles" trait from this package, we need to know which
+ * Eloquent model should be used to retrieve your roles. Of course, it
+ * is often just the "Role" model but you may use whatever you like.
+ *
+ * The model you want to use as a Role model needs to implement the
+ * `Spatie\Permission\Contracts\Role` contract.
*/
- 'role' => Backpack\PermissionManager\app\Models\Role::class,
+ 'role' => Spatie\Permission\Models\Role::class,
],
- /*
- |--------------------------------------------------------------------------
- | Authorization Tables
- |--------------------------------------------------------------------------
- */
-
'table_names' => [
/*
- |--------------------------------------------------------------------------
- | Users Table
- |--------------------------------------------------------------------------
- |
- | The table that your application uses for users. This table's model will
- | be using the "HasRoles" and "HasPermissions" traits.
- |
- */
- 'users' => 'users',
-
- /*
- |--------------------------------------------------------------------------
- | Roles Table
- |--------------------------------------------------------------------------
- |
- | When using the "HasRoles" trait from this package, we need to know which
- | table should be used to retrieve your roles. We have chosen a basic
- | default value but you may easily change it to any table you like.
- |
+ * When using the "HasRoles" trait from this package, we need to know which
+ * table should be used to retrieve your roles. We have chosen a basic
+ * default value but you may easily change it to any table you like.
*/
'roles' => 'roles',
/*
- |--------------------------------------------------------------------------
- | Permissions Table
- |--------------------------------------------------------------------------
- |
- | When using the "HasRoles" trait from this package, we need to know which
- | table should be used to retrieve your permissions. We have chosen a basic
- | default value but you may easily change it to any table you like.
- |
+ * When using the "HasPermissions" trait from this package, we need to know which
+ * table should be used to retrieve your permissions. We have chosen a basic
+ * default value but you may easily change it to any table you like.
*/
'permissions' => 'permissions',
/*
- |--------------------------------------------------------------------------
- | User Permissions Table
- |--------------------------------------------------------------------------
- |
- | When using the "HasRoles" trait from this package, we need to know which
- | table should be used to retrieve your models permissions. We have chosen a
- | basic default value but you may easily change it to any table you like.
- |
+ * When using the "HasPermissions" trait from this package, we need to know which
+ * table should be used to retrieve your models permissions. We have chosen a
+ * basic default value but you may easily change it to any table you like.
*/
'model_has_permissions' => 'model_has_permissions',
/*
- |--------------------------------------------------------------------------
- | User Roles Table
- |--------------------------------------------------------------------------
- |
- | When using the "HasRoles" trait from this package, we need to know which
- | table should be used to retrieve your model roles. We have chosen a
- | basic default value but you may easily change it to any table you like.
- |
- */
+ * When using the "HasRoles" trait from this package, we need to know which
+ * table should be used to retrieve your models roles. We have chosen a
+ * basic default value but you may easily change it to any table you like.
+ */
'model_has_roles' => 'model_has_roles',
/*
- |--------------------------------------------------------------------------
- | Role Permissions Table
- |--------------------------------------------------------------------------
- |
- | When using the "HasRoles" trait from this package, we need to know which
- | table should be used to retrieve your roles permissions. We have chosen a
- | basic default value but you may easily change it to any table you like.
- |
- */
+ * When using the "HasRoles" trait from this package, we need to know which
+ * table should be used to retrieve your roles permissions. We have chosen a
+ * basic default value but you may easily change it to any table you like.
+ */
'role_has_permissions' => 'role_has_permissions',
],
- /*
- * By default all permissions will be cached for 24 hours unless a permission or
- * role is updated. Then the cache will be flushed immediately.
- */
- 'cache_expiration_time' => 60 * 24,
+ 'column_names' => [
+
+ /*
+ * Change this if you want to name the related model primary key other than
+ * `model_id`.
+ *
+ * For example, this would be nice if your primary keys are all UUIDs. In
+ * that case, name this `model_uuid`.
+ */
+ 'model_morph_key' => 'model_id',
+ ],
+
/*
* When set to true, the required permission/role names are added to the exception
* message. This could be considered an information leak in some contexts, so
* the default setting is false here for optimum safety.
*/
+
'display_permission_in_exception' => false,
+
+ 'cache' => [
+
+ /*
+ * By default all permissions will be cached for 24 hours unless a permission or
+ * role is updated. Then the cache will be flushed immediately.
+ */
+
+ 'expiration_time' => 60 * 24,
+
+ /*
+ * The key to use when tagging and prefixing entries in the cache.
+ */
+
+ 'key' => 'spatie.permission.cache',
+
+ /*
+ * When checking for a permission against a model by passing a Permission
+ * instance to the check, this key determines what attribute on the
+ * Permissions model is used to cache against.
+ *
+ * Ideally, this should match your preferred way of checking permissions, eg:
+ * `$user->can('view-posts')` would be 'name'.
+ */
+
+ 'model_key' => 'name',
+
+ /*
+ * You may optionally indicate a specific cache driver to use for permission and
+ * role caching using any of the `store` drivers listed in the cache.php config
+ * file. Using 'default' here means to use the `default` set in cache.php.
+ */
+ 'store' => 'default',
+ ],
];
<?php
-/*
-|--------------------------------------------------------------------------
-| Web Routes
-|--------------------------------------------------------------------------
-|
-| Here is where you can register web routes for your application. These
-| routes are loaded by the RouteServiceProvider within a group which
-| contains the "web" middleware group. Now create something great!
-|
-*/
-
-Route::get('/', function () {
- return view('welcome');
-});
+Route::any('{page}/{subs?}', 'PageController@catchall')
+ ->where(['page' => '^(((?=(?!admin))(?=(?!\/)).))*$', 'subs' => '.*']);