FEATURE: change directory structure

This commit is contained in:
Michal Kváček
2016-10-17 00:07:21 +02:00
parent 87f1920373
commit 2ded2924a1
242 changed files with 742 additions and 1171 deletions
+12 -12
View File
@@ -2,19 +2,19 @@
namespace App\Providers;
use App\Handlers\Registrators\MenuExtensionRegistrator;
use App\Handlers\Registrators\SearchEngineRegistrator;
use App\Handlers\Registrators\SettingsExtensionRegistrator;
use App\Handlers\Registrators\TemplateRegistrator;
use App\Handlers\Registrators\WidgetRegistrator;
use App\Handlers\Search\Content;
use App\Handlers\Search\Files;
use App\Handlers\Search\Presenters\AdminContent as AdminContentPresenter;
use App\Handlers\Search\Presenters\AdminFiles;
use App\CMS\Handlers\Registrators\MenuExtensionRegistrator;
use App\CMS\Handlers\Registrators\SearchEngineRegistrator;
use App\CMS\Handlers\Registrators\SettingsExtensionRegistrator;
use App\CMS\Handlers\Registrators\TemplateRegistrator;
use App\CMS\Handlers\Registrators\WidgetRegistrator;
use App\CMS\Handlers\Search\Content;
use App\CMS\Handlers\Search\Files;
use App\CMS\Handlers\Search\Presenters\AdminContent as AdminContentPresenter;
use App\CMS\Handlers\Search\Presenters\AdminFiles;
use App\Models\Template;
use App\Widgets\HtmlCode\HtmlCode;
use App\Widgets\Menu\Menu;
use App\Widgets\OrbitSlider\OrbitSlider;
use App\CMS\Widgets\HtmlCode\HtmlCode;
use App\CMS\Widgets\Menu\Menu;
use App\CMS\Widgets\OrbitSlider\OrbitSlider;
use Illuminate\Support\Facades\App;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\File;
+87
View File
@@ -0,0 +1,87 @@
<?php
namespace App\Providers;
use App\CMS\Shortcodes\Widget;
use Illuminate\Support\Facades\App;
use Illuminate\Support\Facades\Blade;
use Illuminate\Support\ServiceProvider;
use Webwizo\Shortcodes\Facades\Shortcode;
class BladeExtender extends ServiceProvider
{
/**
* Bootstrap the application services.
*
* @return void
*/
public function boot()
{
// ignore running from artisan
if (App::runningInConsole()) {
return;
}
view()->share('currentUrl', \Request::url());
$this->extendBlade();
Shortcode::register('widget', Widget::class);
}
/**
* Register the application services.
*
* @return void
*/
public function register()
{
}
/**
* Creates pattern for matching Blade directives
*
* @param $function
*
* @return string
*/
private function createPattern($function)
{
return '/(?<!\w)(\s*)@' . $function . '\(([^)]+)*\)/';
}
/**
* Create new Blade directives
*/
private function extendBlade()
{
// extend Blade "@extends" macro - with this macro allows to use "hierarchy" in templates
Blade::extend(function ($view) {
$pattern = $this->createPattern('extendVisitor');
$code = '@extends(\App\CMS\Helpers\Template::name($2))';
return preg_replace($pattern, $code, $view);
});
$macros = [
'upload' => 'echo \App\CMS\Helpers\Path::upload($2);',
'thumbnail' => 'echo \App\CMS\Helpers\Path::thumbnail($2);',
'gravatar' => 'echo \App\CMS\Helpers\Gravatar::img($2);',
'asset' => 'echo \App\CMS\Helpers\Path::asset($2);',
'date' => 'echo \App\CMS\Helpers\Date::date($2);',
'customDate' => 'echo \App\CMS\Helpers\Date::dateFormatted($2);',
'monthName' => 'echo \App\CMS\Helpers\Date::monthName($2);',
'widgetArea' => '\App\CMS\Helpers\WidgetAreas::render($2);',
'widgetPreview' => 'echo \App\CMS\Helpers\Widget::render($2)'
];
foreach ($macros as $macro => $code) {
Blade::extend(function ($view) use ($macro, $code) {
$pattern = $this->createPattern($macro);
$code = '<?php ' . $code . ' ?>';
return preg_replace($pattern, $code, $view);
});
}
}
}
+24 -24
View File
@@ -14,77 +14,77 @@ class EventServiceProvider extends ServiceProvider
*/
protected $listen = [
'App\Events\CreateNewUser' => [
'App\Listeners\LogCreatedUser',
'App\Listeners\Loggers\LogCreatedUser',
],
'App\Events\EditUser' => [
'App\Listeners\LogEditUser',
'App\Listeners\Loggers\LogEditUser',
],
'App\Events\CreateNewContent' => [
'App\Listeners\LogCreateNewContent'
'App\Listeners\Loggers\LogCreateNewContent'
],
'App\Events\EditContent' => [
'App\Listeners\LogEditContent'
'App\Listeners\Loggers\LogEditContent'
],
'App\Events\PublishContent' => [
'App\Listeners\LogPublishContent'
'App\Listeners\Loggers\LogPublishContent'
],
'App\Events\MakeDraftFromContent' => [
'App\Listeners\LogDraftFromContent'
'App\Listeners\Loggers\LogDraftFromContent'
],
'App\Events\SetHomepage' => [
'App\Listeners\LogSetHomepage'
'App\Listeners\Loggers\LogSetHomepage'
],
'App\Events\AttemptToEditInvalidContent' => [
'App\Listeners\LogAttemptToInvalidContentEdit'
'App\Listeners\Loggers\LogAttemptToInvalidContentEdit'
],
'App\Events\DeleteContent' => [
'App\Listeners\LogDeleteContent'
'App\Listeners\Loggers\LogDeleteContent'
],
'App\Events\CreateNewCustomField' => [
'App\Listeners\LogCreateCustomField',
'App\Listeners\Loggers\LogCreateCustomField',
],
'App\Events\EditCustomField' => [
'App\Listeners\LogEditCustomField',
'App\Listeners\Loggers\LogEditCustomField',
],
'App\Events\DeleteCustomField' => [
'App\Listeners\LogDeleteField',
'App\Listeners\Loggers\LogDeleteField',
],
'App\Events\ChangeSettings' => [
'App\Listeners\LogChangeSettings',
'App\Listeners\Loggers\LogChangeSettings',
],
'App\Events\UploadFile' => [
'App\Listeners\LogUploadFile'
'App\Listeners\Loggers\LogUploadFile'
],
'App\Events\EditFile' => [
'App\Listeners\LogEditFile'
'App\Listeners\Loggers\LogEditFile'
],
'App\Events\CreateNewWidgetArea' => [
'App\Listeners\LogNewWidgetArea'
'App\Listeners\Loggers\LogNewWidgetArea'
],
'App\Events\EditWidgetArea' => [
'App\Listeners\LogEditWidgetArea'
'App\Listeners\Loggers\LogEditWidgetArea'
],
'App\Events\DeleteWidgetArea' => [
'App\Listeners\LogDeleteWidgetArea'
'App\Listeners\Loggers\LogDeleteWidgetArea'
],
'App\Events\CreateNewWidget' => [
'App\Listeners\LogNewWidget'
'App\Listeners\Loggers\LogNewWidget'
],
'App\Events\EditWidget' => [
'App\Listeners\LogEditWidget'
'App\Listeners\Loggers\LogEditWidget'
],
'App\Events\AssignWidget' => [
'App\Listeners\LogAssignWidget'
'App\Listeners\Loggers\LogAssignWidget'
],
'App\Events\RemoveWidgetFromArea' => [
'App\Listeners\LogRemoveWidgetFromArea'
'App\Listeners\Loggers\LogRemoveWidgetFromArea'
],
// internal Laravel events - should work as auth.login and auth.logout, however it doesn't...
'Illuminate\Auth\Events\Login' => [
'App\Listeners\LogLogin'
'App\Listeners\Loggers\LogLogin'
],
'Illuminate\Auth\Events\Logout' => [
'App\Listeners\LogLogout'
'App\Listeners\Loggers\LogLogout'
],
];
-149
View File
@@ -1,149 +0,0 @@
<?php
namespace App\Providers;
use App\Models\Settings;
use App\Shortcodes\Widget;
use Illuminate\Support\Facades\App;
use Illuminate\Support\Facades\Blade;
use Illuminate\Support\ServiceProvider;
use Webwizo\Shortcodes\Facades\Shortcode;
class GlobalViewDataProvider extends ServiceProvider
{
/**
* Bootstrap the application services.
*
* @return void
*/
public function boot()
{
// ignore running from artisan
if (App::runningInConsole()) {
return;
}
view()->share('currentUrl', \Request::url());
$this->extendBlade();
Shortcode::register('widget', Widget::class);
}
/**
* Creates pattern for matching Blade directives
*
* @param $function
*
* @return string
*/
private function createPattern($function)
{
return '/(?<!\w)(\s*)@' . $function.'\(([^)]+)*\)/';
}
/**
* Register the application services.
*
* @return void
*/
public function register()
{
//
}
/**
* Create new Blade directives
*/
private function extendBlade()
{
// extend Blade "@extends" macro - with this macro allows to use "hierarchy" in templates
Blade::extend(function ($view) {
$pattern = $this->createPattern('extendVisitor');
$code = '@extends(\App\Helpers\Template::name($2))';
return preg_replace($pattern, $code, $view);
});
// shortcut for loading uploaded files
Blade::extend(function ($view) {
$pattern = $this->createPattern('upload');
$code = '<?php echo \App\Helpers\Template::upload($2); ?>';
return preg_replace($pattern, $code, $view);
});
// shortcut for loading thumbnails of uploaded images
Blade::extend(function ($view) {
$pattern = $this->createPattern('thumbnail');
$code = '<?php echo \App\Helpers\Template::thumbnail($2); ?>';
return preg_replace($pattern, $code, $view);
});
// shortcut for displaying Gravatar
Blade::extend(function ($view) {
$pattern = $this->createPattern('gravatar');
$code = '<?php echo \App\Helpers\Gravatar::img($2); ?>';
return preg_replace($pattern, $code, $view);
});
// shortcut for assets (placed in /public/assets/<theme>
Blade::extend(function ($view) {
$pattern = $this->createPattern('asset');
$code = '<?php echo \App\Helpers\Template::asset($2); ?>';
return preg_replace($pattern, $code, $view);
});
Blade::extend(function ($view) {
$pattern = $this->createPattern('date');
$code = '<?php echo \App\Helpers\Template::date($2); ?>';
return preg_replace($pattern, $code, $view);
});
Blade::extend(function ($view) {
$pattern = $this->createPattern('customDate');
$code = '<?php echo \App\Helpers\Date::dateFormatted($2); ?>';
return preg_replace($pattern, $code, $view);
});
Blade::extend(function ($view) {
$pattern = $this->createPattern('monthName');
$code = '<?php echo \App\Helpers\Date::monthName($2); ?>';
return preg_replace($pattern, $code, $view);
});
// register extension for rendering widget areas
Blade::extend(function ($view) {
$pattern = $this->createPattern('widgetArea');
return preg_replace($pattern, '<?php \App\Helpers\WidgetAreas::render($2); ?>', $view);
});
// register extension for preview of widget
Blade::extend(function ($view) {
$pattern = $this->createPattern('widgetPreview');
$code = '
<?php
if ($2 instanceof \App\Models\Widget) {
$handler = $2->widget_type_handler;
if (!is_object($2->settings))
$2->settings = json_decode($2->settings);
$presenter = call_user_func([$handler, "getPresenter"]);
echo call_user_func([$presenter, "render"], $2);
}
?>
';
return preg_replace($pattern, $code, $view);
});
}
}
-1
View File
@@ -60,6 +60,5 @@ class SubmodulesManager extends ServiceProvider
*/
public function register()
{
// TODO: Implement register() method.
}
}
+2 -2
View File
@@ -2,8 +2,8 @@
namespace App\Providers;
use App\Handlers\Registrators\TemplateRegistrator;
use App\Helpers\CurrentTemplate;
use App\CMS\Handlers\Registrators\TemplateRegistrator;
use App\CMS\Helpers\CurrentTemplate;
use App\Models\Template;
use Illuminate\Support\Facades\App;
use Illuminate\Support\ServiceProvider;