Глубокая ссылка на бэкэнд TYPO3 для записи страницы

Я использую версию 8.7 TYPO3 и намереваюсь использовать ссылку, которая ведет непосредственно на серверную часть для редактирования записи (страницы). Я пробовал что-нибудь вроде typo3/backend.php?edit=57, но получил ошибку:

файл не найден


person Sednaref    schedule 29.03.2019    source источник
comment
Насколько мне известно, в бэкэнде нет возможности получить deeplink на запись страницы. Чего именно вы хотите достичь? Может быть, есть другие возможности.   -  person Peter Kraume    schedule 29.03.2019
comment
Вы можете попробовать закладки (внутренние ярлыки).   -  person jokumer    schedule 30.03.2019
comment
Спасибо за помощь. Я воспользуюсь предложенным ниже предложением Руди Гноуд.   -  person Sednaref    schedule 30.03.2019


Ответы (2)


typo3/backend.php?edit=57 был способом сделать это до TYPO3 6.2, но внутренний URL-адрес изменился на typo3/index.php в TYPO3 7.6. Он по-прежнему работает, но вам нужен токен безопасности, который генерируется ядром. Теперь URL-адрес typo3/index.php?route=%2Fmain&edit=57&token=.... Однако не существует простого способа сгенерировать URL-адрес с таким допустимым токеном извне TYPO3.

Если вы хотите создать ссылку внутри настраиваемого модуля для редактирования записи, вы можете использовать \TYPO3\CMS\Backend\Utility\BackendUtility::editOnClick() или, если вы используете шаблон Fluid, \TYPO3\CMS\Backend\ViewHelpers\Link\EditRecordViewHelper ViewHelper. Подробнее об этом можно прочитать здесь: https://docs.typo3.org/typo3cms/CoreApiReference/8.7/ApiOverview/Examples/EditLinks/

person Rudy Gnodde    schedule 29.03.2019
comment
Оно работает. Я попытаюсь выяснить, как использовать токен в ссылке, называемой внешней платформой. В моем случае siteimprove. Спасибо. - person Sednaref; 30.03.2019
comment
@Sednaref Вы не должны пытаться отправить этот токен на внешнюю платформу. Раскрытие токена CSRF делает сам токен бесполезным, а ваш сайт уязвимым для атак CSRF. - person maechler; 05.11.2019

При использовании расширения pxa_siteimprove ссылки на контент имеют следующую форму:

https://example.com/typo3/index.php?tx_siteimprove_goto=page:{page_uid}:{language_uid}

Параметр language_uid необязательный. Пример ссылки на страницу с uid 42 выглядит так:

https://example.com/typo3/index.php?tx_siteimprove_goto=page:42

При желании мы можем включить языковой uid (например, 1). Без установленного uid языка по умолчанию используется 0:

https://example.com/typo3/index.php?tx_siteimprove_goto=page:42:1

Если вы хотите создать глубокие ссылки для других целей, вы можете посмотреть, как это расширение создает глубокие ссылки в Pixelant\PxaSiteimprove\Hooks\DeepLinkingHandler. В первом обработчике он просто сохраняет uid страницы в бэкэнд-сеансе пользователя, а в более позднем обработчике повторно использует эту информацию для перенаправления на желаемую страницу, устанавливая следующую глобальную переменную:

$GLOBALS['BE_USER']->uc['startModuleOnFirstLogin'] = 'web_layout->id=' . (int)$pageId . '&SET[language]=' . (int)$languageId;
person maechler    schedule 05.11.2019