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,8 +50,10 @@ class WidgetRegistrator
]);
// install widget (if neccessary)
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));
+5 -4
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,8 +66,9 @@ class Template extends Repository implements ITemplate
}
}
public function getForModule(Module $module) {
return Template::where('module_id', $module->id)
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())
+5 -10
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
]);
}
-2
View File
@@ -32,8 +32,6 @@ class AddLanguage extends Command
/**
* Execute the console command.
*
* @return mixed
*/
public function handle()
{
-2
View File
@@ -24,8 +24,6 @@ class ChangePassword extends Command
/**
* Execute the console command.
*
* @return mixed
*/
public function handle()
{
+2 -2
View File
@@ -93,7 +93,7 @@ class InstallModule extends Command
}
// we cannot rely on config() helper, because this module does not have to be published
$config = @include($path);
$config = include($path);
return $config;
}
@@ -146,7 +146,7 @@ class InstallModule extends Command
throw new \Exception('Module ' . $config['name'] . ' already exists in database.');
}
if (!$module) {
if (is_null($module)) {
// insert module into database
$settings = [
'staticName' => $this->moduleName,
+1 -1
View File
@@ -3,7 +3,7 @@
namespace App\Events;
use App\Models\Widgets\Widget;
use App\Models\WidgetArea;
use App\Models\Widgets\WidgetArea;
use Illuminate\Queue\SerializesModels;
class AssignWidget extends Event
+1 -1
View File
@@ -2,7 +2,7 @@
namespace App\Events;
use App\Models\WidgetArea;
use App\Models\Widgets\WidgetArea;
use Illuminate\Queue\SerializesModels;
class CreateNewWidgetArea extends Event
+1 -1
View File
@@ -3,7 +3,7 @@
namespace App\Events;
use App\Models\Widgets\Widget;
use App\Models\WidgetArea;
use App\Models\Widgets\WidgetArea;
use Illuminate\Queue\SerializesModels;
class RemoveWidgetFromArea extends Event
@@ -34,7 +34,7 @@ class CreateNewDirectory extends Controller
*
* @return $this|\Illuminate\Http\JsonResponse|\Illuminate\Http\RedirectResponse
*/
public function postNew(Request $request)
public function store(Request $request)
{
// create new directory
try {
@@ -1,6 +1,7 @@
<?php
namespace App\Http\Controllers\Admin\FileManager;
use App\CMS\Helpers\Path;
use App\CMS\Helpers\Template;
use App\Http\Controllers\Admin\Controller;
use App\Http\Requests\Request;
@@ -82,7 +83,7 @@ class UploadFile extends Controller
return view('admin.snippets.ckEditorUploaded', [
'ckEditor' => Input::get('CKEditor'),
'funcNumber' => Input::get('CKEditorFuncNum'),
'fileUrl' => Template::upload($uploadedFile['filename'])
'fileUrl' => Path::upload($uploadedFile['filename'])
]);
}
@@ -14,17 +14,28 @@ class UploadedFilesOverview extends Controller
*
* @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View
*/
public function index(Directory $directory =null)
public function index(Directory $directory = null)
{
// include hidden directories?
$includeHidden = Input::get('hidden');
$subdirectories = $includeHidden ? $directory->allSubdirectories : $directory->subdirectories;
if (!$directory->exists) {
$subdirectories = Directory::whereNull('parent_id');
} else {
$subdirectories = $directory->allSubdirectories();
}
if ($includeHidden === false) {
$subdirectories = $subdirectories->where('hidden', false);
}
$subdirectories = $subdirectories->get();
return view('admin.fileManager.overview', [
'directory' => $directory,
'subdirectories' => $subdirectories,
'newDirectory' => new Directory()
'newDirectory' => new Directory(),
'parentDirectory' => $directory
]);
}
}
@@ -2,6 +2,7 @@
namespace App\Http\Controllers\Admin\Templates;
use App\CMS\Contracts\Repositories\Template as TemplateRepositoryContract;
use App\Http\Controllers\Controller;
use App\Http\Requests;
use App\Http\Requests\EditTemplateRequest;
@@ -24,17 +25,19 @@ class EditTemplate extends Controller
* @var $template Template
*/
$template = Template::findOrFail($template);
$path = $template->getPath();
$repo = app(TemplateRepositoryContract::class);
$repo->setModel($template);
// load template content
$absolutePath = $template->getPathToTemplate();
$absolutePath = $repo->getPathToTemplate();
$content = @file_get_contents($absolutePath);
return view('admin.templates.edit', [
'template' => $template,
'templateContent' => $content,
'isWritable' => is_writable(dirname($absolutePath)),
'path' => $path,
'path' => $template->templatePath,
]);
}
@@ -4,8 +4,8 @@ namespace App\Http\Controllers\Admin\Users;
use App\CMS\Enumerations\UserRoles;
use App\CMS\Enumerations\UserStates;
use App\Cms\Repositories\ActionLog\Actions;
use App\Http\Controllers\Admin\Controller;
use App\Http\Requests;
use App\Models\ActionLog\ActionLog;
use App\Models\User;
use Illuminate\Support\Facades\Auth;
@@ -17,7 +17,7 @@ class UserDetail extends Controller
*/
private $log;
function __construct(ActionLog $log)
function __construct(Actions $log)
{
$this->log = $log;
}
@@ -6,8 +6,8 @@ use App\Events\AssignWidget;
use App\Events\RemoveWidgetFromArea;
use App\Http\Controllers\Admin\Controller;
use App\Models\Widgets\Widget;
use App\Models\WidgetArea;
use App\Models\WidgetInWidgetArea;
use App\Models\Widgets\WidgetArea;
use App\Models\Widgets\WidgetInWidgetArea;
use Illuminate\Database\QueryException;
use Illuminate\Support\Facades\Event;
use Mcamara\LaravelLocalization\Facades\LaravelLocalization;
@@ -1,10 +1,10 @@
<?php
namespace App\Http\Controllers\Admin\Widgets;
use App\CMS\Widgets\Exceptions\MissingParameterException;
use App\Http\Controllers\Admin\Controller;
use App\Http\Requests\EditWidgetRequest;
use App\Models\Widgets\Widget;
use App\CMS\Widgets\Exceptions\MissingParameterException;
use Illuminate\Support\Facades\Event;
class EditWidget extends Controller
@@ -47,7 +47,7 @@ class EditWidget extends Controller
// try to save this widget
try {
$widget = call_user_func([$widget->widget_type_handler, 'save'], $widget, (object)$request->all());
$widget->settings = json_encode(call_user_func([$widget->widget_type_handler, 'save'], $request));
} catch (MissingParameterException $e) {
// user omitted some value
return $this->invalidWidget($e->getMessage());
@@ -64,7 +64,7 @@ class EditWidget extends Controller
// redirect with success notification
return redirect()
->route('widgets.overview')
->back()
->with('success', trans('admin/widgets.successfullyEdited'));
}
@@ -1,10 +1,9 @@
<?php
namespace App\Models\Content\ModelTraits;
use App\CMS\Handlers\Contracts\AppHandler;
use App\CMS\Handlers\Contracts\HistoryHandler;
use App\CMS\Helpers\Differ;
use App\Models\Content\Content;
use App\Models\Content\Content as ContentModel;
trait ContentHistory
{
@@ -15,7 +14,7 @@ trait ContentHistory
*
* @return array
*/
public function getStructuredHistoryOf(Content $content)
public function getStructuredHistoryOf(ContentModel $content)
{
$data = $content->history()
->select('content_history.*', 'contents.moduleHandler', 'users.email AS user_email', 'users.name AS user_name')
+14 -9
View File
@@ -1,11 +1,14 @@
<?php
namespace App\Models\ModelTraits;
use App\CMS\Handlers\Contracts\TemplateHandler;
use App\CMS\Contracts\Modules\AppHandler;
use App\CMS\Contracts\Modules\TemplateHandler;
use App\Models\Module as ModuleModel;
use App\Models\Templates\TemplatePath;
use Illuminate\Support\Facades\App;
trait Module {
trait Module
{
/**
* Create new module in database
*
@@ -26,32 +29,32 @@ trait Module {
throw new \ErrorException('Modules can be installed only via Artisan!');
}
$managesContent = $handler ? in_array('App\CMS\Handlers\Contracts\AppHandler', class_implements($handler)) : false;
$managesContent = $handler ? in_array(AppHandler::class, class_implements($handler)) : false;
$isTemplate = $handler ? in_array(TemplateHandler::class, class_implements($handler)) : false;
$supportCategories = $managesContent ? call_user_func([$handler, 'supportCategories']) : false;
if ($parentModuleId) {
$parentModule = Module::findOrFail($parentModuleId);
$parentModule = ModuleModel::findOrFail($parentModuleId);
$parentModule->has_submodules = true;
$parentModule->save();
}
// insert module into database
$module = Module::create([
$module = ModuleModel::create([
'name' => $name,
'description' => $description,
'handler' => $handler,
'manages_content' => $managesContent,
'support_categories' => $supportCategories,
'alias' => $alias,
'moduleSettings' => json_encode($settings),
'module_settings' => json_encode($settings),
'parent_id' => $parentModuleId ? $parentModuleId : null,
'enabled' => 1,
'is_template' => $isTemplate
]);
// install something module-specific
if ($handler) {
if ($handler && is_callable([$handler, 'install'])) {
call_user_func([$handler, 'install']);
}
@@ -77,7 +80,8 @@ trait Module {
$this->deleteDirectory(public_path('assets'));
// delete all template paths
TemplatePath::getQuery()->delete();
TemplatePath::getQuery()
->delete();
}
if ($this->handler && is_callable([$this->handler, 'uninstall'])) {
@@ -96,8 +100,9 @@ trait Module {
*/
private function deleteDirectory($directory)
{
if (!is_dir($directory))
if (!is_dir($directory)) {
return;
}
$success = \File::deleteDirectory($directory, true);
+1 -1
View File
@@ -17,7 +17,7 @@ class Module extends Model
'name',
'description',
'alias',
'moduleSettings',
'module_settings',
'enabled',
'support_categories',
'manages_content',
+2 -1
View File
@@ -21,7 +21,8 @@ class Template extends Model
*
* @return \Illuminate\Database\Eloquent\Relations\BelongsTo
*/
public function path() {
public function templatePath()
{
return $this->belongsTo(TemplatePath::class, 'path');
}
}
+4 -6
View File
@@ -25,13 +25,11 @@ class ModuleManager extends ServiceProvider
// iterate over all modules and enable or disable them
foreach ($modules as $module) {
$module->moduleSettings = json_decode($module->moduleSettings);
$module->module_settings = json_decode($module->module_settings);
if ($module->is_template) {
if (isset($module->moduleSettings->providers) && !empty($module->moduleSettings->providers)) {
foreach ($module->moduleSettings->providers as $provider) {
if (isset($module->module_settings->providers) && !empty($module->module_settings->providers)) {
foreach ($module->module_settings->providers as $provider) {
$this->app->register($provider);
}
}
@@ -61,7 +59,7 @@ class ModuleManager extends ServiceProvider
*/
private function createModulesJson(Module $module)
{
$config = $module->moduleSettings;
$config = $module->module_settings;
if (is_null($config)) {
return;
+10 -8
View File
@@ -3,18 +3,19 @@ namespace App\Providers;
use Illuminate\Support\ServiceProvider;
abstract class ModuleServiceProvider extends ServiceProvider {
abstract class ModuleServiceProvider extends ServiceProvider
{
/**
* Indicates if loading of the provider is deferred.
*
* @var bool
*/
protected $defer = false;
protected $alias = false;
protected $path = false;
abstract protected function setModuleAlias();
abstract protected function setModulePath();
/**
@@ -39,7 +40,7 @@ abstract class ModuleServiceProvider extends ServiceProvider {
*/
protected function registerConfig()
{
$this->publishes([$this->path . '/../Config/config.php' => config_path($this->alias.'.php')]);
$this->publishes([$this->path . '/../Config/config.php' => config_path($this->alias . '.php')]);
$this->mergeConfigFrom($this->path . '/../Config/config.php', $this->alias);
}
@@ -54,14 +55,16 @@ abstract class ModuleServiceProvider extends ServiceProvider {
*/
protected function registerViews()
{
$viewPath = base_path('resources/views/modules/'.$this->alias);
$viewPath = base_path('resources/views/modules/' . $this->alias);
$sourcePath = $this->path . '/../Resources/views';
$this->publishes([$sourcePath => $viewPath], 'module-views');
$this->loadViewsFrom(array_merge(array_map(function ($path) {
return $path . '/modules/'.$this->alias;
return $path . '/modules/' . $this->alias;
}, \Config::get('view.paths')), [$sourcePath]), $this->alias);
if (is_dir($sourcePath)) {
$this->publishes([$sourcePath => $viewPath], 'module-views');
}
}
/**
@@ -73,5 +76,4 @@ abstract class ModuleServiceProvider extends ServiceProvider {
{
$this->loadTranslationsFrom($this->path . '/../Resources/lang', $this->alias);
}
}
+1 -1
View File
@@ -44,7 +44,7 @@ class SubmodulesManager extends ServiceProvider
$initFiles = $config->get('files', []);
foreach ($initFiles as $file) {
@include $submodulePath . DIRECTORY_SEPARATOR . $file;
require $submodulePath . DIRECTORY_SEPARATOR . $file;
}
} catch (FileNotFoundException $e) {
// ignore missing module and do not register this submodule
+12 -5
View File
@@ -5,6 +5,7 @@ namespace App\Providers;
use App\CMS\Contracts\Repositories\Template as TemplateContract;
use App\CMS\Handlers\Registrators\TemplateRegistrator;
use App\CMS\Helpers\CurrentTemplate;
use App\Models\Module;
use Illuminate\Support\Facades\App;
use Illuminate\Support\ServiceProvider;
@@ -44,6 +45,9 @@ class TemplateServiceProvider extends ServiceProvider
public function registerTemplatePaths($publicTemplates)
{
$modules = Module::all()
->pluck('id', 'alias');
/**
* @var $registrator TemplateRegistrator
*/
@@ -51,14 +55,17 @@ class TemplateServiceProvider extends ServiceProvider
foreach ($publicTemplates as $template) {
// setup some global variables
$module = strtolower($template['module']);
$alias = isset($template['alias']) ? $template['alias'] : $module;
$namespace = isset($template['namespace']) ? $template['namespace'] : strtolower($template['module']);
if (!$modules->get($alias)) {
continue;
}
// register path with current template name
$registrator->setNamespace($namespace);
if (is_callable([config($module . '.handler'), 'getModuleId'])) {
$registrator->setModuleId(call_user_func([config($module . '.handler'), 'getModuleId']));
}
$registrator->setModuleId($modules->get($alias));
$registrator->register('resources/views/modules/' . $module, 'visitor', $template['templateName']);
}
@@ -81,11 +88,11 @@ class TemplateServiceProvider extends ServiceProvider
private function publishViewResources()
{
$template = CurrentTemplate::get();
if (!$template || is_null($template->moduleSettings)) {
if (!$template || is_null($template->module_settings)) {
return;
}
$templateDir = base_path('templates/' . $template->moduleSettings->staticName . '/Resources');
$templateDir = base_path('templates/' . $template->module_settings->staticName . '/Resources');
$assetsDir = $templateDir . '/' . TemplateContract::ASSETS_DIRECTORY;
$viewsDir = $templateDir . '/views';
+2 -2
View File
@@ -59,9 +59,9 @@ class Article extends Handler implements ContentTitles, AdvancedContentModifier,
*
* @return mixed|void
*/
public static function createNew(Content &$content, Request $request)
public static function createNew(Content &$content, array $inputData)
{
$content->moduleSettings = ['allowComments' => (int)$request->has('allowComments')];
$content->moduleSettings = ['allowComments' => (int)isset($inputData['allowComments'])];
}
/**
+1 -1
View File
@@ -12,4 +12,4 @@
|
*/
require __DIR__ . '/Http/routes.php';
require __DIR__ . DIRECTORY_SEPARATOR.'Http'.DIRECTORY_SEPARATOR.'routes.php';
@@ -1,10 +1,8 @@
<?php
namespace Modules\Blog\ArticleList\Handlers;
use App\CMS\Enumerations\ModulesHandlerToId;
use App\CMS\Handlers\Handler;
use App\Http\Controllers\Controller;
use App\Http\Requests\Request;
use App\Models\Content\Content;
use App\Models\User;
use Carbon\Carbon;
@@ -29,7 +27,7 @@ class ArticleList extends Handler
}, 20, ['icon' => 'fa fa-fw fa-book']);
}
$blogSubmenu->route('content.new', trans('articlelist::module.name'), ['id' => self::getModuleId()], 100, ['icon' => 'fa fa-fw fa-list-alt']);
$blogSubmenu->route('content.new', trans('articlelist::module.name'), ['id' => 'blog-articlelist'], 100, ['icon' => 'fa fa-fw fa-list-alt']);
}
/**
@@ -145,55 +143,8 @@ class ArticleList extends Handler
]);
}
public static function getModuleId()
{
$handler = config('articlelist.handler');
$allModules = ModulesHandlerToId::getWithTranslations();
$moduleId = isset($allModules[$handler]) ? $allModules[$handler] : null;
return $moduleId;
}
public static function supportCategories()
{
return false;
}
/**
* Save module-specific values into database
*
* @param Content $content
* @param Request $request
*
* @return mixed
* @internal param Widget $widget
*/
public static function createNew(Content &$content, Request $request)
{
}
/**
* Method used for editing existing content page.
*
* Reason why it is separated from createNew() method is simple - we need to save history of changes.
*
* @param Content $content
* @param Request $request
*
* @param $revisionID string ID of revision used
*
* @return int number of edited fields
*/
public static function edit(Content &$content, Request $request, $revisionID)
{
}
/**
* Install module
*
* @return mixed
*/
public static function install()
{
}
}
+1 -1
View File
@@ -12,4 +12,4 @@
|
*/
require __DIR__ . '/Http/routes.php';
require __DIR__ . DIRECTORY_SEPARATOR.'Http'.DIRECTORY_SEPARATOR.'routes.php';
+1 -1
View File
@@ -12,4 +12,4 @@
|
*/
require __DIR__ . '/Http/routes.php';
require __DIR__ . DIRECTORY_SEPARATOR.'Http'.DIRECTORY_SEPARATOR.'routes.php';
+11 -12
View File
@@ -21,26 +21,25 @@ class ContactForm extends Handler implements ContentTitles, AdvancedContentModif
* Save module-specific values into database
*
* @param Content $content
* @param Request $request
* @param array $inputData
*
* @return mixed
* @internal param Widget $widget
*/
public static function createNew(Content &$content, Request $request)
public static function createNew(Content &$content, array $inputData)
{
$settings = [
'phone' => $request->phone,
'email' => $request->email,
'contactEmail' => $request->contactEmail,
'subject' => $request->subject,
'companyName' => $request->companyName,
'address' => $request->address,
'gpsLat' => $request->gpsLat,
'gpsLng' => $request->gpsLng,
'phone' => $inputData['phone'],
'email' => $inputData['email'],
'contactEmail' => $inputData['contactEmail'],
'subject' => $inputData['subject'],
'companyName' => $inputData['companyName'],
'address' => $inputData['address'],
'gpsLat' => $inputData['gpsLat'],
'gpsLng' => $inputData['gpsLng'],
];
// save settings
$content->moduleSettings = json_encode($settings);
$content->moduleSettings = $settings;
}
/**
@@ -2,6 +2,7 @@
namespace Modules\ContactForm\Widgets\Address;
use App\CMS\Contracts\Widgets\PublicWidget;
use App\Http\Requests\Request;
use App\Models\Widgets\Widget;
use App\CMS\Contracts\Widgets\WidgetRenderer;
@@ -43,10 +44,8 @@ class Address implements PublicWidget
*
* @return mixed
*/
public static function save(Widget $widget, \stdClass $data)
public static function save(Request $data)
{
$widget->settings = json_encode(['contactFormId' => $data->contactFormId,]);
return $widget;
return ['contactFormId' => $data->contactFormId];
}
}
+3 -4
View File
@@ -3,6 +3,7 @@ namespace Modules\ContactForm\Widgets\Form;
use App\CMS\Contracts\Widgets\PublicWidget;
use App\CMS\Contracts\Widgets\WidgetRenderer;
use App\Http\Requests\Request;
use App\Models\Widgets\Widget;
class Form implements PublicWidget
@@ -43,10 +44,8 @@ class Form implements PublicWidget
*
* @return mixed
*/
public static function save(Widget $widget, \stdClass $data)
public static function save(Request $data)
{
$widget->settings = json_encode(['contactFormId' => $data->contactFormId,]);
return $widget;
return ['contactFormId' => $data->contactFormId];
}
}
@@ -6,6 +6,11 @@
<textarea name="description" class="form-control" placeholder="@lang('admin/fileManager.directoryDescription')"
rows="3">{{old('description', $directory->description)}}</textarea>
@if ($parentDirectory->id)
<input type="text" name="parentDirectory" value="{{$parentDirectory->id}}">
@endif
<button type="submit" class="btn btn-primary">
@if ($directory->id)
@lang('admin/fileManager.editDirectory')
@@ -15,7 +15,7 @@
<div class="col-lg-2">
<div class="callout">
<figure class="user-img text-center figure">
<img class="img-rounded" src="{{$user->gravatar(200)}}" alt="" />
<img class="img-rounded" src="@gravatar($user->email, 200)" alt="" />
@if($user->id == Auth::user()->id)
<figcaption class="figure-caption">@lang('admin/userManagement.gravatarLink')</figcaption>
@@ -17,7 +17,7 @@
<div class="card-block container truncate sameheight-item">
<div class="col-xs-12 text-center">
<a href="{{route('users.edit', ['id' => $user->id])}}">
<img src="{{$user->gravatar(100)}}" alt="" />
<img src="{{\App\CMS\Helpers\Gravatar::img($user->email, 100)}}" alt="" />
</a>
</div>
<div class="col-xs-12">
@@ -62,7 +62,7 @@
<div class="col-lg-4">
<h3>@lang('admin/widgetAreas.new')</h3>
@include('admin.widgets.area.form', ['action' => route('widgetareas.postNew'), 'area' => new \App\Models\WidgetArea()])
@include('admin.widgets.area.form', ['action' => route('widgetareas.postNew'), 'area' => new \App\Models\Widgets\WidgetArea()])
</div>
</div>