Commit b70780ab authored by Tino Goratsch's avatar Tino Goratsch

Merge branch 'release/v4.15.0'

parents 973bd8cc 2943bfbe
...@@ -5,8 +5,6 @@ namespace ACP3\Core\Application; ...@@ -5,8 +5,6 @@ namespace ACP3\Core\Application;
use ACP3\Core\Controller\AreaEnum; use ACP3\Core\Controller\AreaEnum;
use ACP3\Core\DependencyInjection\ServiceContainerBuilder; use ACP3\Core\DependencyInjection\ServiceContainerBuilder;
use ACP3\Core\Environment\ApplicationMode; use ACP3\Core\Environment\ApplicationMode;
use ACP3\Core\Http\RedirectResponse;
use ACP3\Core\Http\RequestInterface;
use ACP3\Core\View; use ACP3\Core\View;
use ACP3\Modules\ACP3\System\Installer\Schema; use ACP3\Modules\ACP3\System\Installer\Schema;
use Patchwork\Utf8; use Patchwork\Utf8;
...@@ -84,9 +82,6 @@ class Bootstrap extends AbstractBootstrap ...@@ -84,9 +82,6 @@ class Bootstrap extends AbstractBootstrap
*/ */
public function outputPage() public function outputPage()
{ {
/** @var \ACP3\Core\Http\Request $request */
$request = $this->container->get('core.http.request');
/** @var \ACP3\Core\Http\RedirectResponse $redirect */ /** @var \ACP3\Core\Http\RedirectResponse $redirect */
$redirect = $this->container->get('core.http.redirect_response'); $redirect = $this->container->get('core.http.redirect_response');
...@@ -95,7 +90,7 @@ class Bootstrap extends AbstractBootstrap ...@@ -95,7 +90,7 @@ class Bootstrap extends AbstractBootstrap
$this->setThemePaths(); $this->setThemePaths();
$this->container->get('core.authentication')->authenticate(); $this->container->get('core.authentication')->authenticate();
if ($this->isMaintenanceModeEnabled($request)) { if ($this->isMaintenanceModeEnabled()) {
return $this->handleMaintenanceMode(); return $this->handleMaintenanceMode();
} }
...@@ -103,16 +98,18 @@ class Bootstrap extends AbstractBootstrap ...@@ -103,16 +98,18 @@ class Bootstrap extends AbstractBootstrap
} catch (\ACP3\Core\Controller\Exception\ResultNotExistsException $e) { } catch (\ACP3\Core\Controller\Exception\ResultNotExistsException $e) {
$response = $redirect->temporary('errors/index/not_found'); $response = $redirect->temporary('errors/index/not_found');
} catch (\ACP3\Core\Authentication\Exception\UnauthorizedAccessException $e) { } catch (\ACP3\Core\Authentication\Exception\UnauthorizedAccessException $e) {
/** @var \ACP3\Core\Http\Request $request */
$request = $this->container->get('core.http.request');
$redirectUri = base64_encode($request->getPathInfo()); $redirectUri = base64_encode($request->getPathInfo());
$response = $redirect->temporary('users/index/login/redirect_' . $redirectUri); $response = $redirect->temporary('users/index/login/redirect_' . $redirectUri);
} catch (\ACP3\Core\ACL\Exception\AccessForbiddenException $e) { } catch (\ACP3\Core\ACL\Exception\AccessForbiddenException $e) {
$response = $redirect->temporary('errors/index/access_forbidden'); $response = $redirect->temporary('errors/index/access_forbidden');
} catch (\ACP3\Core\Controller\Exception\ControllerActionNotFoundException $e) { } catch (\ACP3\Core\Controller\Exception\ControllerActionNotFoundException $e) {
$response = $this->handleException($e, $redirect, 'errors/index/not_found'); $response = $redirect->temporary('errors/index/not_found');
} catch (\Exception $e) { } catch (\Exception $e) {
$this->logger->critical($e); $this->logger->critical($e);
$response = $this->handleException($e, $redirect, 'errors/index/server_error'); $response = $this->handleException($e, 'errors/index/server_error');
} }
return $response; return $response;
...@@ -138,12 +135,13 @@ class Bootstrap extends AbstractBootstrap ...@@ -138,12 +135,13 @@ class Bootstrap extends AbstractBootstrap
/** /**
* Checks, whether the maintenance mode is active * Checks, whether the maintenance mode is active
* *
* @param \ACP3\Core\Http\RequestInterface $request
*
* @return bool * @return bool
*/ */
private function isMaintenanceModeEnabled(RequestInterface $request) private function isMaintenanceModeEnabled()
{ {
/** @var \ACP3\Core\Http\Request $request */
$request = $this->container->get('core.http.request');
return (bool)$this->systemSettings['maintenance_mode'] === true && return (bool)$this->systemSettings['maintenance_mode'] === true &&
$request->getArea() !== AreaEnum::AREA_ADMIN && $request->getArea() !== AreaEnum::AREA_ADMIN &&
strpos($request->getQuery(), 'users/index/login/') !== 0; strpos($request->getQuery(), 'users/index/login/') !== 0;
...@@ -163,7 +161,7 @@ class Bootstrap extends AbstractBootstrap ...@@ -163,7 +161,7 @@ class Bootstrap extends AbstractBootstrap
'CONTENT' => $this->systemSettings['maintenance_message'] 'CONTENT' => $this->systemSettings['maintenance_message']
]); ]);
$response = new Response($view->fetchTemplate('system/maintenance.tpl')); $response = new Response($view->fetchTemplate('System/layout.maintenance.tpl'));
$response->setStatusCode(Response::HTTP_SERVICE_UNAVAILABLE); $response->setStatusCode(Response::HTTP_SERVICE_UNAVAILABLE);
return $response; return $response;
...@@ -171,16 +169,18 @@ class Bootstrap extends AbstractBootstrap ...@@ -171,16 +169,18 @@ class Bootstrap extends AbstractBootstrap
/** /**
* @param \Exception $exception * @param \Exception $exception
* @param \ACP3\Core\Http\RedirectResponse $redirect
* @param string $route * @param string $route
* @return Response * @return Response
*/ */
private function handleException(\Exception $exception, RedirectResponse $redirect, $route) private function handleException(\Exception $exception, $route)
{ {
if ($this->appMode === ApplicationMode::DEVELOPMENT) { if ($this->appMode === ApplicationMode::DEVELOPMENT) {
return $this->renderApplicationException($exception); return $this->renderApplicationException($exception);
} }
/** @var \ACP3\Core\Http\RedirectResponse $redirect */
$redirect = $this->container->get('core.http.redirect_response');
return $redirect->temporary($route); return $redirect->temporary($route);
} }
...@@ -198,10 +198,10 @@ class Bootstrap extends AbstractBootstrap ...@@ -198,10 +198,10 @@ class Bootstrap extends AbstractBootstrap
$view->assign([ $view->assign([
'PAGE_TITLE' => 'ACP3', 'PAGE_TITLE' => 'ACP3',
'ROOT_DIR' => $this->appPath->getWebRoot(), 'ROOT_DIR' => $this->appPath->getWebRoot(),
'EXCEPTION' => $exception 'EXCEPTION' => $exception,
]); ]);
$response = new Response($view->fetchTemplate('system/exception.tpl')); $response = new Response($view->fetchTemplate('System/layout.exception.tpl'));
$response->setStatusCode(Response::HTTP_INTERNAL_SERVER_ERROR); $response->setStatusCode(Response::HTTP_INTERNAL_SERVER_ERROR);
return $response; return $response;
......
...@@ -14,7 +14,7 @@ interface BootstrapInterface extends HttpKernelInterface ...@@ -14,7 +14,7 @@ interface BootstrapInterface extends HttpKernelInterface
/** /**
* Contains the current ACP3 version string * Contains the current ACP3 version string
*/ */
const VERSION = '4.14.0'; const VERSION = '4.15.0';
/** /**
* Performs some startup checks * Performs some startup checks
......
...@@ -132,7 +132,8 @@ class ControllerActionDispatcher ...@@ -132,7 +132,8 @@ class ControllerActionDispatcher
private function getCallable(ActionInterface $controller) private function getCallable(ActionInterface $controller)
{ {
$callable = [$controller, 'execute']; $callable = [$controller, 'execute'];
if ($this->request->getPost()->has('submit') && method_exists($controller, 'executePost')) { if (($this->request->getPost()->has('submit') || $this->request->getPost()->has('continue'))
&& method_exists($controller, 'executePost')) {
$reflection = new \ReflectionMethod($controller, 'executePost'); $reflection = new \ReflectionMethod($controller, 'executePost');
if ($reflection->isPublic()) { if ($reflection->isPublic()) {
......
...@@ -90,7 +90,7 @@ class Action ...@@ -90,7 +90,7 @@ class Action
{ {
$errors = $this->alerts->errorBox($exception->getMessage()); $errors = $this->alerts->errorBox($exception->getMessage());
if ($this->request->isXmlHttpRequest()) { if ($this->request->isXmlHttpRequest()) {
return new Response($errors, 400); return new Response($errors, Response::HTTP_BAD_REQUEST);
} }
return ['error_msg' => $errors]; return ['error_msg' => $errors];
...@@ -222,7 +222,7 @@ class Action ...@@ -222,7 +222,7 @@ class Action
return $this->redirectMessages->setMessage( return $this->redirectMessages->setMessage(
$result, $result,
$this->translator->t('system', $phrase . ($result !== false ? '_success' : '_error')), $this->translator->t('system', $phrase . ($result !== false ? '_success' : '_error')),
$path $this->request->getPost()->has('continue') ? $this->request->getPathInfo() : $path
); );
} }
......
<?php
/**
* Copyright (c) by the ACP3 Developers.
* See the LICENCE file at the top-level module directory for licencing details.
*/
namespace ACP3\Core\View\Renderer\Smarty\Functions;
use ACP3\Core\Breadcrumb\Title;
class SiteSubtitle extends AbstractFunction
{
/**
* @var \ACP3\Core\Breadcrumb\Title
*/
protected $title;
/**
* @param \ACP3\Core\Breadcrumb\Title $title
*/
public function __construct(Title $title)
{
$this->title = $title;
}
/**
* @param array $params
* @param \Smarty_Internal_Template $smarty
*
* @return string
*/
public function process(array $params, \Smarty_Internal_Template $smarty)
{
return $this->title->getSiteSubtitle();
}
/**
* @inheritdoc
*/
public function getExtensionName()
{
return 'site_subtitle';
}
}
...@@ -120,6 +120,14 @@ services: ...@@ -120,6 +120,14 @@ services:
- { name: core.view.extension } - { name: core.view.extension }
public: false public: false
smarty.plugin.site_subtitle:
class: ACP3\Core\View\Renderer\Smarty\Functions\SiteSubtitle
arguments:
- '@core.breadcrumb.title'
tags:
- { name: core.view.extension }
public: false
smarty.plugin.template_path: smarty.plugin.template_path:
class: ACP3\Core\View\Renderer\Smarty\Functions\TemplatePath class: ACP3\Core\View\Renderer\Smarty\Functions\TemplatePath
arguments: ['@core.assets.file_resolver'] arguments: ['@core.assets.file_resolver']
......
...@@ -17,12 +17,12 @@ ...@@ -17,12 +17,12 @@
"prefer-stable": true, "prefer-stable": true,
"require": { "require": {
"acp3/composer-installer": "^1.0", "acp3/composer-installer": "^1.0",
"acp3/core": "^4.14.0", "acp3/core": "^4.15.0",
"acp3/setup": "^4.14.0", "acp3/setup": "^4.15.0",
"acp3/module-errors": "^4.14.0", "acp3/module-errors": "^4.15.0",
"acp3/module-permissions": "^4.14.0", "acp3/module-permissions": "^4.15.0",
"acp3/module-system": "^4.14.0", "acp3/module-system": "^4.15.0",
"acp3/module-users": "^4.14.0" "acp3/module-users": "^4.15.0"
}, },
"autoload": { "autoload": {
"psr-4": { "psr-4": {
......
...@@ -21,7 +21,7 @@ ...@@ -21,7 +21,7 @@
{event name="seo.layout.render_form_fields" uri_pattern=$SEO_URI_PATTERN path=$SEO_ROUTE_NAME} {event name="seo.layout.render_form_fields" uri_pattern=$SEO_URI_PATTERN path=$SEO_ROUTE_NAME}
</div> </div>
</div> </div>
{include file="asset:System/Partials/form_group.submit.tpl" form_token=$form_token back_url={uri args="acp/articles"}} {include file="asset:System/Partials/form_group.submit_split.tpl" form_token=$form_token back_url={uri args="acp/articles"}}
{javascripts} {javascripts}
{include_js module="articles" file="admin/index.create"} {include_js module="articles" file="admin/index.create"}
{/javascripts} {/javascripts}
......
...@@ -17,12 +17,12 @@ ...@@ -17,12 +17,12 @@
"prefer-stable": true, "prefer-stable": true,
"require": { "require": {
"acp3/composer-installer": "^1.0", "acp3/composer-installer": "^1.0",
"acp3/core": "^4.14.0", "acp3/core": "^4.15.0",
"acp3/setup": "^4.14.0", "acp3/setup": "^4.15.0",
"acp3/module-errors": "^4.14.0", "acp3/module-errors": "^4.15.0",
"acp3/module-permissions": "^4.14.0", "acp3/module-permissions": "^4.15.0",
"acp3/module-system": "^4.14.0", "acp3/module-system": "^4.15.0",
"acp3/module-users": "^4.14.0" "acp3/module-users": "^4.15.0"
}, },
"suggest": { "suggest": {
"acp3/module-seo": "Provides additional SEO capabilities" "acp3/module-seo": "Provides additional SEO capabilities"
......
...@@ -3,5 +3,5 @@ ...@@ -3,5 +3,5 @@
{block CONTENT_AJAX_FORM} {block CONTENT_AJAX_FORM}
{include file="asset:System/Partials/form_group.select.tpl" options=$captchas required=true label={lang t="captcha|captcha_type"}} {include file="asset:System/Partials/form_group.select.tpl" options=$captchas required=true label={lang t="captcha|captcha_type"}}
{event name="captcha.admin_settings.custom_fields" form=$form} {event name="captcha.admin_settings.custom_fields" form=$form}
{include file="asset:System/Partials/form_group.submit.tpl" form_token=$form_token back_url={uri args="acp/captcha"}} {include file="asset:System/Partials/form_group.submit_split.tpl" form_token=$form_token back_url={uri args="acp/captcha"}}
{/block} {/block}
...@@ -17,12 +17,12 @@ ...@@ -17,12 +17,12 @@
"prefer-stable": true, "prefer-stable": true,
"require": { "require": {
"acp3/composer-installer": "^1.0", "acp3/composer-installer": "^1.0",
"acp3/core": "^4.14.0", "acp3/core": "^4.15.0",
"acp3/setup": "^4.14.0", "acp3/setup": "^4.15.0",
"acp3/module-errors": "^4.14.0", "acp3/module-errors": "^4.15.0",
"acp3/module-permissions": "^4.14.0", "acp3/module-permissions": "^4.15.0",
"acp3/module-system": "^4.14.0", "acp3/module-system": "^4.15.0",
"acp3/module-users": "^4.14.0", "acp3/module-users": "^4.15.0",
"google/recaptcha": "^1.1.0" "google/recaptcha": "^1.1.0"
}, },
"autoload": { "autoload": {
......
...@@ -19,5 +19,5 @@ ...@@ -19,5 +19,5 @@
</div> </div>
</div> </div>
{/block} {/block}
{include file="asset:System/Partials/form_group.submit.tpl" form_token=$form_token back_url={uri args="acp/categories"}} {include file="asset:System/Partials/form_group.submit_split.tpl" form_token=$form_token back_url={uri args="acp/categories"}}
{/block} {/block}
...@@ -4,5 +4,5 @@ ...@@ -4,5 +4,5 @@
{include file="asset:System/Partials/form_group.input_number.tpl" name="width" value=$form.width required=true label={lang t="categories|image_width"} input_group_after={lang t="system|pixel"}} {include file="asset:System/Partials/form_group.input_number.tpl" name="width" value=$form.width required=true label={lang t="categories|image_width"} input_group_after={lang t="system|pixel"}}
{include file="asset:System/Partials/form_group.input_number.tpl" name="height" value=$form.height required=true label={lang t="categories|image_height"} input_group_after={lang t="system|pixel"}} {include file="asset:System/Partials/form_group.input_number.tpl" name="height" value=$form.height required=true label={lang t="categories|image_height"} input_group_after={lang t="system|pixel"}}
{include file="asset:System/Partials/form_group.input_number.tpl" name="filesize" value=$form.filesize required=true label={lang t="categories|image_filesize"} input_group_after={lang t="system|byte"}} {include file="asset:System/Partials/form_group.input_number.tpl" name="filesize" value=$form.filesize required=true label={lang t="categories|image_filesize"} input_group_after={lang t="system|byte"}}
{include file="asset:System/Partials/form_group.submit.tpl" form_token=$form_token back_url={uri args="acp/categories"}} {include file="asset:System/Partials/form_group.submit_split.tpl" form_token=$form_token back_url={uri args="acp/categories"}}
{/block} {/block}
...@@ -17,12 +17,12 @@ ...@@ -17,12 +17,12 @@
"prefer-stable": true, "prefer-stable": true,
"require": { "require": {
"acp3/composer-installer": "^1.0", "acp3/composer-installer": "^1.0",
"acp3/core": "^4.14.0", "acp3/core": "^4.15.0",
"acp3/setup": "^4.14.0", "acp3/setup": "^4.15.0",
"acp3/module-errors": "^4.14.0", "acp3/module-errors": "^4.15.0",
"acp3/module-permissions": "^4.14.0", "acp3/module-permissions": "^4.15.0",
"acp3/module-system": "^4.14.0", "acp3/module-system": "^4.15.0",
"acp3/module-users": "^4.14.0" "acp3/module-users": "^4.15.0"
}, },
"autoload": { "autoload": {
"psr-4": { "psr-4": {
......
...@@ -16,5 +16,5 @@ ...@@ -16,5 +16,5 @@
<textarea class="form-control" name="message" id="message" cols="50" rows="5" required>{$form.message}</textarea> <textarea class="form-control" name="message" id="message" cols="50" rows="5" required>{$form.message}</textarea>
</div> </div>
</div> </div>
{include file="asset:System/Partials/form_group.submit.tpl" form_token=$form_token back_url={uri args="acp/comments/details/index/id_`$module_id`"}} {include file="asset:System/Partials/form_group.submit_split.tpl" form_token=$form_token back_url={uri args="acp/comments/details/index/id_`$module_id`"}}
{/block} {/block}
...@@ -5,5 +5,5 @@ ...@@ -5,5 +5,5 @@
{if isset($allow_emoticons)} {if isset($allow_emoticons)}
{include file="asset:System/Partials/form_group.button_group.tpl" options=$allow_emoticons required=true label={lang t="comments|allow_emoticons"}} {include file="asset:System/Partials/form_group.button_group.tpl" options=$allow_emoticons required=true label={lang t="comments|allow_emoticons"}}
{/if} {/if}
{include file="asset:System/Partials/form_group.submit.tpl" form_token=$form_token back_url={uri args="acp/comments"}} {include file="asset:System/Partials/form_group.submit_split.tpl" form_token=$form_token back_url={uri args="acp/comments"}}
{/block} {/block}
...@@ -17,12 +17,12 @@ ...@@ -17,12 +17,12 @@
"prefer-stable": true, "prefer-stable": true,
"require": { "require": {
"acp3/composer-installer": "^1.0", "acp3/composer-installer": "^1.0",
"acp3/core": "^4.14.0", "acp3/core": "^4.15.0",
"acp3/setup": "^4.14.0", "acp3/setup": "^4.15.0",
"acp3/module-errors": "^4.14.0", "acp3/module-errors": "^4.15.0",
"acp3/module-permissions": "^4.14.0", "acp3/module-permissions": "^4.15.0",
"acp3/module-system": "^4.14.0", "acp3/module-system": "^4.15.0",
"acp3/module-users": "^4.14.0" "acp3/module-users": "^4.15.0"
}, },
"suggest": { "suggest": {
"acp3/module-captcha": "Provides basic protection against spam bots." "acp3/module-captcha": "Provides basic protection against spam bots."
......
...@@ -22,5 +22,5 @@ ...@@ -22,5 +22,5 @@
</div> </div>
</div> </div>
</div> </div>
{include file="asset:System/Partials/form_group.submit.tpl" form_token=$form_token back_url={uri args="acp/contact"}} {include file="asset:System/Partials/form_group.submit_split.tpl" form_token=$form_token back_url={uri args="acp/contact"}}
{/block} {/block}
...@@ -17,12 +17,12 @@ ...@@ -17,12 +17,12 @@
"prefer-stable": true, "prefer-stable": true,
"require": { "require": {
"acp3/composer-installer": "^1.0", "acp3/composer-installer": "^1.0",
"acp3/core": "^4.14.0", "acp3/core": "^4.15.0",
"acp3/setup": "^4.14.0", "acp3/setup": "^4.15.0",
"acp3/module-errors": "^4.14.0", "acp3/module-errors": "^4.15.0",
"acp3/module-permissions": "^4.14.0", "acp3/module-permissions": "^4.15.0",
"acp3/module-system": "^4.14.0", "acp3/module-system": "^4.15.0",
"acp3/module-users": "^4.14.0" "acp3/module-users": "^4.15.0"
}, },
"suggest": { "suggest": {
"acp3/module-captcha": "Provides basic protection against spam bots." "acp3/module-captcha": "Provides basic protection against spam bots."
......
...@@ -8,5 +8,5 @@ ...@@ -8,5 +8,5 @@
{block EMOTICONS_PICTURE_UPLOAD} {block EMOTICONS_PICTURE_UPLOAD}
{include file="asset:System/Partials/form_group.input_file.tpl" name="picture" required=true label={lang t="emoticons|picture"}} {include file="asset:System/Partials/form_group.input_file.tpl" name="picture" required=true label={lang t="emoticons|picture"}}
{/block} {/block}
{include file="asset:System/Partials/form_group.submit.tpl" form_token=$form_token back_url={uri args="acp/emoticons"}} {include file="asset:System/Partials/form_group.submit_split.tpl" form_token=$form_token back_url={uri args="acp/emoticons"}}
{/block} {/block}
...@@ -4,5 +4,5 @@ ...@@ -4,5 +4,5 @@
{include file="asset:System/Partials/form_group.input_number.tpl" name="width" value=$form.width required=true label={lang t="emoticons|image_width"} input_group_after={lang t="system|pixel"}} {include file="asset:System/Partials/form_group.input_number.tpl" name="width" value=$form.width required=true label={lang t="emoticons|image_width"} input_group_after={lang t="system|pixel"}}
{include file="asset:System/Partials/form_group.input_number.tpl" name="height" value=$form.height required=true label={lang t="emoticons|image_height"} input_group_after={lang t="system|pixel"}} {include file="asset:System/Partials/form_group.input_number.tpl" name="height" value=$form.height required=true label={lang t="emoticons|image_height"} input_group_after={lang t="system|pixel"}}
{include file="asset:System/Partials/form_group.input_number.tpl" name="filesize" value=$form.filesize required=true label={lang t="emoticons|image_filesize"} input_group_after={lang t="system|byte"}} {include file="asset:System/Partials/form_group.input_number.tpl" name="filesize" value=$form.filesize required=true label={lang t="emoticons|image_filesize"} input_group_after={lang t="system|byte"}}
{include file="asset:System/Partials/form_group.submit.tpl" form_token=$form_token back_url={uri args="acp/emoticons"}} {include file="asset:System/Partials/form_group.submit_split.tpl" form_token=$form_token back_url={uri args="acp/emoticons"}}
{/block} {/block}
...@@ -17,12 +17,12 @@ ...@@ -17,12 +17,12 @@
"prefer-stable": true, "prefer-stable": true,
"require": { "require": {
"acp3/composer-installer": "^1.0", "acp3/composer-installer": "^1.0",
"acp3/core": "^4.14.0", "acp3/core": "^4.15.0",
"acp3/setup": "^4.14.0", "acp3/setup": "^4.15.0",
"acp3/module-errors": "^4.14.0", "acp3/module-errors": "^4.15.0",
"acp3/module-permissions": "^4.14.0", "acp3/module-permissions": "^4.15.0",
"acp3/module-system": "^4.14.0", "acp3/module-system": "^4.15.0",
"acp3/module-users": "^4.14.0" "acp3/module-users": "^4.15.0"
}, },
"autoload": { "autoload": {
"psr-4": { "psr-4": {
......
...@@ -17,11 +17,11 @@ ...@@ -17,11 +17,11 @@
"prefer-stable": true, "prefer-stable": true,
"require": { "require": {
"acp3/composer-installer": "^1.0", "acp3/composer-installer": "^1.0",
"acp3/core": "^4.14.0", "acp3/core": "^4.15.0",
"acp3/setup": "^4.14.0", "acp3/setup": "^4.15.0",
"acp3/module-permissions": "^4.14.0", "acp3/module-permissions": "^4.15.0",
"acp3/module-system": "^4.14.0", "acp3/module-system": "^4.15.0",
"acp3/module-users": "^4.14.0" "acp3/module-users": "^4.15.0"
}, },
"autoload": { "autoload": {
"psr-4": { "psr-4": {
......
...@@ -3,5 +3,5 @@ ...@@ -3,5 +3,5 @@
{block CONTENT_AJAX_FORM} {block CONTENT_AJAX_FORM}
{include file="asset:System/Partials/form_group.input_text.tpl" name="feed_image" value=$form.feed_image maxlength=120 label={lang t="feeds|feed_image"}} {include file="asset:System/Partials/form_group.input_text.tpl" name="feed_image" value=$form.feed_image maxlength=120 label={lang t="feeds|feed_image"}}
{include file="asset:System/Partials/form_group.select.tpl" options=$feed_types required=true label={lang t="feeds|feed_type"}} {include file="asset:System/Partials/form_group.select.tpl" options=$feed_types required=true label={lang t="feeds|feed_type"}}
{include file="asset:System/Partials/form_group.submit.tpl" form_token=$form_token back_url={uri args="acp/feeds"}} {include file="asset:System/Partials/form_group.submit_split.tpl" form_token=$form_token back_url={uri args="acp/feeds"}}
{/block} {/block}
...@@ -17,12 +17,12 @@ ...@@ -17,12 +17,12 @@
"prefer-stable": true, "prefer-stable": true,
"require": { "require": {
"acp3/composer-installer": "^1.0", "acp3/composer-installer": "^1.0",
"acp3/core": "^4.14.0", "acp3/core": "^4.15.0",
"acp3/setup": "^4.14.0", "acp3/setup": "^4.15.0",
"acp3/module-errors": "^4.14.0", "acp3/module-errors": "^4.15.0",
"acp3/module-permissions": "^4.14.0", "acp3/module-permissions": "^4.15.0",
"acp3/module-system": "^4.14.0", "acp3/module-system": "^4.15.0",
"acp3/module-users": "^4.14.0", "acp3/module-users": "^4.15.0",
"mibe/feedwriter": "^1.0" "mibe/feedwriter": "^1.0"
}, },
"autoload": { "autoload": {
......
...@@ -17,12 +17,12 @@ ...@@ -17,12 +17,12 @@
"prefer-stable": true, "prefer-stable": true,
"require": { "require": {
"acp3/composer-installer": "^1.0", "acp3/composer-installer": "^1.0",
"acp3/core": "^4.14.0", "acp3/core": "^4.15.0",
"acp3/setup": "^4.14.0", "acp3/setup": "^4.15.0",
"acp3/module-errors": "^4.14.0", "acp3/module-errors": "^4.15.0",
"acp3/module-permissions": "^4.14.0", "acp3/module-permissions": "^4.15.0",
"acp3/module-system": "^4.14.0", "acp3/module-system": "^4.15.0",
"acp3/module-users": "^4.14.0" "acp3/module-users": "^4.15.0"
}, },
"autoload": { "autoload": {
"psr-4": { "psr-4": {
......
...@@ -87,6 +87,11 @@ class Migration extends Modules\Installer\AbstractMigration ...@@ -87,6 +87,11 @@ class Migration extends Modules\Installer\AbstractMigration
46 => [ 46 => [
"INSERT INTO `{pre}settings` (`id`, `module_id`, `name`, `value`) VALUES ('', '{moduleId}', 'order_by', 'date');", "INSERT INTO `{pre}settings` (`id`, `module_id`, `name`, `value`) VALUES ('', '{moduleId}', 'order_by', 'date');",
"INSERT INTO `{pre}acl_resources` (`id`, `module_id`, `area`, `controller`, `page`, `params`, `privilege_id`) VALUES('', '{moduleId}', 'admin', 'index', 'sort', '', 4);", "INSERT INTO `{pre}acl_resources` (`id`, `module_id`, `area`, `controller`, `page`, `params`, `privilege_id`) VALUES('', '{moduleId}', 'admin', 'index', 'sort', '', 4);",
],
47 => [
"ALTER TABLE `{pre}files` CHANGE `category_id` `category_id` INT(10) UNSIGNED;",
"ALTER TABLE `{pre}files` DROP FOREIGN KEY `{pre}files_ibfk_1`;",
"ALTER TABLE `{pre}files` ADD FOREIGN KEY (`category_id`) REFERENCES `{pre}categories` (`id`) ON DELETE SET NULL",
] ]
]; ];
} }
......
...@@ -59,7 +59,7 @@ class Schema implements Modules\Installer\SchemaInterface ...@@ -59,7 +59,7 @@ class Schema implements Modules\Installer\SchemaInterface