diff --git a/app/Handlers/Contracts/AppHandler.php b/app/CMS/Contracts/AppHandler.php
similarity index 97%
rename from app/Handlers/Contracts/AppHandler.php
rename to app/CMS/Contracts/AppHandler.php
index db209666..9e2573f0 100644
--- a/app/Handlers/Contracts/AppHandler.php
+++ b/app/CMS/Contracts/AppHandler.php
@@ -1,8 +1,8 @@
filename);
+ $url = Path::thumbnail($file->filename);
return '
';
break;
diff --git a/app/Helpers/Gravatar.php b/app/CMS/Helpers/Gravatar.php
similarity index 87%
rename from app/Helpers/Gravatar.php
rename to app/CMS/Helpers/Gravatar.php
index 7460cd9d..41edff07 100644
--- a/app/Helpers/Gravatar.php
+++ b/app/CMS/Helpers/Gravatar.php
@@ -1,5 +1,5 @@
exists($namespace . 'visitor.' . $prefix . $template)) {
- $view = $namespace . 'visitor.' . $prefix . $template;
- break;
- }
- }
-
- if (is_null($view)) {
- if ($throwExceptions) {
- throw new InvalidArgumentException('Cannot find template for ' . $namespace . $template);
- } else {
- return false;
- }
- }
-
- return $view;
- }
-
/**
* Get URL to uploaded file
*
@@ -95,25 +58,4 @@ class Template
return config('app.url') . '/assets/' . config('app.theme') . '/' . $path;
}
-
- /**
- * Print date in configured format
- *
- * @param $datestamp
- * @param bool $withTime
- *
- * @return false|string
- */
- public static function date($datestamp, $withTime = true)
- {
- $timestamp = strtotime($datestamp);
-
- if ($timestamp <= 0) {
- return '';
- }
-
- $format = $withTime ? config('app.datetime_format') : config('app.date_format');
-
- return date($format, $timestamp);
- }
}
\ No newline at end of file
diff --git a/app/Helpers/Settings.php b/app/CMS/Helpers/Settings.php
similarity index 96%
rename from app/Helpers/Settings.php
rename to app/CMS/Helpers/Settings.php
index 56499040..bb1097eb 100644
--- a/app/Helpers/Settings.php
+++ b/app/CMS/Helpers/Settings.php
@@ -1,6 +1,6 @@
exists($namespace . 'visitor.' . $prefix . $template)) {
+ $view = $namespace . 'visitor.' . $prefix . $template;
+ break;
+ }
+ }
+
+ if (is_null($view)) {
+ if ($throwExceptions) {
+ throw new InvalidArgumentException('Cannot find template for ' . $namespace . $template);
+ } else {
+ return false;
+ }
+ }
+
+ return $view;
+ }
+
+
+}
\ No newline at end of file
diff --git a/app/CMS/Helpers/Widget.php b/app/CMS/Helpers/Widget.php
new file mode 100644
index 00000000..aa075c82
--- /dev/null
+++ b/app/CMS/Helpers/Widget.php
@@ -0,0 +1,18 @@
+widget_type_handler;
+
+ if (!is_object($widget->settings)) {
+ $widget->settings = json_decode($widget->settings);
+ }
+
+ $presenter = call_user_func([$handler, 'getPresenter']);
+
+ return call_user_func([$presenter, 'render'], $widget);
+ }
+}
\ No newline at end of file
diff --git a/app/Helpers/WidgetAreas.php b/app/CMS/Helpers/WidgetAreas.php
similarity index 81%
rename from app/Helpers/WidgetAreas.php
rename to app/CMS/Helpers/WidgetAreas.php
index 25cf8942..6aa177b5 100644
--- a/app/Helpers/WidgetAreas.php
+++ b/app/CMS/Helpers/WidgetAreas.php
@@ -1,7 +1,7 @@
widget_area_code]))
self::$widgetAreas[$widget->widget_area_code] = '';
- $handler = $widget->widget_type_handler;
- $widget->settings = json_decode($widget->settings);
- $presenter = call_user_func([$handler, 'getPresenter']);
-
- self::$widgetAreas[$widget->widget_area_code] .= call_user_func([$presenter, 'render'], $widget);
+ self::$widgetAreas[$widget->widget_area_code] .= Widget::render($widget);
}
}
diff --git a/app/Helpers/functions.php b/app/CMS/Helpers/functions.php
similarity index 81%
rename from app/Helpers/functions.php
rename to app/CMS/Helpers/functions.php
index 8a163000..c7b4002e 100644
--- a/app/Helpers/functions.php
+++ b/app/CMS/Helpers/functions.php
@@ -14,7 +14,7 @@ function e($value)
}
/**
- * Shortcut for \App\Helpers\Settings::get()
+ * Shortcut for \App\CMS\Helpers\Settings::get()
*
* @param $key
* @param null $default
@@ -22,7 +22,7 @@ function e($value)
* @return null|string
*/
function setting($key, $default = null) {
- return \App\Helpers\Settings::get($key, $default);
+ return \App\CMS\Helpers\Settings::get($key, $default);
}
function asset_path($path) {
diff --git a/app/MenuPresenters/FoundationDrilldownMenuPresenter.php b/app/CMS/MenuPresenters/FoundationDrilldownMenuPresenter.php
similarity index 98%
rename from app/MenuPresenters/FoundationDrilldownMenuPresenter.php
rename to app/CMS/MenuPresenters/FoundationDrilldownMenuPresenter.php
index 17c2286b..64d027df 100644
--- a/app/MenuPresenters/FoundationDrilldownMenuPresenter.php
+++ b/app/CMS/MenuPresenters/FoundationDrilldownMenuPresenter.php
@@ -1,5 +1,5 @@
settings) || empty($data->settings) || !json_decode($data->settings)) {
throw new MissingParameterException('settings');
diff --git a/app/Widgets/Menu/Presenters/Menu.php b/app/CMS/Widgets/Menu/Presenters/Menu.php
similarity index 82%
rename from app/Widgets/Menu/Presenters/Menu.php
rename to app/CMS/Widgets/Menu/Presenters/Menu.php
index d2edc8e8..b10e8858 100644
--- a/app/Widgets/Menu/Presenters/Menu.php
+++ b/app/CMS/Widgets/Menu/Presenters/Menu.php
@@ -1,13 +1,12 @@
container_class . '"';
- if ($widget->container_id)
- $code .= ' id="'.e($widget->container_id).'"';
+ if ($widget->container_id) {
+ $code .= ' id="' . e($widget->container_id) . '"';
+ }
$code .= '>';
@@ -108,8 +108,6 @@ class Menu implements WidgetRenderer
*/
public static function renderEditForm(Widget $widget)
{
- // $extensions = App::make('registerMenuExtension')
- // ->get();
$content = new Content();
// get list of all pages
@@ -117,11 +115,10 @@ class Menu implements WidgetRenderer
->get();
// make object from JSON
- $widget->settingsObj = json_decode($widget->settings);
- if (!isset($widget->settingsObj->links)) {
+ if (!isset($widget->settings->links)) {
$links = new \stdClass();
} else {
- $links = (array)$widget->settingsObj->links;
+ $links = (array)$widget->settings->links;
}
// sort links using "order"
@@ -129,7 +126,7 @@ class Menu implements WidgetRenderer
return $a->order - $b->order;
});
- $widget->settingsObj->links = (object)$links;
+ $widget->settings->links = (object)$links;
return view('admin.widgets.menu.edit', ['widget' => $widget, 'pages' => $pages]);
}
diff --git a/app/Console/Commands/ChangePassword.php b/app/Console/Commands/ChangePassword.php
index e7a5ff21..a97e8f91 100644
--- a/app/Console/Commands/ChangePassword.php
+++ b/app/Console/Commands/ChangePassword.php
@@ -14,13 +14,13 @@ class ChangePassword extends Command
*
* @var string
*/
- protected $signature = 'user:change-password {userID} {newPassword}';
+ protected $signature = 'user:change-password {email}';
/**
* The console command description.
*
* @var string
*/
- protected $description = 'Change password for user with given ID';
+ protected $description = 'Change password for user with given e-mail';
/**
* Execute the console command.
@@ -29,18 +29,26 @@ class ChangePassword extends Command
*/
public function handle()
{
- $id = $this->argument('userID');
- $newPassword = $this->argument('newPassword');
-
+ $email = $this->argument('email');
try {
- $user = User::findOrFail($id);
+ $user = User::where(['email' => $email])
+ ->first();
} catch (ModelNotFoundException $e) {
- $this->error('Invalid user ID ' . $id . '. Please see table `users` for correct IDs.');
- exit(1);
+ $this->error('Invalid user ' . $email . '.');
+ return;
}
+ do {
+ $password = $this->secret('Password');
+ $passwordAgain = $this->secret('Password again');
+
+ if ($password !== $passwordAgain) {
+ $this->error('Passwords does not match');
+ }
+ } while ($passwordAgain !== $password || strlen($password) === 0);
+
// set new password
- $user->password = Hash::make($newPassword);
+ $user->password = Hash::make($password);
$user->save();
$this->info('Password successfully changed.');
diff --git a/app/Console/Commands/NewUser.php b/app/Console/Commands/NewUser.php
index eb869777..f700d9fe 100644
--- a/app/Console/Commands/NewUser.php
+++ b/app/Console/Commands/NewUser.php
@@ -2,11 +2,10 @@
namespace App\Console\Commands;
-use App\Enumerations\UserRoles;
+use App\CMS\Enumerations\UserRoles;
use App\Models\User;
use Illuminate\Console\Command;
use Illuminate\Support\Facades\Hash;
-use Symfony\Component\Console\Exception\InvalidArgumentException;
class NewUser extends Command
{
@@ -15,7 +14,7 @@ class NewUser extends Command
*
* @var string
*/
- protected $signature = 'user:new {email} {password} {role}';
+ protected $signature = 'user:new {email}';
/**
* The console command description.
*
@@ -25,21 +24,38 @@ class NewUser extends Command
/**
* Execute the console command.
- *
- * @return mixed
*/
public function handle()
{
$email = $this->argument('email');
- $password = $this->argument('password');
- $role = $this->argument('role');
- // check if given role is valid
- $roles = UserRoles::getSimple();
- if (!in_array($role, $roles)) {
- throw new InvalidArgumentException('Invalid role specified. valid roles are: ' . implode(', ', $roles));
+ // check if username is really email
+ if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
+ $this->error($email . ' is not a valid e-mail!');
+ return;
}
+ // ask for password
+ do {
+ $password = $this->secret('Password');
+ $passwordAgain = $this->secret('Password again');
+
+ if ($password !== $passwordAgain) {
+ $this->error('Passwords does not match');
+ }
+ } while ($passwordAgain !== $password || strlen($password) === 0);
+
+ // ask for role
+ $roles = UserRoles::getSimple();
+ do {
+ $role = $this->ask('Role (default ' . User::ROLE_ADMIN . '): ', User::ROLE_ADMIN);
+
+ // check if given role is valid
+ if (!in_array($role, $roles)) {
+ $this->error('Invalid role specified. valid roles are: ' . implode(', ', $roles));
+ }
+ } while (!in_array($role, $roles));
+
// create new user
$user = new User();
$user->username = $user->email = $email;
diff --git a/app/CustomFields/BaseField.php b/app/CustomFields/BaseField.php
deleted file mode 100644
index e1900d8e..00000000
--- a/app/CustomFields/BaseField.php
+++ /dev/null
@@ -1,6 +0,0 @@
- $directory,
'subdirectories' => $directory->subdirectories($includeHidden),
- 'files' => $files->get()
+ 'files' => $files->get(),
+ 'newDirectory' => new Directory()
]);
}
}
diff --git a/app/Http/Controllers/Admin/Login.php b/app/Http/Controllers/Admin/Login.php
index 3eda829b..524cd8f9 100644
--- a/app/Http/Controllers/Admin/Login.php
+++ b/app/Http/Controllers/Admin/Login.php
@@ -2,7 +2,6 @@
namespace App\Http\Controllers\Admin;
-use App\Http\Controllers\Controller;
use App\Http\Requests\LoginRequest;
use App\Models\User;
use Illuminate\Support\Facades\Auth;
diff --git a/app/Http/Controllers/Admin/Search.php b/app/Http/Controllers/Admin/Search.php
index e23d9ab7..1d93c14f 100644
--- a/app/Http/Controllers/Admin/Search.php
+++ b/app/Http/Controllers/Admin/Search.php
@@ -2,11 +2,9 @@
namespace App\Http\Controllers\Admin;
-use App\Handlers\Contracts\SearchHandler;
-use App\Handlers\Contracts\SearchPresenterHandler;
-use App\Handlers\Registrators\SearchEngineRegistrator;
-use App\Http\Controllers\Controller;
-use App\Http\Requests;
+use App\CMS\Handlers\Contracts\SearchHandler;
+use App\CMS\Handlers\Contracts\SearchPresenterHandler;
+use App\CMS\Handlers\Registrators\SearchEngineRegistrator;
use Illuminate\Support\Facades\App;
use Illuminate\Support\Facades\Input;
use Symfony\Component\Process\Exception\InvalidArgumentException;
diff --git a/app/Http/Controllers/Admin/Settings.php b/app/Http/Controllers/Admin/Settings.php
index c677306e..a2c87b2d 100644
--- a/app/Http/Controllers/Admin/Settings.php
+++ b/app/Http/Controllers/Admin/Settings.php
@@ -2,7 +2,6 @@
namespace App\Http\Controllers\Admin;
-use App\Http\Controllers\Controller;
use App\Http\Requests;
use App\Models\Settings as SettingsModel;
use Illuminate\Support\Facades\App;
diff --git a/app/Http/Controllers/Admin/Users/CreateNewUser.php b/app/Http/Controllers/Admin/Users/CreateNewUser.php
index eb699331..863e5fe0 100644
--- a/app/Http/Controllers/Admin/Users/CreateNewUser.php
+++ b/app/Http/Controllers/Admin/Users/CreateNewUser.php
@@ -2,7 +2,7 @@
namespace App\Http\Controllers\Admin\Users;
-use App\Enumerations\UserRoles;
+use App\CMS\Enumerations\UserRoles;
use App\Events\CreateNewUser as CreateNewUserEvent;
use App\Http\Controllers\Admin\Controller;
use App\Http\Requests\CreateNewUserRequest;
diff --git a/app/Http/Controllers/Admin/Users/EditUser.php b/app/Http/Controllers/Admin/Users/EditUser.php
index c64521f6..1b77f3a8 100644
--- a/app/Http/Controllers/Admin/Users/EditUser.php
+++ b/app/Http/Controllers/Admin/Users/EditUser.php
@@ -2,8 +2,8 @@
namespace App\Http\Controllers\Admin\Users;
-use App\Enumerations\UserRoles;
-use App\Enumerations\UserStates;
+use App\CMS\Enumerations\UserRoles;
+use App\CMS\Enumerations\UserStates;
use App\Events\EditUser as EditUserEvent;
use App\Http\Controllers\Admin\Controller;
use App\Http\Requests\EditUserRequest;
diff --git a/app/Http/Controllers/Admin/Users/UserDetail.php b/app/Http/Controllers/Admin/Users/UserDetail.php
index 60e78ebc..70825a5b 100644
--- a/app/Http/Controllers/Admin/Users/UserDetail.php
+++ b/app/Http/Controllers/Admin/Users/UserDetail.php
@@ -2,11 +2,11 @@
namespace App\Http\Controllers\Admin\Users;
-use App\Enumerations\UserRoles;
-use App\Enumerations\UserStates;
+use App\CMS\Enumerations\UserRoles;
+use App\CMS\Enumerations\UserStates;
use App\Http\Controllers\Admin\Controller;
use App\Http\Requests;
-use App\Models\ActionLog;
+use App\Models\ActionLog\ActionLog;
use App\Models\User;
use Illuminate\Support\Facades\Auth;
diff --git a/app/Http/Controllers/Admin/Users/UsersOverview.php b/app/Http/Controllers/Admin/Users/UsersOverview.php
index 86bf137d..4a9870fe 100644
--- a/app/Http/Controllers/Admin/Users/UsersOverview.php
+++ b/app/Http/Controllers/Admin/Users/UsersOverview.php
@@ -2,8 +2,8 @@
namespace App\Http\Controllers\Admin\Users;
-use App\Enumerations\UserRoles;
-use App\Enumerations\UserStates;
+use App\CMS\Enumerations\UserRoles;
+use App\CMS\Enumerations\UserStates;
use App\Http\Controllers\Admin\Controller;
use App\Models\User;
diff --git a/app/Http/Controllers/Admin/Widgets/Areas/EditWidgetArea.php b/app/Http/Controllers/Admin/Widgets/Areas/EditWidgetArea.php
index 48bbb523..788957f1 100644
--- a/app/Http/Controllers/Admin/Widgets/Areas/EditWidgetArea.php
+++ b/app/Http/Controllers/Admin/Widgets/Areas/EditWidgetArea.php
@@ -4,7 +4,7 @@ namespace App\Http\Controllers\Admin\Widgets\Areas;
use App\Http\Controllers\Admin\Controller;
use App\Http\Requests\EditWidgetAreaRequest;
-use App\Models\Widget;
+use App\Models\Widgets\Widget;
use App\Models\WidgetArea;
use App\Models\WidgetInWidgetArea;
use Illuminate\Database\Eloquent\ModelNotFoundException;
diff --git a/app/Http/Controllers/Admin/Widgets/AssociateWidget.php b/app/Http/Controllers/Admin/Widgets/AssociateWidget.php
index 80a8531b..2723002b 100644
--- a/app/Http/Controllers/Admin/Widgets/AssociateWidget.php
+++ b/app/Http/Controllers/Admin/Widgets/AssociateWidget.php
@@ -5,7 +5,7 @@ namespace App\Http\Controllers\Admin\Widgets;
use App\Events\AssignWidget;
use App\Events\RemoveWidgetFromArea;
use App\Http\Controllers\Admin\Controller;
-use App\Models\Widget;
+use App\Models\Widgets\Widget;
use App\Models\WidgetArea;
use App\Models\WidgetInWidgetArea;
use Illuminate\Database\QueryException;
diff --git a/app/Http/Controllers/Admin/Widgets/CreateNewWidget.php b/app/Http/Controllers/Admin/Widgets/CreateNewWidget.php
index 39443084..628ac738 100644
--- a/app/Http/Controllers/Admin/Widgets/CreateNewWidget.php
+++ b/app/Http/Controllers/Admin/Widgets/CreateNewWidget.php
@@ -4,9 +4,9 @@ namespace App\Http\Controllers\Admin\Widgets;
use App\Http\Controllers\Admin\Controller;
use App\Http\Requests\NewWidgetRequest;
-use App\Models\Widget;
-use App\Models\WidgetType;
-use App\Widgets\Exceptions\MissingParameterException;
+use App\Models\Widgets\Widget;
+use App\Models\Widgets\WidgetType;
+use App\CMS\Widgets\Exceptions\MissingParameterException;
class CreateNewWidget extends Controller
{
diff --git a/app/Http/Controllers/Admin/Widgets/EditWidget.php b/app/Http/Controllers/Admin/Widgets/EditWidget.php
index 2e991d97..51271736 100644
--- a/app/Http/Controllers/Admin/Widgets/EditWidget.php
+++ b/app/Http/Controllers/Admin/Widgets/EditWidget.php
@@ -3,8 +3,8 @@ namespace App\Http\Controllers\Admin\Widgets;
use App\Http\Controllers\Admin\Controller;
use App\Http\Requests\EditWidgetRequest;
-use App\Models\Widget;
-use App\Widgets\Exceptions\MissingParameterException;
+use App\Models\Widgets\Widget;
+use App\CMS\Widgets\Exceptions\MissingParameterException;
use Illuminate\Support\Facades\Event;
class EditWidget extends Controller
diff --git a/app/Http/Controllers/Admin/Widgets/WidgetsOverview.php b/app/Http/Controllers/Admin/Widgets/WidgetsOverview.php
index 4dc6ba1d..4f95be2c 100644
--- a/app/Http/Controllers/Admin/Widgets/WidgetsOverview.php
+++ b/app/Http/Controllers/Admin/Widgets/WidgetsOverview.php
@@ -2,7 +2,7 @@
namespace App\Http\Controllers\Admin\Widgets;
use App\Http\Controllers\Admin\Controller;
-use App\Models\Widget;
+use App\Models\Widgets\Widget;
use Mcamara\LaravelLocalization\Facades\LaravelLocalization;
class WidgetsOverview extends Controller
diff --git a/app/Http/Controllers/Controller.php b/app/Http/Controllers/Controller.php
index b041ba0c..0610b67d 100644
--- a/app/Http/Controllers/Controller.php
+++ b/app/Http/Controllers/Controller.php
@@ -2,7 +2,7 @@
namespace App\Http\Controllers;
-use App\Helpers\Template;
+use App\CMS\Helpers\Template;
use Illuminate\Foundation\Auth\Access\AuthorizesRequests;
use Illuminate\Foundation\Bus\DispatchesJobs;
use Illuminate\Foundation\Validation\ValidatesRequests;
diff --git a/app/Http/Controllers/Sitemap.php b/app/Http/Controllers/Sitemap.php
index a72e248e..8d42930d 100644
--- a/app/Http/Controllers/Sitemap.php
+++ b/app/Http/Controllers/Sitemap.php
@@ -3,7 +3,7 @@
namespace App\Http\Controllers;
use App\Http\Requests;
-use App\Models\Content;
+use App\Models\Content\Content;
class Sitemap extends Controller
{
diff --git a/app/Http/Controllers/Visitor/ContentPage.php b/app/Http/Controllers/Visitor/ContentPage.php
index a4e4f3fb..18eea090 100644
--- a/app/Http/Controllers/Visitor/ContentPage.php
+++ b/app/Http/Controllers/Visitor/ContentPage.php
@@ -2,9 +2,9 @@
namespace App\Http\Controllers\Visitor;
-use App\Helpers\PageRenderer;
+use App\CMS\Helpers\PageRenderer;
use App\Http\Controllers\Controller;
-use App\Models\Content;
+use App\Models\Content\Content;
use Illuminate\Support\Facades\Auth;
class ContentPage extends Controller
diff --git a/app/Http/Middleware/AdminMenuRegistrator.php b/app/Http/Middleware/AdminMenuRegistrator.php
index 88d9549d..ca591767 100644
--- a/app/Http/Middleware/AdminMenuRegistrator.php
+++ b/app/Http/Middleware/AdminMenuRegistrator.php
@@ -2,7 +2,7 @@
namespace App\Http\Middleware;
-use App\Handlers\Handler;
+use App\CMS\Handlers\Handler;
use App\Models\Module;
use Closure;
use Illuminate\Support\Facades\Log;
diff --git a/app/Http/Middleware/TemplatePathInstaller.php b/app/Http/Middleware/TemplatePathInstaller.php
index f06d1446..d1c23267 100644
--- a/app/Http/Middleware/TemplatePathInstaller.php
+++ b/app/Http/Middleware/TemplatePathInstaller.php
@@ -2,7 +2,7 @@
namespace App\Http\Middleware;
-use App\Handlers\Registrators\TemplateRegistrator;
+use App\CMS\Handlers\Registrators\TemplateRegistrator;
use Closure;
use Illuminate\Support\Facades\App;
diff --git a/app/Http/Middleware/WidgetInstaller.php b/app/Http/Middleware/WidgetInstaller.php
index 883819f3..06eae5c3 100644
--- a/app/Http/Middleware/WidgetInstaller.php
+++ b/app/Http/Middleware/WidgetInstaller.php
@@ -2,7 +2,7 @@
namespace App\Http\Middleware;
-use App\Handlers\Registrators\WidgetRegistrator;
+use App\CMS\Handlers\Registrators\WidgetRegistrator;
use Closure;
use Illuminate\Support\Facades\App;
diff --git a/app/Http/Requests/EditContentRequest.php b/app/Http/Requests/EditContentRequest.php
index 040fac90..89211305 100644
--- a/app/Http/Requests/EditContentRequest.php
+++ b/app/Http/Requests/EditContentRequest.php
@@ -2,7 +2,7 @@
namespace App\Http\Requests;
-use App\Enumerations\ContentStatuses;
+use App\CMS\Enumerations\ContentStatuses;
class EditContentRequest extends Request
{
diff --git a/app/Http/routes.php b/app/Http/routes.php
index 4d9c385d..9edfdf89 100644
--- a/app/Http/routes.php
+++ b/app/Http/routes.php
@@ -11,9 +11,7 @@ Route::pattern('url', '[0-9\-a-z]+');
/*******************************************************************************/
-Route::group([
- 'prefix' => LaravelLocalization::setLocale(),
- ], function () {
+Route::group(['prefix' => LaravelLocalization::setLocale()], function () {
/**
* This route group serves to handle request in admin
*/
diff --git a/app/Listeners/LogAssignWidget.php b/app/Listeners/Loggers/LogAssignWidget.php
similarity index 95%
rename from app/Listeners/LogAssignWidget.php
rename to app/Listeners/Loggers/LogAssignWidget.php
index 4b6bc870..5357570c 100644
--- a/app/Listeners/LogAssignWidget.php
+++ b/app/Listeners/Loggers/LogAssignWidget.php
@@ -1,6 +1,6 @@
hasMany('App\Models\ContentHistory');
+ return $this->hasMany(\App\Models\Content\ContentHistory::class);
}
/**
@@ -416,7 +419,7 @@ class Content extends Model
*/
public function author()
{
- return $this->belongsTo('App\Models\User', 'user_id');
+ return $this->belongsTo(User::class, 'user_id');
}
/**
diff --git a/app/Models/ContentHasFile.php b/app/Models/Content/ContentHasFile.php
similarity index 88%
rename from app/Models/ContentHasFile.php
rename to app/Models/Content/ContentHasFile.php
index 91921889..351b80c4 100644
--- a/app/Models/ContentHasFile.php
+++ b/app/Models/Content/ContentHasFile.php
@@ -1,6 +1,6 @@
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 '/(?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 = '';
+
+ return preg_replace($pattern, $code, $view);
+ });
+ }
+ }
+}
diff --git a/app/Providers/EventServiceProvider.php b/app/Providers/EventServiceProvider.php
index 145fe675..f239c909 100644
--- a/app/Providers/EventServiceProvider.php
+++ b/app/Providers/EventServiceProvider.php
@@ -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'
],
];
diff --git a/app/Providers/GlobalViewDataProvider.php b/app/Providers/GlobalViewDataProvider.php
deleted file mode 100644
index dc5a7654..00000000
--- a/app/Providers/GlobalViewDataProvider.php
+++ /dev/null
@@ -1,149 +0,0 @@
-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 '/(?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 = '';
-
- return preg_replace($pattern, $code, $view);
- });
-
- // shortcut for loading thumbnails of uploaded images
- Blade::extend(function ($view) {
- $pattern = $this->createPattern('thumbnail');
- $code = '';
-
- return preg_replace($pattern, $code, $view);
- });
-
- // shortcut for displaying Gravatar
- Blade::extend(function ($view) {
- $pattern = $this->createPattern('gravatar');
- $code = '';
-
- return preg_replace($pattern, $code, $view);
- });
-
- // shortcut for assets (placed in /public/assets/
- Blade::extend(function ($view) {
- $pattern = $this->createPattern('asset');
- $code = '';
-
- return preg_replace($pattern, $code, $view);
- });
-
- Blade::extend(function ($view) {
- $pattern = $this->createPattern('date');
- $code = '';
-
- return preg_replace($pattern, $code, $view);
- });
-
- Blade::extend(function ($view) {
- $pattern = $this->createPattern('customDate');
- $code = '';
-
- return preg_replace($pattern, $code, $view);
- });
-
- Blade::extend(function ($view) {
- $pattern = $this->createPattern('monthName');
- $code = '';
-
- return preg_replace($pattern, $code, $view);
- });
-
-
- // register extension for rendering widget areas
- Blade::extend(function ($view) {
- $pattern = $this->createPattern('widgetArea');
-
- return preg_replace($pattern, '', $view);
- });
-
- // register extension for preview of widget
- Blade::extend(function ($view) {
- $pattern = $this->createPattern('widgetPreview');
- $code = '
- 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);
- });
- }
-}
diff --git a/app/Providers/SubmodulesManager.php b/app/Providers/SubmodulesManager.php
index 48907798..e1f82ca5 100644
--- a/app/Providers/SubmodulesManager.php
+++ b/app/Providers/SubmodulesManager.php
@@ -60,6 +60,5 @@ class SubmodulesManager extends ServiceProvider
*/
public function register()
{
- // TODO: Implement register() method.
}
}
\ No newline at end of file
diff --git a/app/Providers/TemplateServiceProvider.php b/app/Providers/TemplateServiceProvider.php
index c9511a2f..d090626c 100644
--- a/app/Providers/TemplateServiceProvider.php
+++ b/app/Providers/TemplateServiceProvider.php
@@ -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;
diff --git a/app/Widgets/HtmlCode/Presenters/CreateNewCode.php b/app/Widgets/HtmlCode/Presenters/CreateNewCode.php
deleted file mode 100644
index e69de29b..00000000
diff --git a/app/Widgets/HtmlCode/Presenters/EditCode.php b/app/Widgets/HtmlCode/Presenters/EditCode.php
deleted file mode 100644
index e69de29b..00000000
diff --git a/app/Widgets/NonInstallableWidget.php b/app/Widgets/NonInstallableWidget.php
deleted file mode 100644
index 0c568849..00000000
--- a/app/Widgets/NonInstallableWidget.php
+++ /dev/null
@@ -1,15 +0,0 @@
-where('parent_id', $parentDirectoryId);
-
- // if widget has some directory set, we are performing edit
- if ($directoryId) {
- $exists = $exists->where('id', '!=', $directoryId);
- }
-
- if ($exists->exists()) {
- throw new WidgetExistsException($name);
- }
- }
-
- /**
- * @param Widget $widget
- * @param \stdClass $data
- *
- * @throws WidgetExistsException
- *
- * @return Widget
- */
- public static function save(Widget $widget, \stdClass $data)
- {
- $settings = json_decode($widget->settings);
- $parentDirectoryId = Storage::get(self::CONFIG_FILENAME);
- $directoryId = isset($settings->directoryId) ? $settings->directoryId : null;
-
- if (!isset($data->useExistingDirectory)) {
- // check if name with same name does not exists yet
- self::checkIfDirectoryExists($data->name, $directoryId, $parentDirectoryId);
-
- // setup some information about directory
- $directory = $directoryId ? Directory::find($directoryId) : new Directory;
-
- // setup some info when creating new directory
- if (!$directoryId) {
- $directory->user_id = Auth::user()->id;
- $directory->parent_id = $parentDirectoryId;
- }
-
- // common info both for edit and creation
- $directory->name = $data->name;
- $directory->description = $data->description;
-
- // save into database
- $directory->save();
-
- $directoryId = $directory->id;
- } else {
- $directoryId = $data->directoryId;
- }
-
- $settings = [
- 'directoryId' => $directoryId,
- 'imagePerSlide' => isset($data->imagePerSlide) ? $data->imagePerSlide : 4,
- 'displayBullets' => isset($data->displayBullets),
- 'sliderClass' => isset($data->containerClass) ? $data->containerClass : '',
- 'slideContainerClass' => isset($data->slideContainerClass) ? $data->slideContainerClass : '',
- 'code' => isset($data->code) ? $data->code : ''
- ];
-
- self::checkSettings($settings);
-
- $widget->settings = json_encode($settings);;
-
- return $widget;
- }
-
- /**
- * Method for populating settings array with default values
- *
- * @param $settings
- */
- public static function checkSettings(&$settings)
- {
- if (!is_object($settings)) {
- $settings = (object)$settings;
- }
-
- if (!isset($settings->slideContainerClass)) {
- $settings->slideContainerClass = '';
- }
-
- if (!isset($settings->displayBullets)) {
- $settings->displayBullets = true;
- }
-
- if (!isset($settings->imagePerSlide)) {
- $settings->imagePerSlide = 4;
- }
-
- if (!isset($settings->directoryId)) {
- $settings->directoryId = false;
- }
- if (!isset($settings->sliderClass)) {
- $settings->sliderClass = '';
- }
- if (!isset($settings->code)) {
- $settings->code = '';
- }
- }
-
- /**
- * Getter for presenter/renderer of this widget
- *
- * @return WidgetRenderer
- */
- public static function getPresenter()
- {
- return Presenters\OrbitSlider::class;
- }
-
- /**
- * Function for installing given widget
- *
- * @return mixed
- */
- public static function install()
- {
- $directory = Directory::where('name', self::DIRECTORY_NAME)
- ->first();
-
- if (!count($directory)) {
- $directory = Directory::create([
- 'name' => self::DIRECTORY_NAME,
- 'hidden' => true
- ]);
- }
-
- Storage::put(self::CONFIG_FILENAME, $directory->id);
- }
-
- /**
- * Function for uninstalling widget
- */
- public static function uninstall()
- {
- // TODO: Implement uninstall() method.
- }
-}
\ No newline at end of file
diff --git a/app/Widgets/OrbitSlider/Presenters/OrbitSlider.php b/app/Widgets/OrbitSlider/Presenters/OrbitSlider.php
deleted file mode 100644
index 34d580cb..00000000
--- a/app/Widgets/OrbitSlider/Presenters/OrbitSlider.php
+++ /dev/null
@@ -1,99 +0,0 @@
- trans('widgets/orbitSlider.fullscreen'),
- 1 => '1',
- 2 => '2',
- 3 => '3',
- 4 => '4',
- 6 => '6',
- 12 => '12',
- ];
- }
-
- /**
- * Method used for displaying widget.
- *
- * This method renders some HTML code for displaying.
- *
- * @param Widget $widget
- *
- * @return mixed
- */
- public static function render(Widget $widget)
- {
- $settings = $widget->settings;
- $directoryId = $settings->directoryId;
-
- $images = File::where('directory_id', $directoryId)
- ->where('mime_type', 'LIKE', 'image%')
- ->get();
-
- // add some non-existing values
- \App\Widgets\OrbitSlider\OrbitSlider::checkSettings($settings);
-
- $slidesCount = ($settings->imagePerSlide == 'fullscreen') ? count($images) : ceil(count($images) / $settings->imagePerSlide);
- $htmlGridNumber = ($settings->imagePerSlide == 'fullscreen') ? false : 12 / $settings->imagePerSlide;
-
- return view('widgets.orbitSlider.element', [
- 'images' => $images,
- 'settings' => $settings,
- 'slidesCount' => $slidesCount,
- 'gridNumber' => $htmlGridNumber
- ]);
- }
-
- /**
- * Display form for creating new instance of widget
- *
- * @param WidgetType $type
- *
- * @return mixed
- */
- public static function renderAddForm(WidgetType $type)
- {
- $widget = new Widget();
-
- // create default object with settings
- $settings = new \stdClass();
- \App\Widgets\OrbitSlider\OrbitSlider::checkSettings($settings);
-
- return view('admin.widgets.orbitSlider.new', [
- 'type' => $type,
- 'widget' => $widget,
- 'settings' => $settings,
- 'availableColumns' => self::getAvailableColumns()
- ]);
- }
-
- /**
- * Display form for editing already existing widget
- *
- * @param Widget $widget
- *
- * @return mixed
- */
- public static function renderEditForm(Widget $widget)
- {
- $settings = json_decode($widget->settings);
-
- // create default object with settings
- \App\Widgets\OrbitSlider\OrbitSlider::checkSettings($settings);
-
- return view('admin.widgets.orbitSlider.edit', [
- 'widget' => $widget,
- 'settings' => $settings,
- 'availableColumns' => self::getAvailableColumns()
- ]);
- }
-}
\ No newline at end of file
diff --git a/app/Widgets/Widget.php b/app/Widgets/Widget.php
deleted file mode 100644
index c5186d69..00000000
--- a/app/Widgets/Widget.php
+++ /dev/null
@@ -1,8 +0,0 @@
- env('APP_LOG', 'single'),
+ 'log' => env('APP_LOG', 'daily'),
/*
|--------------------------------------------------------------------------
| Autoloaded Service Providers
@@ -170,7 +170,7 @@ return [
App\Providers\AuthServiceProvider::class,
App\Providers\EventServiceProvider::class,
App\Providers\RouteServiceProvider::class,
- App\Providers\GlobalViewDataProvider::class,
+ App\Providers\BladeExtender::class,
\App\Providers\TemplateServiceProvider::class,
],
diff --git a/config/compile.php b/config/compile.php
index 04807eac..bdd9025e 100644
--- a/config/compile.php
+++ b/config/compile.php
@@ -14,7 +14,25 @@ return [
*/
'files' => [
- //
+ 'app/CMS/Helpers/CurrentTemplate.php',
+ 'app/CMS/Helpers/PageRenderer.php',
+ 'app/CMS/Helpers/Path.php',
+ 'app/CMS/Helpers/Settings.php',
+ 'app/CMS/Helpers/Template.php',
+ 'app/CMS/Handlers/Handler.php',
+ 'app/CMS/Shortcodes/Widget.php',
+ 'app/Providers/BladeExtender.php',
+ 'app/Providers/ModuleManager.php',
+ 'app/Providers/SubmodulesManager.php',
+ 'app/Providers/TemplateServiceProvider.php',
+ 'app/Providers/AppServiceProvider.php',
+ 'app/Providers/AuthServiceProvider.php',
+ 'app/Providers/LaravelLocalizationServiceProvider.php',
+ 'app/Providers/ModuleServiceProvider.php',
+ 'app/Http/Controllers/Controller.php',
+ 'app/CMS/Helpers/Date.php',
+ 'app/CMS/Enumerations/BaseEnumeration.php',
+ 'app/Models/Content/Content.php',
],
/*
@@ -28,8 +46,7 @@ return [
|
*/
- 'providers' => [
- //
+ 'providers' => [//
],
];
diff --git a/config/menus.php b/config/menus.php
index 167122b3..0fc4ae4c 100644
--- a/config/menus.php
+++ b/config/menus.php
@@ -9,11 +9,11 @@ return [
'nav-tab' => 'Pingpong\Menus\Presenters\Bootstrap\NavTabPresenter',
'sidebar' => 'Pingpong\Menus\Presenters\Bootstrap\SidebarMenuPresenter',
'navmenu' => 'Pingpong\Menus\Presenters\Bootstrap\NavMenuPresenter',
- 'foundation-drilldown' => 'App\MenuPresenters\FoundationDrilldownMenuPresenter',
- 'foundation-dropdown' => 'App\MenuPresenters\FoundationDropdownMenuPresenter',
- 'foundation-dropdown-initialized' => 'App\MenuPresenters\FoundationInitializedDropdownMenuPresenter',
- 'metismenu' => 'App\MenuPresenters\MetismenuPresenter',
- 'profile-menu' => 'App\MenuPresenters\ProfileMenuPresenter',
+ 'foundation-drilldown' => App\CMS\MenuPresenters\FoundationDrilldownMenuPresenter::class,
+ 'foundation-dropdown' => App\CMS\MenuPresenters\FoundationDropdownMenuPresenter::class,
+ 'foundation-dropdown-initialized' => App\CMS\MenuPresenters\FoundationInitializedDropdownMenuPresenter::class,
+ 'metismenu' => App\CMS\MenuPresenters\MetismenuPresenter::class,
+ 'profile-menu' => App\CMS\MenuPresenters\ProfileMenuPresenter::class,
],
'ordering' => true,
diff --git a/database/migrations/2016_10_16_204959_MigrateWidgetHandlersToNewStructure.php b/database/migrations/2016_10_16_204959_MigrateWidgetHandlersToNewStructure.php
new file mode 100644
index 00000000..e3f7f831
--- /dev/null
+++ b/database/migrations/2016_10_16_204959_MigrateWidgetHandlersToNewStructure.php
@@ -0,0 +1,68 @@
+dropForeign('widgets_widget_type_handler_foreign');
+ });
+
+ Schema::table('widgets', function (Blueprint $table) {
+ $table->foreign('widget_type_handler')
+ ->references('handler')
+ ->on('widget_types')
+ ->onDelete('cascade')
+ ->onUpdate('cascade');
+ });
+
+ $widgets = WidgetType::where('handler', 'LIKE', '%App%')
+ ->get();
+
+ foreach ($widgets as $widget) {
+ $widget->handler = str_replace('App\Widgets', 'App\CMS\Widgets', $widget->handler);
+ $widget->save();
+ }
+
+
+ }
+
+ /**
+ * Reverse the migrations.
+ *
+ * @return void
+ */
+ public function down()
+ {
+// Schema::table('widgets', function (Blueprint $table) {
+// $table->dropForeign('widgets_widget_type_handler_foreign');
+// });
+
+ $widgets = WidgetType::where('handler', 'LIKE', '%App%')
+ ->get();
+
+ foreach ($widgets as $widget) {
+ $widget->handler = str_replace('App\CMS\Widgets', 'App\Widgets', $widget->handler);
+
+ $widget->save();
+ }
+
+// Schema::table('widgets', function (Blueprint $table) {
+// $table->foreign('widget_type_handler')
+// ->references('handler')
+// ->on('widget_types')
+// ->onDelete('cascade')
+// ->onUpdate('cascade');
+// });
+ }
+}
diff --git a/index.php b/index.php
index 6694af8c..48384dc5 100644
--- a/index.php
+++ b/index.php
@@ -16,5 +16,5 @@ if ($uri !== '/' && file_exists(__DIR__ . '/public' . $uri)) {
return false;
}
-require_once __DIR__ . '/app/Helpers/functions.php';
+require_once __DIR__ . '/app/CMS/Helpers/functions.php';
require_once __DIR__ . '/public/index.php';
diff --git a/modules/Blog/Article/Entities/Article.php b/modules/Blog/Article/Entities/Article.php
index 108ee12c..1222a7bb 100644
--- a/modules/Blog/Article/Entities/Article.php
+++ b/modules/Blog/Article/Entities/Article.php
@@ -1,7 +1,7 @@