Merge branch 'test.customwristbands.cz' of binarity.cz:/opt/git/internal/cms/minicms into test.customwristbands.cz

This commit is contained in:
peter
2016-04-04 20:42:00 +02:00
10 changed files with 126 additions and 72 deletions
+20
View File
@@ -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=
+20 -5
View File
@@ -40,16 +40,31 @@ class SetTheme extends Command
throw new NotFoundHttpException('Invalid theme ' . $theme . '!'); 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); $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('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');
} }
} }
+18 -18
View File
@@ -13,12 +13,12 @@ use App\Handlers\Search\Presenters\AdminContent as AdminContentPresenter;
use App\Handlers\Search\Presenters\AdminFiles; use App\Handlers\Search\Presenters\AdminFiles;
use App\Models\Template; use App\Models\Template;
use App\Widgets\HtmlCode\HtmlCode; use App\Widgets\HtmlCode\HtmlCode;
use App\Widgets\Menu\Extensions\URL;
use App\Widgets\Menu\Menu; use App\Widgets\Menu\Menu;
use App\Widgets\OrbitSlider\OrbitSlider; use App\Widgets\OrbitSlider\OrbitSlider;
use Illuminate\Support\Facades\App; use Illuminate\Support\Facades\App;
use Illuminate\Support\Facades\File; use Illuminate\Support\Facades\File;
use Illuminate\Support\ServiceProvider; use Illuminate\Support\ServiceProvider;
use Symfony\Component\Process\Exception\InvalidArgumentException;
class AppServiceProvider extends ServiceProvider class AppServiceProvider extends ServiceProvider
{ {
@@ -39,6 +39,13 @@ class AppServiceProvider extends ServiceProvider
$this->registerTemplates(); $this->registerTemplates();
$this->registerSettings(); $this->registerSettings();
$this->registerSearch(); $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');
}
} }
/** /**
@@ -140,35 +147,28 @@ class AppServiceProvider extends ServiceProvider
*/ */
private function publishViewResources() private function publishViewResources()
{ {
$themes = File::directories(resource_path('views/visitor')); $theme = config('app.theme');
$themeDir = resource_path('views/visitor/' . $theme);
$assets = []; // publish assets if exists for current theme
foreach ($themes as $theme) { if (is_dir($themeDir . '/' . Template::ASSETS_DIRECTORY)) {
$themeName = basename($theme); $this->publishes([$themeDir . '/' . Template::ASSETS_DIRECTORY => public_path('assets/' . $theme)], 'public-assets');
if (is_dir($theme . '/'.Template::ASSETS_DIRECTORY)) {
$assets[$theme . '/'.Template::ASSETS_DIRECTORY] = public_path('assets/' . $themeName);
} }
if (is_dir($theme . '/'.Template::MODULES_DIRECTORY)) { if (is_dir($themeDir . '/' . Template::MODULES_DIRECTORY)) {
$this->publishModuleViews($theme . '/'.Template::MODULES_DIRECTORY, $themeName); // $this->publishModuleViews($themeDir . '/' . Template::MODULES_DIRECTORY);
} }
} }
if (!empty($assets)) { private function publishModuleViews($themeModules)
$this->publishes($assets, 'public-assets');
}
}
private function publishModuleViews($themeModules, $themeName)
{ {
$theme = config('app.theme');
$modules = File::directories($themeModules); $modules = File::directories($themeModules);
$moduleViews = []; $moduleViews = [];
foreach ($modules as $module) { foreach ($modules as $module) {
$moduleName = strtolower(basename($module)); $moduleName = strtolower(basename($module));
$moduleViews[$module] = resource_path('views/modules/' . $moduleName . '/visitor/' . $theme);
$moduleViews[$module] = resource_path('views/modules/' . $moduleName . '/visitor/' . $themeName);
} }
if (!empty($moduleViews)) { if (!empty($moduleViews)) {
+4 -4
View File
@@ -37,7 +37,7 @@ return [
| |
*/ */
'url' => 'http://localhost', 'url' => env('SITE_URL', 'http://localhost'),
/* /*
|-------------------------------------------------------------------------- |--------------------------------------------------------------------------
| Application Timezone | Application Timezone
@@ -49,7 +49,7 @@ return [
| |
*/ */
'timezone' => 'UTC', 'timezone' => env('TIMEZONE', 'UTC'),
/* /*
|-------------------------------------------------------------------------- |--------------------------------------------------------------------------
| Application Locale Configuration | Application Locale Configuration
@@ -61,7 +61,7 @@ return [
| |
*/ */
'locale' => 'en', 'locale' => env('LOCALES', 'en'),
/* /*
|-------------------------------------------------------------------------- |--------------------------------------------------------------------------
| Application Fallback Locale | Application Fallback Locale
@@ -97,7 +97,7 @@ return [
*/ */
'upload_url' => env('UPLOAD_URL', PHP_SAPI === 'cli' ? '' : url('uploads')), 'upload_url' => env('UPLOAD_URL', PHP_SAPI === 'cli' ? '' : url('uploads')),
'thumbnail_url' => env('THUMBNAIL_URL', PHP_SAPI === 'cli' ? '' : url('uploads/thumbnails')), 'thumbnail_url' => env('THUMBNAIL_URL', PHP_SAPI === 'cli' ? '' : url('uploads/thumbnails')),
'theme' => env('THEME', 'default_theme'), 'theme' => env('THEME'),
/* /*
|-------------------------------------------------------------------------- |--------------------------------------------------------------------------
| Logging Configuration | Logging Configuration
@@ -45,6 +45,7 @@ class ContactForm extends Handler
$settings = [ $settings = [
'phone' => $request->phone, 'phone' => $request->phone,
'email' => $request->email, 'email' => $request->email,
'contactEmail' => $request->ContactEmail,
'companyName' => $request->companyName, 'companyName' => $request->companyName,
'address' => $request->address, 'address' => $request->address,
'gpsLat' => $request->gpsLat, 'gpsLat' => $request->gpsLat,
@@ -72,6 +73,7 @@ class ContactForm extends Handler
$fields = [ $fields = [
'phone' => 'phone', 'phone' => 'phone',
'email' => 'email', 'email' => 'email',
'contactEmail' => 'contactEmail',
'companyName' => 'companyName', 'companyName' => 'companyName',
'address' => 'address', 'address' => 'address',
'gpsLat' => 'gpsLat', 'gpsLat' => 'gpsLat',
@@ -33,18 +33,26 @@ class CreateNewMessage extends Controller
$status = Mail::send(Template::name($template), ['data' => $request], function (Message $message) use ($request, $form) { $status = Mail::send(Template::name($template), ['data' => $request], function (Message $message) use ($request, $form) {
$message->from($request->email, $request->name); $message->from($request->email, $request->name);
$message->to($form->module_settings->email) $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 // inform user about success or failure
if ($status) { $this->sendResponse($status, $request, $form);
return redirect() }
->route('page.content', ['url' => $form->url])
->with('success', ''); 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 { } else {
return redirect() // redirect user to previous form
->route('page.content', ['url' => $form->url]) $response = redirect()->route('page.content', ['url' => $form->url]);
->with('error', '');
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'); $viewPath = base_path('resources'.DIRECTORY_SEPARATOR.'views'.DIRECTORY_SEPARATOR.'modules'.DIRECTORY_SEPARATOR.'contactform');
$sourcePath = __DIR__ . DIRECTORY_SEPARATOR.'..'.DIRECTORY_SEPARATOR.'Resources'.DIRECTORY_SEPARATOR.'views'; $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) { $this->loadViewsFrom(array_merge(array_map(function ($path) {
return $path . DIRECTORY_SEPARATOR.'modules'.DIRECTORY_SEPARATOR.'contactform'; return $path . DIRECTORY_SEPARATOR.'modules'.DIRECTORY_SEPARATOR.'contactform';
@@ -7,6 +7,7 @@ return [
'gpsLng' => 'GPS longitude', 'gpsLng' => 'GPS longitude',
'compName' => 'Name displayed above address', 'compName' => 'Name displayed above address',
'phone' => 'Contact phone', 'phone' => 'Contact phone',
'email' => 'E-mail',
'contactEmail' => 'E-mail, where messages from this form will be delivered', 'contactEmail' => 'E-mail, where messages from this form will be delivered',
'contactInformation' => 'Contact information' 'contactInformation' => 'Contact information'
]; ];
@@ -3,6 +3,7 @@ return [
'columnPhone' => 'Phone', 'columnPhone' => 'Phone',
'columnAddress' => 'Address', 'columnAddress' => 'Address',
'columnEmail' => 'E-mail', 'columnEmail' => 'E-mail',
'columnContactEmail' => 'Contact E-mail',
'columnCompanyName' => 'Company name', 'columnCompanyName' => 'Company name',
'columnGpsLat' => 'GPS Latitude', 'columnGpsLat' => 'GPS Latitude',
'columnGpsLng' => 'Gps Longitude', 'columnGpsLng' => 'Gps Longitude',
@@ -67,24 +67,18 @@
<div class="row"> <div class="row">
<div class="column large-6"> <div class="column large-6">
<label>
@lang('contactform::admin/content.email')
<input type="email" name="email" value="{{$page->module_settings->email or ""}}" />
</label>
<label> <label>
@lang('contactform::admin/content.phone') @lang('contactform::admin/content.phone')
<input type="tel" name="phone" value="{{$page->module_settings->phone or ""}}" /> <input type="tel" name="phone" value="{{$page->module_settings->phone or ""}}" />
</label> </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> <label>
@lang('contactform::admin/content.compName') @lang('contactform::admin/content.compName')
@@ -98,12 +92,23 @@
<textarea rows="3" name="address">{{$page->module_settings->address or ""}}</textarea> <textarea rows="3" name="address">{{$page->module_settings->address or ""}}</textarea>
</label> </label>
</div> </div>
<div class="column large-6">
<label>
@lang('contactform::admin/content.contactEmail')
<input type="email" name="contactEmail" value="{{$page->module_settings->contactEmail or \Auth::user()->email}}" />
</label>
<div class="row">
<div class="column large-6"> <div class="column large-6">
<label> <label>
@lang('contactform::admin/content.gpsLat') @lang('contactform::admin/content.gpsLat')
<input type="text" value="{{$page->module_settings->gpsLat or ""}}" name="gpsLat" /> <input type="text" value="{{$page->module_settings->gpsLat or ""}}" name="gpsLat" />
</label> </label>
</div>
<div class="column large-6">
<label> <label>
@lang('contactform::admin/content.gpsLng') @lang('contactform::admin/content.gpsLng')
@@ -111,3 +116,5 @@
</label> </label>
</div> </div>
</div> </div>
</div>
</div>