FIX: lots of bugfixes, sorry for ugly commit

This commit is contained in:
Michal Kváček
2017-02-09 23:10:11 +01:00
parent 99ed8806da
commit b7d4ab9515
47 changed files with 180 additions and 199 deletions
@@ -9,11 +9,11 @@ interface AdvancedContentModifier {
* Save module-specific values into database
*
* @param Content $content
* @param Request $request
* @param array $inputData
*
* @return mixed
*/
public static function createNew(Content &$content, Request $request);
public static function createNew(Content &$content, array $inputData);
/**
* Method used for editing existing content page.
@@ -2,6 +2,7 @@
namespace App\CMS\Contracts\Repositories;
use App\Models\Module as ModuleModel;
use App\Models\Templates\Template as TemplateModel;
interface Template
{
@@ -12,6 +13,8 @@ interface Template
const CUSTOM_EDIT_DIRECTORY = 1;
const ORIGINAL_DIRECTORY = 2;
public function setModel(TemplateModel $model);
public function getPathToTemplate();
public function getForModule(ModuleModel $module);
-8
View File
@@ -34,7 +34,6 @@ abstract class BaseHandler implements BaseModuleHandler
* Submenus can be registered later
*/
$menu->dropdown(trans('admin/mainMenu.contentPages'), function ($sub) {
$sub->addDivider(9999);
$sub->route('content.overview', trans('admin/mainMenu.contentPageOverview'), [], 10000, ['icon' => 'fa fa-fw fa-list']);
}, 20, ['icon' => 'fa fa-fw fa-database']);
@@ -96,18 +95,11 @@ abstract class BaseHandler implements BaseModuleHandler
}, 60, ['icon' => 'fa fa-fw fa-file-code-o']);
}
// $menu->dropdown(trans('admin/mainMenu.customFields'), function ($sub) {
// $sub->route('customfields.new', trans('admin/mainMenu.customFieldsNew'), [], 10, ['icon' => 'fa fa-fw fa-code']);
// $sub->route('customfields.overview', trans('admin/mainMenu.customFieldsOverview'), [], 50, ['icon' => 'fa fa-fw fa-code-fork']);
// }, 30, ['icon' => 'fa fa-fw fa-code']);
$sub->route('log.overview', trans('admin/mainMenu.actionLog'), [], 70, ['icon' => 'fa fa-fw fa-history']);
$sub->route('settings.overview', trans('admin/mainMenu.settings'), [], 80, ['icon' => 'fa fa-fw fa-gear']);
}, 10000, ['icon' => 'fa fa-fw fa-gears']);
});
// order
// create menu with user profile
\Menu::create('profileMenu', function ($menu) {
$menu->route('users.detail', trans('admin/userManagement.profile'), [], 10, ['icon' => 'fa fa-fw fa-user icon']);
@@ -1,9 +1,10 @@
<?php
namespace App\CMS\Handlers\Registrators;
use App\CMS\Contracts\Repositories\Template;
use App\CMS\Enumerations\TemplatePaths;
use App\CMS\Enumerations\Templates;
use App\CMS\Contracts\Repositories\Template;
use App\Models\Templates\Template as TemplateModel;
use App\Models\Templates\TemplatePath;
use Illuminate\Support\Facades\File;
use Illuminate\Support\Str;
@@ -134,7 +135,10 @@ class TemplateRegistrator
*/
protected function relativePath($directory)
{
return trim(str_replace(base_path(), '', $directory), '/');
$directory = str_replace('/', DIRECTORY_SEPARATOR, $directory);
$directory = str_replace('\\', DIRECTORY_SEPARATOR, $directory);
return trim(str_replace(base_path(), '', $directory), '\\/');
}
/**
@@ -145,6 +149,10 @@ class TemplateRegistrator
*/
protected function scanForSubdirectories($directory, $name)
{
if (!is_dir($directory)) {
return;
}
$directories = File::directories($directory);
foreach ($directories as $dir) {
@@ -222,7 +230,7 @@ class TemplateRegistrator
];
// save template into database
$newTemplate = Template::create($params);
$newTemplate = TemplateModel::create($params);
// push template into enumeration - so it will not be registered again
Templates::push($newTemplate->id, $templateName);
@@ -295,12 +303,17 @@ class TemplateRegistrator
*
* @return string
*/
private function getTemplateName($template)
protected function getTemplateName($template)
{
$templateName = str_replace($this->registeredPath . DIRECTORY_SEPARATOR, '', $template);
$templateName = $template;
$templateName = str_replace($this->registeredPath, '', $templateName);
$templateName = str_replace('\\', DIRECTORY_SEPARATOR, $templateName);
$templateName = str_replace('/', DIRECTORY_SEPARATOR, $templateName);
$templateName = str_replace(DIRECTORY_SEPARATOR, '.', $templateName);
$templateName = str_replace(Template::TEMPLATE_SUFFIX, '', $templateName);
$templateName = preg_replace('/\.{2,}/', '.', $templateName);
return $this->namespace . $templateName;
return $this->namespace . trim($templateName, '.');
}
}
@@ -8,7 +8,6 @@ class WidgetRegistrator
{
protected $registeredWidgets = [];
/**
* Method used for registering new widgets
*
@@ -51,7 +50,9 @@ class WidgetRegistrator
]);
// install widget (if neccessary)
call_user_func($classname . '::install');
if (is_callable([$classname, 'install'])) {
call_user_func($classname . '::install');
}
}
}
}
+1 -1
View File
@@ -28,7 +28,7 @@ class CurrentTemplate implements TemplateHandler
throw new \ErrorException('DB not migrated, please, do so!');
}
if (self::$template) {
self::$template->moduleSettings = json_decode(self::$template->moduleSettings);
self::$template->module_settings = json_decode(self::$template->module_settings);
}
self::$initialized = true;
+1 -1
View File
@@ -7,7 +7,7 @@ class Widget
{
$handler = $widget->widget_type_handler;
if (!is_object($widget->settings)) {
if (is_string($widget->settings)) {
$widget->settings = json_decode($widget->settings);
}
@@ -85,7 +85,6 @@ class EditContent implements Interaction
'url' => 'required|unique:contents,url,' . $id.',id,deleted_at,NULL,language,' . LaravelLocalization::getCurrentLocale(),
'publishedFrom' => 'date',
'publishedTo' => 'date',
'titlePhoto' => 'exists:files,id',
'status' => 'required|in:' . $statuses,
'parentPage' => 'exists:contents,id'
];
@@ -77,6 +77,6 @@ class FoundationDrilldownMenuPresenter extends Presenter
<ul class="vertical menu">
' . $this->getChildMenuItems($item) . '
</ul>
</li>' . PHP_EOL;;
</li>' . PHP_EOL;
}
}
@@ -56,6 +56,6 @@ class FoundationDropdownMenuPresenter extends Presenter
<ul class="vertical menu">
' . $this->getChildMenuItems($item) . '
</ul>
</li>' . PHP_EOL;;
</li>' . PHP_EOL;
}
}
+1 -1
View File
@@ -107,7 +107,7 @@ class Content
}
$moduleSettings = (array)json_decode($changed['moduleSettings']);
$originalSettings = (array)json_decode($original['moduleSettings']);
$originalSettings = isset($original['moduleSettings']) ? (array)json_decode($original['moduleSettings']) : [];
unset($changed['moduleSettings']);
$settingChanged = array_keys(array_diff_assoc($moduleSettings, $originalSettings));
+7 -6
View File
@@ -8,7 +8,7 @@ use App\Models\Templates\Template as TemplateModel;
class Template extends Repository implements ITemplate
{
public function __construct(TemplateModel $model)
public function setModel(TemplateModel $model)
{
$this->model = $model;
}
@@ -23,7 +23,7 @@ class Template extends Repository implements ITemplate
public function getPathToTemplate($mode = null)
{
$templateName = $this->model->template_name;
$path = $this->model->path()->get();
$path = $this->model->templatePath;
// delete namespace if given
if (strpos($this->model->template_name, '::')) {
@@ -66,9 +66,10 @@ class Template extends Repository implements ITemplate
}
}
public function getForModule(Module $module) {
return Template::where('module_id', $module->id)
->select(['template_name', 'name', 'description'])
->get();
public function getForModule(Module $module)
{
return TemplateModel::where('module_id', $module->id)
->select(['template_name', 'name', 'description'])
->get();
}
}
+3 -2
View File
@@ -7,6 +7,7 @@ use App\CMS\Widgets\Exceptions\MissingParameterException;
use App\Http\Requests\Request;
use App\Models\Content\Content;
use Mcamara\LaravelLocalization\Facades\LaravelLocalization;
use App\CMS\Contracts\Repositories\Content as IContent;
class Menu implements PublicWidget
{
@@ -66,10 +67,10 @@ class Menu implements PublicWidget
public static function selectContentPages($ids)
{
$allowedStatuses = [Content::STATUS_PUBLIC];
$allowedStatuses = [IContent::STATUS_PUBLIC];
if (\Auth::user()) {
$allowedStatuses[] = Content::STATUS_PROTECTED;
$allowedStatuses[] = IContent::STATUS_PROTECTED;
}
$pages = Content::where('language', LaravelLocalization::getCurrentLocale())
+8 -13
View File
@@ -4,9 +4,9 @@ namespace App\CMS\Widgets\Menu\Presenters;
use App\CMS\Contracts\Repositories\Content as ContentContract;
use App\CMS\Contracts\Widgets\WidgetRenderer;
use App\CMS\Widgets\Menu\Menu as WidgetMenu;
use App\Models\Content\Content;
use App\Models\Widgets\Widget;
use App\Models\Widgets\WidgetType;
use Illuminate\Support\Collection;
use Illuminate\Support\Facades\App;
use Illuminate\Support\Facades\Request;
use Illuminate\Support\Facades\Route;
@@ -79,24 +79,19 @@ class Menu implements WidgetRenderer
*/
public static function renderAddForm(WidgetType $type)
{
$extensions = App::make('registerMenuExtension')
->get();
$widget = new Widget();
$content = new Content();
$content = app(ContentContract::class);
// get list of all pages
$pages = $content->getOverview()
->get();
$pages = $content->getOverview();
$widget->settings = new \stdClass();
$widget->settings->links = [];
$widget->settingsObj = new \stdClass();
$widget->settingsObj->links = new \stdClass();
return view('admin.widgets.menu.new', [
'type' => $type,
'widget' => $widget,
'pages' => $pages,
'extensions' => $extensions
'type' => $type,
'widget' => $widget,
'pages' => $pages,
]);
}