Я создал очень простое расширение typo3 с одной моделью и одним контроллером.
Это единственные действия в контроллере:
/**
* action list
*
* @return void
*/
public function listAction()
{
$projects = $this->projectRepository->findAll();
$this->view->assign('projects', $projects);
}
/**
* action show
*
* @param \Typo3\Productoverview\Domain\Model\Project $project
* @return void
*/
public function showAction(\Typo3\Productoverview\Domain\Model\Project $project)
{
$this->view->assign('project', $project);
}
Затем я создал папку и добавил элемент плагина:
После этого я разместил сам плагин на первой странице и включил папку.
С помощью конфигурации RealURL мне удалось сократить URL-адрес действия шоу:
<?php
$GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['realurl']= array (
'local.typo3' => array (
'init' => array (
'enableCHashCache' => 1,
'appendMissingSlash' => 'ifNotFile, redirect',
'adminJumpToBackend' => 1,
'enableUrlDecodeCache' => 1,
'enableUrlEncodeCache' => 1,
'emptyUrlReturnValue' => '/',
),
'postVarSets' => array (
'_DEFAULT' => array (
'project' => array (
array (
'GETvar' => 'tx_productoverview_projects[action]',
),
array (
'GETvar' => 'tx_productoverview_projects[project]',
),
),
),
),
...
В чем проблема?
Если я сейчас нажму на ссылку одного элемента списка на первой странице, он изменит URL в панели браузера, но не перенаправит меня. Мне нужно обновить страницу с помощью Control + F5, чтобы перейти к представлению проекта или снова вернуться на главную страницу (даже если я вручную изменяю URL в браузере).
Я работаю с Typo3 7.6.10 и realurl 2.0.15.
Если я использую cHash в realurl_conf.php это работает правильно:
array (
'GETvar' => 'cHash',
),
Как работать без cHash? Я имею в виду «enableCHashCache» активирован ..
Одно из возможных решений — отключить кеширование для действия со списком, но я не уверен, что это именно тот путь:
\TYPO3\CMS\Extbase\Utility\ExtensionUtility::configurePlugin(
'ET.' . $_EXTKEY,
'Projects',
array(
'Project' => 'list, show',
),
// non-cacheable actions
array(
'Project' => 'list',
)
);
Известная проблема — объяснено на https://github.com/dmitryd/typo3-realurl/issues/244
TL; DR: исправить включение cHash в каждой ссылке на вашем сайте. Не конфигурация, но где ссылка генерируется, в каждом месте ссылки генерируются!
Других решений пока нет …