Skip to content

Commit

Permalink
Merge branch 'develop' into wip/event-stream
Browse files Browse the repository at this point in the history
  • Loading branch information
bennothommo committed Oct 24, 2024
2 parents 22cdb63 + f5b34cc commit cbe645d
Show file tree
Hide file tree
Showing 11 changed files with 460 additions and 48 deletions.
4 changes: 3 additions & 1 deletion composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,9 @@
},
"scripts": {
"post-create-project-cmd": [
"@php artisan key:generate"
"@php artisan winter:install",
"@php artisan winter:env",
"@php artisan winter:mirror public --relative"
],
"post-update-cmd": [
"@php artisan winter:version",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ class="field-recordfinder loading-indicator-container size-input-text"
<?php if ($value): ?>
<button
type="button"
class="btn clear-record"
class="btn btn-default clear-record"
data-request="<?= $this->getEventHandler('onClearRecord') ?>"
data-request-confirm="<?= e(trans('backend::lang.form.action_confirm')) ?>"
data-request-success="var $locker = $('#<?= $field->getId() ?>'); $locker.val(''); $locker.trigger('change')"
Expand Down
5 changes: 5 additions & 0 deletions modules/backend/lang/ru/lang.php
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
'options_method_not_exists' => "Класс модели :model должен содержать метод :method(), возвращающий опции для поля формы ':field'.",
'options_static_method_invalid_value' => "Статический метод ':method()' в :class не вернул допустимый массив параметров.",
'colors_method_not_exists' => "Класс модели :model должен содержать метод :method(), возвращающий HTML цвет в HEX для поля формы ':field'.",
'colors_invalid_input' => 'Указанное значение цвета недействительно. Попробуйте ещё раз.',
],
'widget' => [
'not_registered' => "Класс виджета ':name' не зарегистрирован.",
Expand Down Expand Up @@ -370,12 +371,16 @@
'warnings' => [
'tips' => 'Подсказки по конфигурации системы',
'tips_description' => 'Есть проблемы на которые стоит обратить внимание, чтобы правильно настроить систему.',
'how_to_fix' => 'Как исправить',
'permissions' => 'Каталог :name или его подкаталоги недоступны для записи. Укажите соответствующие разрешения для веб-сервера.',
'extension' => 'Расширение PHP :name не установлено. Установите эту библиотеку и активируйте расширение.',
'plugin_missing' => 'Плагин :name имеет зависимость. Установите этот плагин.',
'debug' => 'Режим отладки включен. Это не рекомендуется для рабочих инсталяций.',
'decompileBackendAssets' => 'Ассеты в бэкенде в настоящее время декомпилированы. Это не рекомендуется для рабочих инсталяций.',
'default_backend_user' => 'Был обнаружен пользователь с данными для входа по умолчанию (admin / [email protected]). Измените ему имя пользователя и/или email-адрес, чтобы защитить систему.',
'auth_throttle_disabled' => 'Отключён контроль бэкенд авторизации. Это не рекомендуется для рабочих инсталяций, так как это может позволить злоумышленникам подбирать пароли пользователей методом подбора.',
'csrf' => 'Защита CSRF отключена. Это не рекомендуется для рабочих инсталяций, поскольку это ставит под угрозу безопасность установки и может допустить атаки с использованием межсайтового скриптинга.',
'restrict_base_dir' => 'Ограничение базового каталога отключено. Это не рекомендуется для рабочих инсталяций, так как это может позволить темам и файлам конфигурации получать доступ к файлам за пределами вашей установки Winter CMS.',
],
'editor' => [
'menu_label' => 'Настройки редактора',
Expand Down
2 changes: 1 addition & 1 deletion modules/cms/classes/CmsController.php
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ public function __construct()
* Finds and serves the request using the primary controller.
* @param string $url Specifies the requested page URL.
* If the parameter is omitted, the current URL used.
* @return string Returns the processed page content.
* @return BaseResponse Returns the response to the provided URL
*/
public function run($url = '/')
{
Expand Down
34 changes: 23 additions & 11 deletions modules/cms/classes/Theme.php
Original file line number Diff line number Diff line change
@@ -1,22 +1,25 @@
<?php namespace Cms\Classes;
<?php

namespace Cms\Classes;

use App;
use ApplicationException;
use Cache;
use Cms\Models\ThemeData;
use Config;
use DirectoryIterator;
use Event;
use Exception;
use File;
use Lang;
use Illuminate\Support\Facades\App;
use Illuminate\Support\Facades\Cache;
use Illuminate\Support\Facades\Lang;
use System\Models\Parameter;
use SystemException;
use Url;
use Winter\Storm\Exception\ApplicationException;
use Winter\Storm\Exception\SystemException;
use Winter\Storm\Halcyon\Datasource\DatasourceInterface;
use Winter\Storm\Halcyon\Datasource\DbDatasource;
use Winter\Storm\Halcyon\Datasource\FileDatasource;
use Yaml;
use Winter\Storm\Support\Facades\Config;
use Winter\Storm\Support\Facades\Event;
use Winter\Storm\Support\Facades\File;
use Winter\Storm\Support\Facades\Url;
use Winter\Storm\Support\Facades\Yaml;
use Winter\Storm\Support\Str;

/**
* This class represents the CMS theme.
Expand Down Expand Up @@ -682,6 +685,11 @@ public function getDatasource(): DatasourceInterface
*/
public function __get($name)
{
if (in_array(strtolower($name), ['id', 'path', 'dirname', 'config', 'formconfig', 'previewimageurl'])) {
$method = 'get'. ucfirst($name);
return $this->$method();
}

if ($this->hasCustomData()) {
return $this->getCustomData()->{$name};
}
Expand All @@ -694,6 +702,10 @@ public function __get($name)
*/
public function __isset($key)
{
if (in_array(strtolower($key), ['id', 'path', 'dirname', 'config', 'formconfig', 'previewimageurl'])) {
return true;
}

if ($this->hasCustomData()) {
$theme = $this->getCustomData();
return $theme->offsetExists($key);
Expand Down
10 changes: 6 additions & 4 deletions modules/cms/models/ThemeData.php
Original file line number Diff line number Diff line change
@@ -1,11 +1,13 @@
<?php namespace Cms\Models;
<?php

namespace Cms\Models;

use Lang;
use Model;
use Cms\Classes\Theme as CmsTheme;
use System\Classes\CombineAssets;
use Exception;
use Illuminate\Support\Facades\Lang;
use System\Classes\CombineAssets;
use System\Models\File;
use Winter\Storm\Database\Model;

/**
* Customization data used by a theme
Expand Down
37 changes: 33 additions & 4 deletions modules/system/ServiceProvider.php
Original file line number Diff line number Diff line change
Expand Up @@ -5,14 +5,20 @@
use Backend\Models\UserRole;
use BackendAuth;
use BackendMenu;
use Config;
use Cms\Classes\CmsController;
use Cms\Classes\Router;
use Cms\Classes\Theme;
use DateInterval;
use Event;
use Illuminate\Foundation\Vite as LaravelVite;
use Illuminate\Pagination\Paginator;
use Illuminate\Support\Facades\Config;
use Illuminate\Support\Facades\Request;
use Illuminate\Support\Facades\Response;
use Illuminate\Support\Facades\Schema;
use Illuminate\Support\Facades\View;
use Markdown;
use Request;
use Symfony\Component\HttpKernel\Exception\HttpExceptionInterface;
use System\Classes\CombineAssets;
use System\Classes\ErrorHandler;
use System\Classes\MailManager;
Expand All @@ -24,11 +30,10 @@
use System\Models\EventLog;
use System\Models\MailSetting;
use System\Twig\Engine as TwigEngine;
use SystemException;
use Twig\Environment;
use Twig\Extension\CoreExtension;
use Validator;
use View;
use Winter\Storm\Exception\SystemException;
use Winter\Storm\Router\Helper as RouterHelper;
use Winter\Storm\Support\ClassLoader;
use Winter\Storm\Support\ModuleServiceProvider;
Expand Down Expand Up @@ -342,6 +347,30 @@ protected function registerConsole()
*/
protected function registerErrorHandler()
{
$this->app->error(function (HttpExceptionInterface $exception, $code, $fromConsole) {
if (class_exists(Theme::class)) {
$theme = Theme::getActiveTheme();
$controller = new CmsController($theme);
if ($code === 404) {
return Response::make($controller->run('/404')->original, 404, []);
}

if (!Config::get('app.debug', false)) {
$router = new Router($theme);
// Use the default view if no "/error" URL is found.
if (!$router->findByUrl('/error')) {
$result = View::make('cms::error');
} else {
// Route to the CMS error page.
$controller = new CmsController($theme);
$result = $controller->run('/error')->original;
}

return Response::make($result, $code, []);
}
}
});

Event::listen('exception.beforeRender', function ($exception, $httpCode, $request) {
$handler = new ErrorHandler;
return $handler->handleException($exception);
Expand Down
2 changes: 1 addition & 1 deletion modules/system/console/WinterInstall.php
Original file line number Diff line number Diff line change
Expand Up @@ -339,7 +339,7 @@ protected function setupDatabaseSqlite()
$this->setupDatabaseSqlite();
}

return ['database' => $filename];
return ['database' => Str::after($filename, base_path() . DIRECTORY_SEPARATOR)];
}

protected function setupDatabaseSqlsrv()
Expand Down
7 changes: 5 additions & 2 deletions modules/system/console/WinterUp.php
Original file line number Diff line number Diff line change
Expand Up @@ -14,9 +14,12 @@
class WinterUp extends Command
{
/**
* The console command name.
* The name and signature of the console command.
*
* @var string
*/
protected $name = 'winter:up';
protected $signature = 'winter:up
{--seed : Included for compatibility with Laravel default signature, no effect at this time}';

/**
* The console command description.
Expand Down
Loading

0 comments on commit cbe645d

Please sign in to comment.