Merge branch 'test.customwristbands.cz' of binarity.cz:/opt/git/internal/cms/minicms into test.customwristbands.cz
This commit is contained in:
@@ -0,0 +1,20 @@
|
||||
APP_ENV=testing
|
||||
APP_DEBUG=true
|
||||
APP_KEY=ZKZAzM23wQ6BPji6zffBjaTzZ3yW7zKQ
|
||||
|
||||
DB_HOST=localhost
|
||||
DB_DATABASE=
|
||||
DB_USERNAME=
|
||||
DB_PASSWORD=
|
||||
|
||||
CACHE_DRIVER=file
|
||||
SESSION_DRIVER=file
|
||||
QUEUE_DRIVER=sync
|
||||
|
||||
MAIL_USERNAME=@binarity.cz
|
||||
MAIL_PASSWORD=
|
||||
|
||||
SITE_URL=/
|
||||
UPLOAD_URL=/public/uploads
|
||||
THUMBNAILS_URL=/uploads/thumbnails
|
||||
THEME=
|
||||
@@ -40,16 +40,31 @@ class SetTheme extends Command
|
||||
throw new NotFoundHttpException('Invalid theme ' . $theme . '!');
|
||||
}
|
||||
|
||||
$env = file_get_contents(base_path('.env'));
|
||||
// load .env file
|
||||
$envFile = base_path('.env');
|
||||
$env = file_get_contents($envFile);
|
||||
|
||||
$env = preg_replace('/THEME=(.+)/i', 'THEME=' . $theme, $env);
|
||||
|
||||
if (!Str::contains($env, 'THEME')) {
|
||||
if (!Str::contains($env, 'THEME=')) {
|
||||
$env = sprintf("%s\nTHEME=%s\n", $env, $theme);
|
||||
} else {
|
||||
$env = preg_replace('/THEME=(.*)/i', 'THEME=' . $theme, $env, -1, $cnt);
|
||||
}
|
||||
|
||||
file_put_contents(base_path('.env'), $env);
|
||||
// try to write content
|
||||
$bytesWritten = file_put_contents($envFile, $env);
|
||||
|
||||
// check if write was successfull
|
||||
if (!$bytesWritten) {
|
||||
throw new \Exception('Cannot write to ' . base_path('.env') . '. Add THEME=' . $theme . ' to your .env file manualy.');
|
||||
}
|
||||
|
||||
// theme written
|
||||
$this->line('Theme successfully setup.');
|
||||
$this->line('');
|
||||
$this->line(' ** PUBLISHING ASSETS AND VIEWS **');
|
||||
// publish assets and views for module and theme
|
||||
$this->call('vendor:publish', ['--tag' => ['public-assets'], '--force' => true]);
|
||||
$this->call('vendor:publish', ['--tag' => ['module-views'], '--force' => true]);
|
||||
$this->call('vendor:publish');
|
||||
}
|
||||
}
|
||||
|
||||
@@ -13,12 +13,12 @@ use App\Handlers\Search\Presenters\AdminContent as AdminContentPresenter;
|
||||
use App\Handlers\Search\Presenters\AdminFiles;
|
||||
use App\Models\Template;
|
||||
use App\Widgets\HtmlCode\HtmlCode;
|
||||
use App\Widgets\Menu\Extensions\URL;
|
||||
use App\Widgets\Menu\Menu;
|
||||
use App\Widgets\OrbitSlider\OrbitSlider;
|
||||
use Illuminate\Support\Facades\App;
|
||||
use Illuminate\Support\Facades\File;
|
||||
use Illuminate\Support\ServiceProvider;
|
||||
use Symfony\Component\Process\Exception\InvalidArgumentException;
|
||||
|
||||
class AppServiceProvider extends ServiceProvider
|
||||
{
|
||||
@@ -39,6 +39,13 @@ class AppServiceProvider extends ServiceProvider
|
||||
$this->registerTemplates();
|
||||
$this->registerSettings();
|
||||
$this->registerSearch();
|
||||
|
||||
// check if given template is valid
|
||||
$theme = config('app.theme');
|
||||
$themeDir = resource_path('views/visitor/' . $theme);
|
||||
if (!$theme || empty($theme) || !is_dir($themeDir)) {
|
||||
throw new InvalidArgumentException('No or invalid theme set! Use artisan theme:set or edit .env file manually and include THEME option, please');
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -95,8 +102,8 @@ class AppServiceProvider extends ServiceProvider
|
||||
$registrator->register(OrbitSlider::class);
|
||||
|
||||
// register some menu extensions
|
||||
// $menuExtensions = $this->app->make('registerMenuExtension');
|
||||
// $menuExtensions->register(new URL());
|
||||
// $menuExtensions = $this->app->make('registerMenuExtension');
|
||||
// $menuExtensions->register(new URL());
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -140,35 +147,28 @@ class AppServiceProvider extends ServiceProvider
|
||||
*/
|
||||
private function publishViewResources()
|
||||
{
|
||||
$themes = File::directories(resource_path('views/visitor'));
|
||||
$theme = config('app.theme');
|
||||
$themeDir = resource_path('views/visitor/' . $theme);
|
||||
|
||||
$assets = [];
|
||||
foreach ($themes as $theme) {
|
||||
$themeName = basename($theme);
|
||||
|
||||
if (is_dir($theme . '/'.Template::ASSETS_DIRECTORY)) {
|
||||
$assets[$theme . '/'.Template::ASSETS_DIRECTORY] = public_path('assets/' . $themeName);
|
||||
}
|
||||
|
||||
if (is_dir($theme . '/'.Template::MODULES_DIRECTORY)) {
|
||||
$this->publishModuleViews($theme . '/'.Template::MODULES_DIRECTORY, $themeName);
|
||||
}
|
||||
// publish assets if exists for current theme
|
||||
if (is_dir($themeDir . '/' . Template::ASSETS_DIRECTORY)) {
|
||||
$this->publishes([$themeDir . '/' . Template::ASSETS_DIRECTORY => public_path('assets/' . $theme)], 'public-assets');
|
||||
}
|
||||
|
||||
if (!empty($assets)) {
|
||||
$this->publishes($assets, 'public-assets');
|
||||
if (is_dir($themeDir . '/' . Template::MODULES_DIRECTORY)) {
|
||||
// $this->publishModuleViews($themeDir . '/' . Template::MODULES_DIRECTORY);
|
||||
}
|
||||
}
|
||||
|
||||
private function publishModuleViews($themeModules, $themeName)
|
||||
private function publishModuleViews($themeModules)
|
||||
{
|
||||
$theme = config('app.theme');
|
||||
$modules = File::directories($themeModules);
|
||||
|
||||
$moduleViews = [];
|
||||
foreach ($modules as $module) {
|
||||
$moduleName = strtolower(basename($module));
|
||||
|
||||
$moduleViews[$module] = resource_path('views/modules/' . $moduleName . '/visitor/' . $themeName);
|
||||
$moduleViews[$module] = resource_path('views/modules/' . $moduleName . '/visitor/' . $theme);
|
||||
}
|
||||
|
||||
if (!empty($moduleViews)) {
|
||||
|
||||
+4
-4
@@ -37,7 +37,7 @@ return [
|
||||
|
|
||||
*/
|
||||
|
||||
'url' => 'http://localhost',
|
||||
'url' => env('SITE_URL', 'http://localhost'),
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Application Timezone
|
||||
@@ -49,7 +49,7 @@ return [
|
||||
|
|
||||
*/
|
||||
|
||||
'timezone' => 'UTC',
|
||||
'timezone' => env('TIMEZONE', 'UTC'),
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Application Locale Configuration
|
||||
@@ -61,7 +61,7 @@ return [
|
||||
|
|
||||
*/
|
||||
|
||||
'locale' => 'en',
|
||||
'locale' => env('LOCALES', 'en'),
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Application Fallback Locale
|
||||
@@ -97,7 +97,7 @@ return [
|
||||
*/
|
||||
'upload_url' => env('UPLOAD_URL', PHP_SAPI === 'cli' ? '' : url('uploads')),
|
||||
'thumbnail_url' => env('THUMBNAIL_URL', PHP_SAPI === 'cli' ? '' : url('uploads/thumbnails')),
|
||||
'theme' => env('THEME', 'default_theme'),
|
||||
'theme' => env('THEME'),
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Logging Configuration
|
||||
|
||||
@@ -43,12 +43,13 @@ class ContactForm extends Handler
|
||||
public static function createNew(Content &$content, Request $request)
|
||||
{
|
||||
$settings = [
|
||||
'phone' => $request->phone,
|
||||
'email' => $request->email,
|
||||
'companyName' => $request->companyName,
|
||||
'address' => $request->address,
|
||||
'gpsLat' => $request->gpsLat,
|
||||
'gpsLng' => $request->gpsLng,
|
||||
'phone' => $request->phone,
|
||||
'email' => $request->email,
|
||||
'contactEmail' => $request->ContactEmail,
|
||||
'companyName' => $request->companyName,
|
||||
'address' => $request->address,
|
||||
'gpsLat' => $request->gpsLat,
|
||||
'gpsLng' => $request->gpsLng,
|
||||
];
|
||||
|
||||
// save settings
|
||||
@@ -70,12 +71,13 @@ class ContactForm extends Handler
|
||||
public static function edit(Content &$content, Request $request, $revisionID)
|
||||
{
|
||||
$fields = [
|
||||
'phone' => 'phone',
|
||||
'email' => 'email',
|
||||
'companyName' => 'companyName',
|
||||
'address' => 'address',
|
||||
'gpsLat' => 'gpsLat',
|
||||
'gpsLng' => 'gpsLng',
|
||||
'phone' => 'phone',
|
||||
'email' => 'email',
|
||||
'contactEmail' => 'contactEmail',
|
||||
'companyName' => 'companyName',
|
||||
'address' => 'address',
|
||||
'gpsLat' => 'gpsLat',
|
||||
'gpsLng' => 'gpsLng',
|
||||
];
|
||||
|
||||
// get data and try to save them
|
||||
@@ -146,7 +148,7 @@ class ContactForm extends Handler
|
||||
$menu->dropdown(trans('contactform::admin/adminMenu.contactForm'), function ($submenu) use ($user) {
|
||||
$submenu->route('content.new', trans('contactform::admin/adminMenu.new'), ['moduleId' => self::getModuleId()], 10, ['icon' => 'fa fa-plus']);
|
||||
$submenu->route('content.overview', trans('contactform::admin/adminMenu.overview'), ['moduleId' => self::getModuleId()], 20, ['icon' => 'fa fa-list']);
|
||||
// $submenu->route('emails.sent', trans('contactform::admin/adminMenu.sentMessages'), [], 30, ['icon' => 'fa fa-send']);
|
||||
// $submenu->route('emails.sent', trans('contactform::admin/adminMenu.sentMessages'), [], 30, ['icon' => 'fa fa-send']);
|
||||
}, 25, ['icon' => 'fa fa-envelope-o']);
|
||||
}
|
||||
|
||||
|
||||
@@ -12,7 +12,7 @@ class CreateNewMessage extends Controller
|
||||
{
|
||||
/**
|
||||
* Method for sending emails via contact form
|
||||
*
|
||||
*
|
||||
* @param SendNewEmailRequest $request
|
||||
* @param $formId
|
||||
*
|
||||
@@ -33,18 +33,26 @@ class CreateNewMessage extends Controller
|
||||
$status = Mail::send(Template::name($template), ['data' => $request], function (Message $message) use ($request, $form) {
|
||||
$message->from($request->email, $request->name);
|
||||
$message->to($form->module_settings->email)
|
||||
->subject('Your Reminder!');
|
||||
->subject('Nejaky predmet - nastavovat v administraci, nebo nechavat vyplnovat uzivatele?');
|
||||
});
|
||||
|
||||
// inform user about success or failure
|
||||
if ($status) {
|
||||
return redirect()
|
||||
->route('page.content', ['url' => $form->url])
|
||||
->with('success', '');
|
||||
$this->sendResponse($status, $request, $form);
|
||||
}
|
||||
|
||||
private function sendResponse($status, SendNewEmailRequest $request, $form)
|
||||
{
|
||||
// send response for ajax
|
||||
if ($request->ajax()) {
|
||||
return response()->json([
|
||||
'status' => $status ? 'success' : 'failed',
|
||||
'redirectUrl' => $form->url
|
||||
]);
|
||||
} else {
|
||||
return redirect()
|
||||
->route('page.content', ['url' => $form->url])
|
||||
->with('error', '');
|
||||
// redirect user to previous form
|
||||
$response = redirect()->route('page.content', ['url' => $form->url]);
|
||||
|
||||
return $status ? $response->with('success', '') : $response->with('error', '');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -60,7 +60,7 @@ class ContactFormServiceProvider extends ServiceProvider
|
||||
$viewPath = base_path('resources'.DIRECTORY_SEPARATOR.'views'.DIRECTORY_SEPARATOR.'modules'.DIRECTORY_SEPARATOR.'contactform');
|
||||
$sourcePath = __DIR__ . DIRECTORY_SEPARATOR.'..'.DIRECTORY_SEPARATOR.'Resources'.DIRECTORY_SEPARATOR.'views';
|
||||
|
||||
$this->publishes([$sourcePath => $viewPath]);
|
||||
$this->publishes([$sourcePath => $viewPath], 'module-views');
|
||||
|
||||
$this->loadViewsFrom(array_merge(array_map(function ($path) {
|
||||
return $path . DIRECTORY_SEPARATOR.'modules'.DIRECTORY_SEPARATOR.'contactform';
|
||||
|
||||
@@ -7,6 +7,7 @@ return [
|
||||
'gpsLng' => 'GPS longitude',
|
||||
'compName' => 'Name displayed above address',
|
||||
'phone' => 'Contact phone',
|
||||
'email' => 'E-mail',
|
||||
'contactEmail' => 'E-mail, where messages from this form will be delivered',
|
||||
'contactInformation' => 'Contact information'
|
||||
];
|
||||
@@ -3,6 +3,7 @@ return [
|
||||
'columnPhone' => 'Phone',
|
||||
'columnAddress' => 'Address',
|
||||
'columnEmail' => 'E-mail',
|
||||
'columnContactEmail' => 'Contact E-mail',
|
||||
'columnCompanyName' => 'Company name',
|
||||
'columnGpsLat' => 'GPS Latitude',
|
||||
'columnGpsLng' => 'Gps Longitude',
|
||||
|
||||
@@ -67,24 +67,18 @@
|
||||
|
||||
<div class="row">
|
||||
<div class="column large-6">
|
||||
|
||||
<label>
|
||||
@lang('contactform::admin/content.email')
|
||||
|
||||
<input type="email" name="email" value="{{$page->module_settings->email or ""}}" />
|
||||
</label>
|
||||
|
||||
<label>
|
||||
@lang('contactform::admin/content.phone')
|
||||
|
||||
<input type="tel" name="phone" value="{{$page->module_settings->phone or ""}}" />
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<div class="column large-6">
|
||||
<label>
|
||||
@lang('contactform::admin/content.contactEmail')
|
||||
|
||||
<input type="email" name="email" value="{{$page->module_settings->email or \Auth::user()->email}}" />
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="column large-6">
|
||||
|
||||
<label>
|
||||
@lang('contactform::admin/content.compName')
|
||||
@@ -98,16 +92,29 @@
|
||||
<textarea rows="3" name="address">{{$page->module_settings->address or ""}}</textarea>
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<div class="column large-6">
|
||||
<label>
|
||||
@lang('contactform::admin/content.gpsLat')
|
||||
@lang('contactform::admin/content.contactEmail')
|
||||
|
||||
<input type="text" value="{{$page->module_settings->gpsLat or ""}}" name="gpsLat" />
|
||||
<input type="email" name="contactEmail" value="{{$page->module_settings->contactEmail or \Auth::user()->email}}" />
|
||||
</label>
|
||||
<label>
|
||||
@lang('contactform::admin/content.gpsLng')
|
||||
|
||||
<input type="text" value="{{$page->module_settings->gpsLng or ""}}" name="gpsLng" />
|
||||
</label>
|
||||
<div class="row">
|
||||
<div class="column large-6">
|
||||
<label>
|
||||
@lang('contactform::admin/content.gpsLat')
|
||||
|
||||
<input type="text" value="{{$page->module_settings->gpsLat or ""}}" name="gpsLat" />
|
||||
</label>
|
||||
</div>
|
||||
<div class="column large-6">
|
||||
<label>
|
||||
@lang('contactform::admin/content.gpsLng')
|
||||
|
||||
<input type="text" value="{{$page->module_settings->gpsLng or ""}}" name="gpsLng" />
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user