Showing with 1,914 additions and 1,849 deletions.
  1. +5 −0 CHANGELOG.md
  2. +1 −1 README.md
  3. +13 −3 src/Cache/ContaoCacheWarmer.php
  4. +2 −2 src/DependencyInjection/Compiler/AddResourcesPathsPass.php
  5. +11 −1 src/Framework/ContaoFramework.php
  6. +1 −1 src/Resources/contao/classes/Backend.php
  7. +4 −3 src/Resources/contao/classes/BackendUser.php
  8. +132 −0 src/Resources/contao/classes/DataContainer.php
  9. +1 −1 src/Resources/contao/config/constants.php
  10. +3 −0 src/Resources/contao/controllers/BackendMain.php
  11. +5 −1 src/Resources/contao/dca/tl_files.php
  12. +1 −1 src/Resources/contao/dca/tl_form.php
  13. +3 −5 src/Resources/contao/dca/tl_page.php
  14. +3 −3 src/Resources/contao/dca/tl_templates.php
  15. +0 −48 src/Resources/contao/drivers/DC_Folder.php
  16. +0 −131 src/Resources/contao/drivers/DC_Table.php
  17. +8 −2 src/Resources/contao/languages/cs/default.xlf
  18. +1 −0 src/Resources/contao/languages/cs/tl_settings.xlf
  19. +8 −2 src/Resources/contao/languages/da/default.xlf
  20. +10 −2 src/Resources/contao/languages/de/default.xlf
  21. +7 −1 src/Resources/contao/languages/en/default.xlf
  22. +8 −2 src/Resources/contao/languages/es/default.xlf
  23. +8 −2 src/Resources/contao/languages/fa/default.xlf
  24. +8 −2 src/Resources/contao/languages/fr/default.xlf
  25. +8 −2 src/Resources/contao/languages/hu/default.xlf
  26. +8 −2 src/Resources/contao/languages/it/default.xlf
  27. +10 −2 src/Resources/contao/languages/ja/default.xlf
  28. +8 −2 src/Resources/contao/languages/lv/default.xlf
  29. +8 −2 src/Resources/contao/languages/nl/default.xlf
  30. +8 −2 src/Resources/contao/languages/pl/default.xlf
  31. +10 −2 src/Resources/contao/languages/ru/default.xlf
  32. +8 −2 src/Resources/contao/languages/sl/default.xlf
  33. +8 −2 src/Resources/contao/languages/sr/default.xlf
  34. +8 −2 src/Resources/contao/languages/zh/default.xlf
  35. +1 −1 src/Resources/contao/library/Contao/Controller.php
  36. +2 −9 src/Resources/contao/library/Contao/Template.php
  37. +8 −0 src/Resources/contao/models/PageModel.php
  38. +16 −13 src/Resources/contao/templates/backend/be_main.html5
  39. +1 −1 src/Resources/contao/themes/flexible/icons/alert.svg
  40. +1 −1 src/Resources/contao/themes/flexible/icons/exit.svg
  41. +1 −1 src/Resources/contao/themes/flexible/icons/preview.svg
  42. +1 −1 src/Resources/contao/themes/flexible/icons/profile.svg
  43. +1 −1 src/Resources/contao/themes/flexible/main.css
  44. +80 −78 src/Resources/contao/themes/flexible/src/main.css
  45. +2 −1 src/Resources/public/core.js
  46. +1 −1 src/Resources/public/core.min.js
  47. +2 −1 src/Resources/public/mootao.js
  48. +1 −1 src/Resources/public/mootao.min.js
  49. +4 −10 tests/Analyzer/HtaccessAnalyzerTest.php
  50. +3 −3 tests/Cache/ContaoCacheClearerTest.php
  51. +11 −9 tests/Cache/ContaoCacheWarmerTest.php
  52. +16 −15 tests/Command/AutomatorCommandTest.php
  53. +1 −1 tests/Command/DoctrineMigrationsDiffCommandTest.php
  54. +5 −5 tests/Command/FilesyncCommandTest.php
  55. +17 −16 tests/Command/InstallCommandTest.php
  56. +7 −7 tests/Command/SymlinksCommandTest.php
  57. +21 −21 tests/Command/UserPasswordCommandTest.php
  58. +5 −5 tests/Command/VersionCommandTest.php
  59. +15 −65 tests/Composer/ScriptHandlerTest.php
  60. +7 −7 tests/Config/Dumper/CombinedFileDumperTest.php
  61. +26 −26 tests/Config/Loader/PhpFileLoaderTest.php
  62. +7 −7 tests/Config/Loader/XliffFileLoaderTest.php
  63. +5 −11 tests/Config/ResourceFinderTest.php
  64. +4 −4 tests/Contao/CombinerTest.php
  65. +13 −13 tests/Contao/EnvironmentTest.php
  66. +42 −41 tests/Contao/GdImageTest.php
  67. +12 −12 tests/Contao/IdnaTest.php
  68. +69 −86 tests/Contao/ImageTest.php
  69. +22 −22 tests/Contao/PictureTest.php
  70. +80 −80 tests/Contao/StringUtilTest.php
  71. +10 −10 tests/Contao/TemplateTest.php
  72. +74 −74 tests/Contao/ValidatorTest.php
  73. +29 −29 tests/Contao/WidgetTest.php
  74. +3 −3 tests/ContaoCoreBundleTest.php
  75. +5 −5 tests/ContaoManager/PluginTest.php
  76. +5 −5 tests/Controller/BackendControllerTest.php
  77. +51 −51 tests/Controller/BackendCsvImportControllerTest.php
  78. +2 −2 tests/Controller/FrontendControllerTest.php
  79. +2 −2 tests/Controller/InitializeControllerTest.php
  80. +3 −3 tests/Controller/InsertTagsControllerTest.php
  81. +7 −7 tests/Cors/WebsiteRootsConfigProviderTest.php
  82. +7 −7 tests/DataCollector/ContaoDataCollectorTest.php
  83. +22 −22 tests/DataContainer/PaletteManipulatorTest.php
  84. +3 −3 tests/DependencyInjection/Compiler/AddImagineClassPassTest.php
  85. +5 −5 tests/DependencyInjection/Compiler/AddPackagesPassTest.php
  86. +3 −3 tests/DependencyInjection/Compiler/AddResourcesPathsPassTest.php
  87. +4 −4 tests/DependencyInjection/Compiler/AddSessionBagsPassTest.php
  88. +7 −7 tests/DependencyInjection/Compiler/DoctrineMigrationsPassTest.php
  89. +4 −4 tests/DependencyInjection/ConfigurationTest.php
  90. +74 −74 tests/DependencyInjection/ContaoCoreExtensionTest.php
  91. +5 −5 tests/Doctrine/DBAL/Types/BinaryStringTypeTest.php
  92. +9 −9 tests/Doctrine/Schema/DcaSchemaProviderTest.php
  93. +1 −1 tests/Doctrine/Schema/MigrationsSchemaProviderTest.php
  94. +3 −3 tests/Event/ImageSizesEventTest.php
  95. +2 −2 tests/Event/PreviewUrlConvertEventTest.php
  96. +4 −4 tests/Event/PreviewUrlCreateEventTest.php
  97. +14 −14 tests/EventListener/AddToSearchIndexListenerTest.php
  98. +4 −4 tests/EventListener/BypassMaintenanceListenerTest.php
  99. +26 −26 tests/EventListener/CommandSchedulerListenerTest.php
  100. +11 −11 tests/EventListener/DoctrineSchemaListenerTest.php
  101. +13 −13 tests/EventListener/ExceptionConverterListenerTest.php
  102. +15 −15 tests/EventListener/HeaderReplay/PageLayoutListenerTest.php
  103. +22 −31 tests/EventListener/HeaderReplay/UserSessionListenerTest.php
  104. +14 −10 tests/EventListener/InsecureInstallationListenerTest.php
  105. +43 −43 tests/EventListener/LocaleListenerTest.php
  106. +14 −14 tests/EventListener/MergeHttpHeadersListenerTest.php
  107. +21 −21 tests/EventListener/PrettyErrorScreenListenerTest.php
  108. +6 −6 tests/EventListener/RefererIdListenerTest.php
  109. +3 −3 tests/EventListener/ResponseExceptionListenerTest.php
  110. +100 −100 tests/EventListener/StoreRefererListenerTest.php
  111. +25 −25 tests/EventListener/ToggleViewListenerTest.php
  112. +53 −49 tests/EventListener/UserSessionListenerTest.php
  113. +2 −2 tests/Exception/AjaxRedirectResponseExceptionTest.php
  114. +2 −2 tests/Exception/NoContentResponseExceptionTest.php
  115. +2 −2 tests/Exception/RedirectResponseExceptionTest.php
  116. +2 −2 tests/Exception/ResponseExceptionTest.php
  117. +3 −3 tests/Framework/Adapter/AdapterTest.php
  118. +40 −18 tests/Framework/ContaoFrameworkTest.php
  119. +4 −4 tests/HttpKernel/Bundle/ContaoModuleBundleTest.php
  120. +43 −43 tests/Image/ImageFactoryTest.php
  121. +5 −5 tests/Image/ImageSizesTest.php
  122. +11 −11 tests/Image/PictureFactoryTest.php
  123. +3 −3 tests/Monolog/ContaoContextTest.php
  124. +6 −6 tests/Monolog/ContaoTableHandlerTest.php
  125. +49 −49 tests/Monolog/ContaoTableProcessorTest.php
  126. +12 −12 tests/Picker/ArticlePickerProviderTest.php
  127. +12 −12 tests/Picker/FilePickerProviderTest.php
  128. +12 −12 tests/Picker/PagePickerProviderTest.php
  129. +8 −8 tests/Picker/PickerBuilderTest.php
  130. +8 −8 tests/Picker/PickerConfigTest.php
  131. +26 −26 tests/Picker/PickerTest.php
  132. +11 −1 tests/Referer/TokenGeneratorTest.php
  133. +11 −11 tests/Routing/FrontendLoaderTest.php
  134. +2 −2 tests/Routing/ScopeMatcherTest.php
  135. +15 −13 tests/Routing/UrlGeneratorTest.php
  136. +4 −4 tests/Security/Authentication/ContaoTokenTest.php
  137. +6 −6 tests/Security/ContaoAuthenticatorTest.php
  138. +9 −9 tests/Security/User/ContaoUserProviderTest.php
  139. +5 −5 tests/Session/Attribute/ArrayAttributeBagTest.php
  140. +32 −27 tests/Twig/Extension/ContaoTemplateExtensionTest.php
  141. +4 −4 tests/Util/SymlinkUtilTest.php
5 changes: 5 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,10 @@
# Contao core bundle change log

### 4.4.4 (2017-09-05)

* Show the form submit buttons at the end of the form instead of at the end of the page.
* Do not add the referer ID in the Template::route() method (see #1033).

### 4.4.3 (2017-08-16)

* Correctly assign the form CSS ID (see #956).
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ Edit your `composer.json` file and add the following:
```json
"require": {
"contao/core-bundle": "^4.4"
}
},
"config": {
"component-dir": "assets"
},
Expand Down
16 changes: 13 additions & 3 deletions src/Cache/ContaoCacheWarmer.php
Original file line number Diff line number Diff line change
Expand Up @@ -117,8 +117,13 @@ private function generateConfigCache($cacheDir)
{
$dumper = new CombinedFileDumper($this->filesystem, new PhpFileLoader(), $cacheDir.'/contao', true);

$dumper->dump($this->findConfigFiles('autoload.php'), 'config/autoload.php', ['type' => 'namespaced']);
$dumper->dump($this->findConfigFiles('config.php'), 'config/config.php', ['type' => 'namespaced']);
foreach (['autoload.php', 'config.php'] as $file) {
$files = $this->findConfigFiles($file);

if (!empty($files)) {
$dumper->dump($files, 'config/'.$file, ['type' => 'namespaced']);
}
}
}

/**
Expand Down Expand Up @@ -236,9 +241,14 @@ private function generateDcaExtracts($cacheDir)
*/
private function generateTemplateMapper($cacheDir)
{
$mapper = [];
$files = $this->findTemplateFiles();

if (empty($files)) {
return;
}

$mapper = [];

foreach ($files as $file) {
$mapper[$file->getBasename('.html5')] = rtrim(
$this->filesystem->makePathRelative($file->getPath(), $this->rootDir),
Expand Down
4 changes: 2 additions & 2 deletions src/DependencyInjection/Compiler/AddResourcesPathsPass.php
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ class AddResourcesPathsPass implements CompilerPassInterface
*/
public function process(ContainerBuilder $container)
{
$container->setParameter('contao.resources_paths', $this->getResourcesPath($container));
$container->setParameter('contao.resources_paths', $this->getResourcesPaths($container));
}

/**
Expand All @@ -36,7 +36,7 @@ public function process(ContainerBuilder $container)
*
* @return array
*/
private function getResourcesPath(ContainerBuilder $container)
private function getResourcesPaths(ContainerBuilder $container)
{
$paths = [];
$rootDir = $container->getParameter('kernel.project_dir');
Expand Down
12 changes: 11 additions & 1 deletion src/Framework/ContaoFramework.php
Original file line number Diff line number Diff line change
Expand Up @@ -98,6 +98,14 @@ class ContaoFramework implements ContaoFrameworkInterface, ContainerAwareInterfa
'ModuleLoader',
];

/**
* @var array
*/
private $installRoutes = [
'contao_install',
'contao_install_redirect',
];

/**
* Constructor.
*
Expand Down Expand Up @@ -377,7 +385,9 @@ private function setDefaultLanguage()
*/
private function validateInstallation()
{
if (null === $this->request || 'contao_install' === $this->request->attributes->get('_route')) {
if (null === $this->request
|| in_array($this->request->attributes->get('_route'), $this->installRoutes, true)
) {
return;
}

Expand Down
2 changes: 1 addition & 1 deletion src/Resources/contao/classes/Backend.php
Original file line number Diff line number Diff line change
Expand Up @@ -1054,7 +1054,7 @@ public static function addFilesBreadcrumb($strKey='tl_files_node')
$GLOBALS['TL_DCA']['tl_files']['list']['sorting']['breadcrumb'] .= '
<ul id="tl_breadcrumb">
<li>' . implode(' &gt; </li><li>', $arrLinks) . '</li>
<li>' . implode(' </li><li>', $arrLinks) . '</li>
</ul>';
}

Expand Down
7 changes: 4 additions & 3 deletions src/Resources/contao/classes/BackendUser.php
Original file line number Diff line number Diff line change
Expand Up @@ -169,7 +169,8 @@ public function authenticate()
return true;
}

$route = \System::getContainer()->get('request_stack')->getCurrentRequest()->attributes->get('_route');
$request = \System::getContainer()->get('request_stack')->getCurrentRequest();
$route = $request->attributes->get('_route');

if ($route == 'contao_backend_login')
{
Expand All @@ -179,9 +180,9 @@ public function authenticate()
$parameters = array();

// Redirect to the last page visited upon login
if ($route == 'contao_backend' || $route == 'contao_backend_preview')
if ($request->query->count() > 0 && in_array($route, array('contao_backend', 'contao_backend_preview')))
{
$parameters['referer'] = base64_encode(\Environment::get('request'));
$parameters['referer'] = base64_encode($request->getRequestUri());
}

throw new RedirectResponseException(\System::getContainer()->get('router')->generate('contao_backend_login', $parameters, UrlGeneratorInterface::ABSOLUTE_URL));
Expand Down
132 changes: 132 additions & 0 deletions src/Resources/contao/classes/DataContainer.php
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
use Contao\CoreBundle\Picker\PickerInterface;
use Contao\Image\ResizeConfiguration;
use Imagine\Gd\Imagine;
use Symfony\Component\HttpFoundation\Session\Attribute\AttributeBagInterface;


/**
Expand Down Expand Up @@ -979,6 +980,137 @@ protected function getPickerInputField($value, $attributes='')
}


/**
* Build the sort panel and return it as string
*
* @return string
*/
protected function panel()
{
if ($GLOBALS['TL_DCA'][$this->strTable]['list']['sorting']['panelLayout'] == '')
{
return '';
}

// Reset all filters
if (isset($_POST['filter_reset']) && \Input::post('FORM_SUBMIT') == 'tl_filters')
{
/** @var AttributeBagInterface $objSessionBag */
$objSessionBag = \System::getContainer()->get('session')->getBag('contao_backend');

$data = $objSessionBag->all();

unset($data['filter'][$this->strTable]);
unset($data['filter'][$this->strTable.'_'.CURRENT_ID]);
unset($data['sorting'][$this->strTable]);
unset($data['search'][$this->strTable]);

$objSessionBag->replace($data);

$this->reload();
}

$intFilterPanel = 0;
$arrPanels = array();
$arrPanes = \StringUtil::trimsplit(';', $GLOBALS['TL_DCA'][$this->strTable]['list']['sorting']['panelLayout']);

foreach ($arrPanes as $strPanel)
{
$panels = '';
$arrSubPanels = \StringUtil::trimsplit(',', $strPanel);

foreach ($arrSubPanels as $strSubPanel)
{
$panel = '';

// Regular panels
if ($strSubPanel == 'search' || $strSubPanel == 'limit' || $strSubPanel == 'sort')
{
$panel = $this->{$strSubPanel . 'Menu'}();
}

// Multiple filter subpanels can be defined to split the fields across panels
elseif ($strSubPanel == 'filter')
{
$panel = $this->{$strSubPanel . 'Menu'}(++$intFilterPanel);
}

// Call the panel_callback
else
{
$arrCallback = $GLOBALS['TL_DCA'][$this->strTable]['list']['sorting']['panel_callback'][$strSubPanel];

if (is_array($arrCallback))
{
$this->import($arrCallback[0]);
$panel = $this->{$arrCallback[0]}->{$arrCallback[1]}($this);
}
elseif (is_callable($arrCallback))
{
$panel = $arrCallback($this);
}
}

// Add the panel if it is not empty
if ($panel != '')
{
$panels = $panel . $panels;
}
}

// Add the group if it is not empty
if ($panels != '')
{
$arrPanels[] = $panels;
}
}

if (empty($arrPanels))
{
return '';
}

if (\Input::post('FORM_SUBMIT') == 'tl_filters')
{
$this->reload();
}

$return = '';
$intTotal = count($arrPanels);
$intLast = $intTotal - 1;

for ($i=0; $i<$intTotal; $i++)
{
$submit = '';

if ($i == $intLast)
{
$submit = '
<div class="tl_submit_panel tl_subpanel">
<button name="filter" id="filter" class="tl_img_submit filter_apply" title="' . \StringUtil::specialchars($GLOBALS['TL_LANG']['MSC']['applyTitle']) . '">' . $GLOBALS['TL_LANG']['MSC']['apply'] . '</button>
<button name="filter_reset" id="filter_reset" value="1" class="tl_img_submit filter_reset" title="' . \StringUtil::specialchars($GLOBALS['TL_LANG']['MSC']['resetTitle']) . '">' . $GLOBALS['TL_LANG']['MSC']['reset'] . '</button>
</div>';
}

$return .= '
<div class="tl_panel cf">
' . $submit . $arrPanels[$i] . '
</div>';
}

$return = '
<form action="'.ampersand(\Environment::get('request'), true).'" class="tl_form" method="post">
<div class="tl_formbody">
<input type="hidden" name="FORM_SUBMIT" value="tl_filters">
<input type="hidden" name="REQUEST_TOKEN" value="'.REQUEST_TOKEN.'">
' . $return . '
</div>
</form>';

return $return;
}


/**
* Return the name of the current palette
*
Expand Down
2 changes: 1 addition & 1 deletion src/Resources/contao/config/constants.php
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@

// Core version
define('VERSION', '4.4');
define('BUILD', '3');
define('BUILD', '4');
define('LONG_TERM_SUPPORT', true);

// Link constants
Expand Down
3 changes: 3 additions & 0 deletions src/Resources/contao/controllers/BackendMain.php
Original file line number Diff line number Diff line change
Expand Up @@ -220,6 +220,8 @@ protected function output()
$this->Template->account = $GLOBALS['TL_LANG']['MOD']['login'][1];
$this->Template->preview = $GLOBALS['TL_LANG']['MSC']['fePreview'];
$this->Template->previewTitle = \StringUtil::specialchars($GLOBALS['TL_LANG']['MSC']['fePreviewTitle']);
$this->Template->profile = $GLOBALS['TL_LANG']['MSC']['profile'];
$this->Template->profileTitle = \StringUtil::specialchars($GLOBALS['TL_LANG']['MSC']['profileTitle']);
$this->Template->pageOffset = \Input::cookie('BE_PAGE_OFFSET');
$this->Template->logout = $GLOBALS['TL_LANG']['MSC']['logoutBT'];
$this->Template->logoutTitle = \StringUtil::specialchars($GLOBALS['TL_LANG']['MSC']['logoutBTTitle']);
Expand All @@ -239,6 +241,7 @@ protected function output()
$this->Template->systemMessages = $GLOBALS['TL_LANG']['MSC']['systemMessages'];
$this->Template->burger = $GLOBALS['TL_LANG']['MSC']['burgerTitle'];
$this->Template->learnMore = sprintf($GLOBALS['TL_LANG']['MSC']['learnMore'], '<a href="https://contao.org" target="_blank">contao.org</a>');
$this->Template->ref = \System::getContainer()->get('request_stack')->getCurrentRequest()->attributes->get('_contao_referer_id');

$strSystemMessages = \Backend::getSystemMessages();
$this->Template->systemMessagesCount = substr_count($strSystemMessages, 'class="tl_');
Expand Down
6 changes: 5 additions & 1 deletion src/Resources/contao/dca/tl_files.php
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,10 @@
// List
'list' => array
(
'sorting' => array
(
'panelLayout' => 'search'
),
'global_operations' => array
(
'sync' => array
Expand Down Expand Up @@ -746,7 +750,7 @@ public function protectFolder(DataContainer $dc)
return '
<div class="' . $class . '">
<div id="ctrl_' . $dc->field . '" class="tl_checkbox_single_container">
<input type="hidden" name="' . $dc->inputName . '" value=""><input type="checkbox" name="' . $dc->inputName . '" id="opt_' . $dc->field . '_0" class="tl_checkbox" value="1"' . (($blnPublic || basename($strPath) == '__new__') ? ' checked="checked"' : '') . ' onfocus="Backend.getScrollOffset()"' . ($blnDisabled ? ' disabled' : '') . '> <label for="opt_' . $dc->field . '_0">' . $GLOBALS['TL_LANG']['tl_files']['protected'][0] . '</label>
<input type="hidden" name="' . $dc->inputName . '" value=""><input type="checkbox" name="' . $dc->inputName . '" id="opt_' . $dc->inputName . '_0" class="tl_checkbox" value="1"' . (($blnPublic || basename($strPath) == '__new__') ? ' checked="checked"' : '') . ' onfocus="Backend.getScrollOffset()"' . ($blnDisabled ? ' disabled' : '') . '> <label for="opt_' . $dc->inputName . '_0">' . $GLOBALS['TL_LANG']['tl_files']['protected'][0] . '</label>
</div>' . (Config::get('showHelp') ? '
<p class="tl_help tl_tip">' . $GLOBALS['TL_LANG']['tl_files']['protected'][1] . '</p>' : '') . '
</div>';
Expand Down
2 changes: 1 addition & 1 deletion src/Resources/contao/dca/tl_form.php
Original file line number Diff line number Diff line change
Expand Up @@ -454,7 +454,7 @@ public function generateAlias($varValue, DataContainer $dc)
$objAlias = $this->Database->prepare("SELECT id FROM tl_form WHERE id=? OR alias=?")
->execute($dc->id, $varValue);

// Check whether the page alias exists
// Check whether the form alias exists
if ($objAlias->numRows > 1)
{
if (!$autoAlias)
Expand Down
8 changes: 3 additions & 5 deletions src/Resources/contao/dca/tl_page.php
Original file line number Diff line number Diff line change
Expand Up @@ -1092,14 +1092,12 @@ public function generateAlias($varValue, DataContainer $dc)
// Check if there are multiple results for the current domain
if (!empty($arrCheck))
{
if ($autoAlias)
{
$varValue .= '-' . $dc->id;
}
else
if (!$autoAlias)
{
throw new Exception(sprintf($GLOBALS['TL_LANG']['ERR']['aliasExists'], $varValue));
}

$varValue .= '-' . $dc->id;
}
}

Expand Down
6 changes: 3 additions & 3 deletions src/Resources/contao/dca/tl_templates.php
Original file line number Diff line number Diff line change
Expand Up @@ -226,7 +226,7 @@ public function addBreadcrumb()
$GLOBALS['TL_DCA']['tl_templates']['list']['sorting']['breadcrumb'] .= '
<ul id="tl_breadcrumb">
<li>' . implode(' &gt; </li><li>', $arrLinks) . '</li>
<li>' . implode(' </li><li>', $arrLinks) . '</li>
</ul>';
}

Expand Down Expand Up @@ -341,7 +341,7 @@ public function addNewTemplate()
<div class="tl_formbody_edit">
<input type="hidden" name="FORM_SUBMIT" value="tl_create_template">
<input type="hidden" name="REQUEST_TOKEN" value="'.REQUEST_TOKEN.'">
<fieldset class="tl_tbox nolegend">
<div class="tl_tbox cf">
<div class="w50 widget">
<h3><label for="ctrl_original">'.$GLOBALS['TL_LANG']['tl_templates']['original'][0].'</label></h3>
<select name="original" id="ctrl_original" class="tl_select tl_chosen" onfocus="Backend.getScrollOffset()">'.$strAllTemplates.'</select>'.(($GLOBALS['TL_LANG']['tl_templates']['original'][1] && Config::get('showHelp')) ? '
Expand All @@ -352,7 +352,7 @@ public function addNewTemplate()
<select name="target" id="ctrl_target" class="tl_select" onfocus="Backend.getScrollOffset()"><option value="templates">templates</option>'. $this->getTargetFolders('templates') .'</select>'.(($GLOBALS['TL_LANG']['tl_templates']['target'][1] && Config::get('showHelp')) ? '
<p class="tl_help tl_tip">'.$GLOBALS['TL_LANG']['tl_templates']['target'][1].'</p>' : '').'
</div>
</fieldset>
</div>
</div>
<div class="tl_formbody_submit">
Expand Down
Loading