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;
use ACP3\Core\Controller\AreaEnum;
use ACP3\Core\DependencyInjection\ServiceContainerBuilder;
use ACP3\Core\Environment\ApplicationMode;
use ACP3\Core\Http\RedirectResponse;
use ACP3\Core\Http\RequestInterface;
use ACP3\Core\View;
use ACP3\Modules\ACP3\System\Installer\Schema;
use Patchwork\Utf8;
......@@ -84,9 +82,6 @@ class Bootstrap extends AbstractBootstrap
*/
public function outputPage()
{
/** @var \ACP3\Core\Http\Request $request */
$request = $this->container->get('core.http.request');
/** @var \ACP3\Core\Http\RedirectResponse $redirect */
$redirect = $this->container->get('core.http.redirect_response');
......@@ -95,7 +90,7 @@ class Bootstrap extends AbstractBootstrap
$this->setThemePaths();
$this->container->get('core.authentication')->authenticate();
if ($this->isMaintenanceModeEnabled($request)) {
if ($this->isMaintenanceModeEnabled()) {
return $this->handleMaintenanceMode();
}
......@@ -103,16 +98,18 @@ class Bootstrap extends AbstractBootstrap
} catch (\ACP3\Core\Controller\Exception\ResultNotExistsException $e) {
$response = $redirect->temporary('errors/index/not_found');
} 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());
$response = $redirect->temporary('users/index/login/redirect_' . $redirectUri);
} catch (\ACP3\Core\ACL\Exception\AccessForbiddenException $e) {
$response = $redirect->temporary('errors/index/access_forbidden');
} 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) {
$this->logger->critical($e);
$response = $this->handleException($e, $redirect, 'errors/index/server_error');
$response = $this->handleException($e, 'errors/index/server_error');
}
return $response;
......@@ -138,12 +135,13 @@ class Bootstrap extends AbstractBootstrap
/**
* Checks, whether the maintenance mode is active
*
* @param \ACP3\Core\Http\RequestInterface $request
*
* @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 &&
$request->getArea() !== AreaEnum::AREA_ADMIN &&
strpos($request->getQuery(), 'users/index/login/') !== 0;
......@@ -163,7 +161,7 @@ class Bootstrap extends AbstractBootstrap
'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);
return $response;
......@@ -171,16 +169,18 @@ class Bootstrap extends AbstractBootstrap
/**
* @param \Exception $exception
* @param \ACP3\Core\Http\RedirectResponse $redirect
* @param string $route
* @return Response
*/
private function handleException(\Exception $exception, RedirectResponse $redirect, $route)
private function handleException(\Exception $exception, $route)
{
if ($this->appMode === ApplicationMode::DEVELOPMENT) {
return $this->renderApplicationException($exception);
}
/** @var \ACP3\Core\Http\RedirectResponse $redirect */
$redirect = $this->container->get('core.http.redirect_response');
return $redirect->temporary($route);
}
......@@ -198,10 +198,10 @@ class Bootstrap extends AbstractBootstrap
$view->assign([
'PAGE_TITLE' => 'ACP3',
'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);
return $response;
......
......@@ -14,7 +14,7 @@ interface BootstrapInterface extends HttpKernelInterface
/**
* Contains the current ACP3 version string
*/
const VERSION = '4.14.0';
const VERSION = '4.15.0';
/**
* Performs some startup checks
......
......@@ -132,7 +132,8 @@ class ControllerActionDispatcher
private function getCallable(ActionInterface $controller)
{
$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');
if ($reflection->isPublic()) {
......
......@@ -90,7 +90,7 @@ class Action
{
$errors = $this->alerts->errorBox($exception->getMessage());
if ($this->request->isXmlHttpRequest()) {
return new Response($errors, 400);
return new Response($errors, Response::HTTP_BAD_REQUEST);
}
return ['error_msg' => $errors];
......@@ -222,7 +222,7 @@ class Action
return $this->redirectMessages->setMessage(
$result,
$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:
- { name: core.view.extension }
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:
class: ACP3\Core\View\Renderer\Smarty\Functions\TemplatePath
arguments: ['@core.assets.file_resolver']
......
......@@ -17,12 +17,12 @@
"prefer-stable": true,
"require": {
"acp3/composer-installer": "^1.0",
"acp3/core": "^4.14.0",
"acp3/setup": "^4.14.0",
"acp3/module-errors": "^4.14.0",
"acp3/module-permissions": "^4.14.0",
"acp3/module-system": "^4.14.0",
"acp3/module-users": "^4.14.0"
"acp3/core": "^4.15.0",
"acp3/setup": "^4.15.0",
"acp3/module-errors": "^4.15.0",
"acp3/module-permissions": "^4.15.0",
"acp3/module-system": "^4.15.0",
"acp3/module-users": "^4.15.0"
},
"autoload": {
"psr-4": {
......
......@@ -21,7 +21,7 @@
{event name="seo.layout.render_form_fields" uri_pattern=$SEO_URI_PATTERN path=$SEO_ROUTE_NAME}
</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}
{include_js module="articles" file="admin/index.create"}
{/javascripts}
......
......@@ -17,12 +17,12 @@
"prefer-stable": true,
"require": {
"acp3/composer-installer": "^1.0",
"acp3/core": "^4.14.0",
"acp3/setup": "^4.14.0",
"acp3/module-errors": "^4.14.0",
"acp3/module-permissions": "^4.14.0",
"acp3/module-system": "^4.14.0",
"acp3/module-users": "^4.14.0"
"acp3/core": "^4.15.0",
"acp3/setup": "^4.15.0",
"acp3/module-errors": "^4.15.0",
"acp3/module-permissions": "^4.15.0",
"acp3/module-system": "^4.15.0",
"acp3/module-users": "^4.15.0"
},
"suggest": {
"acp3/module-seo": "Provides additional SEO capabilities"
......
......@@ -3,5 +3,5 @@
{block CONTENT_AJAX_FORM}
{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}
{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}
......@@ -17,12 +17,12 @@
"prefer-stable": true,
"require": {
"acp3/composer-installer": "^1.0",
"acp3/core": "^4.14.0",
"acp3/setup": "^4.14.0",
"acp3/module-errors": "^4.14.0",
"acp3/module-permissions": "^4.14.0",
"acp3/module-system": "^4.14.0",
"acp3/module-users": "^4.14.0",
"acp3/core": "^4.15.0",
"acp3/setup": "^4.15.0",
"acp3/module-errors": "^4.15.0",
"acp3/module-permissions": "^4.15.0",
"acp3/module-system": "^4.15.0",
"acp3/module-users": "^4.15.0",
"google/recaptcha": "^1.1.0"
},
"autoload": {
......
......@@ -19,5 +19,5 @@
</div>
</div>
{/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}
......@@ -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="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.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}
......@@ -17,12 +17,12 @@
"prefer-stable": true,
"require": {
"acp3/composer-installer": "^1.0",
"acp3/core": "^4.14.0",
"acp3/setup": "^4.14.0",
"acp3/module-errors": "^4.14.0",
"acp3/module-permissions": "^4.14.0",
"acp3/module-system": "^4.14.0",
"acp3/module-users": "^4.14.0"
"acp3/core": "^4.15.0",
"acp3/setup": "^4.15.0",
"acp3/module-errors": "^4.15.0",
"acp3/module-permissions": "^4.15.0",
"acp3/module-system": "^4.15.0",
"acp3/module-users": "^4.15.0"
},
"autoload": {
"psr-4": {
......
......@@ -16,5 +16,5 @@
<textarea class="form-control" name="message" id="message" cols="50" rows="5" required>{$form.message}</textarea>
</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}
......@@ -5,5 +5,5 @@
{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"}}
{/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}
......@@ -17,12 +17,12 @@
"prefer-stable": true,
"require": {
"acp3/composer-installer": "^1.0",
"acp3/core": "^4.14.0",
"acp3/setup": "^4.14.0",
"acp3/module-errors": "^4.14.0",
"acp3/module-permissions": "^4.14.0",
"acp3/module-system": "^4.14.0",
"acp3/module-users": "^4.14.0"
"acp3/core": "^4.15.0",
"acp3/setup": "^4.15.0",
"acp3/module-errors": "^4.15.0",
"acp3/module-permissions": "^4.15.0",
"acp3/module-system": "^4.15.0",
"acp3/module-users": "^4.15.0"
},
"suggest": {
"acp3/module-captcha": "Provides basic protection against spam bots."
......
......@@ -22,5 +22,5 @@
</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}
......@@ -17,12 +17,12 @@
"prefer-stable": true,
"require": {
"acp3/composer-installer": "^1.0",
"acp3/core": "^4.14.0",
"acp3/setup": "^4.14.0",
"acp3/module-errors": "^4.14.0",
"acp3/module-permissions": "^4.14.0",
"acp3/module-system": "^4.14.0",
"acp3/module-users": "^4.14.0"
"acp3/core": "^4.15.0",
"acp3/setup": "^4.15.0",
"acp3/module-errors": "^4.15.0",
"acp3/module-permissions": "^4.15.0",
"acp3/module-system": "^4.15.0",
"acp3/module-users": "^4.15.0"
},
"suggest": {
"acp3/module-captcha": "Provides basic protection against spam bots."
......
......@@ -8,5 +8,5 @@
{block EMOTICONS_PICTURE_UPLOAD}
{include file="asset:System/Partials/form_group.input_file.tpl" name="picture" required=true label={lang t="emoticons|picture"}}
{/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}
......@@ -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="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.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}
......@@ -17,12 +17,12 @@
"prefer-stable": true,
"require": {
"acp3/composer-installer": "^1.0",
"acp3/core": "^4.14.0",
"acp3/setup": "^4.14.0",
"acp3/module-errors": "^4.14.0",
"acp3/module-permissions": "^4.14.0",
"acp3/module-system": "^4.14.0",
"acp3/module-users": "^4.14.0"
"acp3/core": "^4.15.0",
"acp3/setup": "^4.15.0",
"acp3/module-errors": "^4.15.0",
"acp3/module-permissions": "^4.15.0",
"acp3/module-system": "^4.15.0",
"acp3/module-users": "^4.15.0"
},
"autoload": {
"psr-4": {
......
......@@ -17,11 +17,11 @@
"prefer-stable": true,
"require": {
"acp3/composer-installer": "^1.0",
"acp3/core": "^4.14.0",
"acp3/setup": "^4.14.0",
"acp3/module-permissions": "^4.14.0",
"acp3/module-system": "^4.14.0",
"acp3/module-users": "^4.14.0"
"acp3/core": "^4.15.0",
"acp3/setup": "^4.15.0",
"acp3/module-permissions": "^4.15.0",
"acp3/module-system": "^4.15.0",
"acp3/module-users": "^4.15.0"
},
"autoload": {
"psr-4": {
......
......@@ -3,5 +3,5 @@
{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.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}
......@@ -17,12 +17,12 @@
"prefer-stable": true,
"require": {
"acp3/composer-installer": "^1.0",
"acp3/core": "^4.14.0",
"acp3/setup": "^4.14.0",
"acp3/module-errors": "^4.14.0",
"acp3/module-permissions": "^4.14.0",
"acp3/module-system": "^4.14.0",
"acp3/module-users": "^4.14.0",
"acp3/core": "^4.15.0",
"acp3/setup": "^4.15.0",
"acp3/module-errors": "^4.15.0",
"acp3/module-permissions": "^4.15.0",
"acp3/module-system": "^4.15.0",
"acp3/module-users": "^4.15.0",
"mibe/feedwriter": "^1.0"
},
"autoload": {
......
......@@ -17,12 +17,12 @@
"prefer-stable": true,
"require": {
"acp3/composer-installer": "^1.0",
"acp3/core": "^4.14.0",
"acp3/setup": "^4.14.0",
"acp3/module-errors": "^4.14.0",
"acp3/module-permissions": "^4.14.0",
"acp3/module-system": "^4.14.0",
"acp3/module-users": "^4.14.0"
"acp3/core": "^4.15.0",
"acp3/setup": "^4.15.0",
"acp3/module-errors": "^4.15.0",
"acp3/module-permissions": "^4.15.0",
"acp3/module-system": "^4.15.0",
"acp3/module-users": "^4.15.0"
},
"autoload": {
"psr-4": {
......
......@@ -87,6 +87,11 @@ class Migration extends Modules\Installer\AbstractMigration
46 => [
"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);",
],
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
*/
public function getSchemaVersion()
{
return 46;
return 47;
}
/**
......@@ -74,7 +74,7 @@ class Schema implements Modules\Installer\SchemaInterface
`start` DATETIME NOT NULL,
`end` DATETIME NOT NULL,
`updated_at` DATETIME NOT NULL,
`category_id` INT(10) UNSIGNED NOT NULL,
`category_id` INT(10) UNSIGNED,
`file` VARCHAR(120) NOT NULL,
`size` VARCHAR(20) NOT NULL,
`title` VARCHAR(255) NOT NULL,
......@@ -87,7 +87,7 @@ class Schema implements Modules\Installer\SchemaInterface
INDEX `foreign_category_id` (`category_id`),
INDEX (`user_id`),
INDEX (`sort`),
FOREIGN KEY (`category_id`) REFERENCES `{pre}categories` (`id`) ON DELETE CASCADE,
FOREIGN KEY (`category_id`) REFERENCES `{pre}categories` (`id`) ON DELETE SET NULL,
FOREIGN KEY (`user_id`) REFERENCES `{pre}users` (`id`) ON DELETE SET NULL
) {ENGINE} {CHARSET};"
];
......
......@@ -60,7 +60,7 @@
{event name="seo.layout.render_form_fields" uri_pattern=$SEO_URI_PATTERN path=$SEO_ROUTE_NAME}
</div>
</div>
{include file="asset:System/Partials/form_group.submit.tpl" form_token=$form_token back_url={uri args="acp/files"}}
{include file="asset:System/Partials/form_group.submit_split.tpl" form_token=$form_token back_url={uri args="acp/files"}}
{javascripts}
{include_js module="files" file="admin/index.create"}
{/javascripts}
......
......@@ -7,5 +7,5 @@
{if isset($comments)}
{include file="asset:System/Partials/form_group.button_group.tpl" options=$comments required=true label={lang t="system|allow_comments"}}
{/if}
{include file="asset:System/Partials/form_group.submit.tpl" form_token=$form_token back_url={uri args="acp/files"}}
{include file="asset:System/Partials/form_group.submit_split.tpl" form_token=$form_token back_url={uri args="acp/files"}}
{/block}
......@@ -17,13 +17,13 @@
"prefer-stable": true,
"require": {
"acp3/composer-installer": "^1.0",
"acp3/core": "^4.14.0",
"acp3/setup": "^4.14.0",
"acp3/module-errors": "^4.14.0",
"acp3/module-permissions": "^4.14.0",
"acp3/module-system": "^4.14.0",
"acp3/module-users": "^4.14.0",
"acp3/module-categories": "^4.14.0"
"acp3/core": "^4.15.0",
"acp3/setup": "^4.15.0",
"acp3/module-errors": "^4.15.0",
"acp3/module-permissions": "^4.15.0",
"acp3/module-system": "^4.15.0",
"acp3/module-users": "^4.15.0",
"acp3/module-categories": "^4.15.0"
},
"suggest": {
"acp3/module-seo": "Provides additional SEO capabilities"
......
......@@ -85,7 +85,8 @@ class GeneratePictureUriAliasesOnModelAfterSaveListener
!empty($rawData['alias']) ? $rawData['alias'] . '/img-' . $picture['id'] : '',
$rawData['seo_keywords'],
$rawData['seo_description'],
$rawData['seo_robots']
$rawData['seo_robots'],
$rawData['seo_title']
);
}
}
......@@ -109,6 +110,7 @@ class GeneratePictureUriAliasesOnModelAfterSaveListener
return isset(
$rawData['alias'],
$rawData['seo_title'],
$rawData['seo_keywords'],
$rawData['seo_description'],
$rawData['seo_robots'],
......
......@@ -13,5 +13,5 @@
{event name="seo.layout.render_form_fields" uri_pattern=$SEO_URI_PATTERN path=$SEO_ROUTE_NAME}
</div>
</div>
{include file="asset:System/Partials/form_group.submit.tpl" form_token=$form_token back_url={uri args="acp/gallery"}}
{include file="asset:System/Partials/form_group.submit_split.tpl" form_token=$form_token back_url={uri args="acp/gallery"}}
{/block}
......@@ -25,7 +25,7 @@
</div>
</div>
</div>
{include file="asset:System/Partials/form_group.submit.tpl" form_token=$form_token back_url={uri args="acp/gallery"}}
{include file="asset:System/Partials/form_group.submit_split.tpl" form_token=$form_token back_url={uri args="acp/gallery"}}
{javascripts}
{include_js module="gallery" file="admin/index.settings"}
{/javascripts}
......
......@@ -10,5 +10,5 @@
{if isset($options)}
{include file="asset:System/Partials/form_group.checkbox.tpl" options=$options label={lang t="system|options"}}
{/if}
{include file="asset:System/Partials/form_group.submit.tpl" form_token=$form_token back_url={uri args="acp/gallery/index/edit/id_`$gallery_id`"}}
{include file="asset:System/Partials/form_group.submit_split.tpl" form_token=$form_token back_url={uri args="acp/gallery/index/edit/id_`$gallery_id`"}}
{/block}
......@@ -17,12 +17,12 @@
"prefer-stable": true,
"require": {
"acp3/composer-installer": "^1.0",
"acp3/core": "^4.14.0",
"acp3/setup": "^4.14.0",
"acp3/module-errors": "^4.14.0",
"acp3/module-permissions": "^4.14.0",
"acp3/module-system": "^4.14.0",
"acp3/module-users": "^4.14.0"
"acp3/core": "^4.15.0",
"acp3/setup": "^4.15.0",
"acp3/module-errors": "^4.15.0",
"acp3/module-permissions": "^4.15.0",
"acp3/module-system": "^4.15.0",
"acp3/module-users": "^4.15.0"
},
"suggest": {
"acp3/module-seo": "Provides additional SEO capabilities"
......
......@@ -10,5 +10,5 @@
{if !empty($activate)}
{include file="asset:System/Partials/form_group.button_group.tpl" options=$activate required=true label={lang t="guestbook|activate_entry"}}
{/if}
{include file="asset:System/Partials/form_group.submit.tpl" form_token=$form_token back_url={uri args="acp/guestbook"}}
{include file="asset:System/Partials/form_group.submit_split.tpl" form_token=$form_token back_url={uri args="acp/guestbook"}}
{/block}
......@@ -11,7 +11,7 @@
{if isset($newsletter_integration)}
{include file="asset:System/Partials/form_group.button_group.tpl" options=$newsletter_integration required=true label={lang t="guestbook|newsletter_integration"}}
{/if}
{include file="asset:System/Partials/form_group.submit.tpl" form_token=$form_token back_url={uri args="acp/guestbook"}}
{include file="asset:System/Partials/form_group.submit_split.tpl" form_token=$form_token back_url={uri args="acp/guestbook"}}
{javascripts}
{include_js module="guestbook" file="admin/index.settings"}
{/javascripts}
......
......@@ -17,12 +17,12 @@
"prefer-stable": true,
"require": {
"acp3/composer-installer": "^1.0",
"acp3/core": "^4.14.0",
"acp3/setup": "^4.14.0",