如何在 Typo3 后端获取页面的 'realurl' url

How can I get 'realurl' url of page in backend of Typo3

我已经开始开发 'post edit content hook',现在我需要获得 'realurl' 所需的页面。我该怎么做?

我注册了一个钩子:

$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['t3lib/class.t3lib_tcemain.php']['processDatamapClass'][]
    = 'EXT:' . $_EXTKEY .'/Classes/Hooks/ContentEdit.php:\xxx\xxx\Hooks\ContentEdit';

和Class:

   class ContentEdit

{
    function processDatamap_postProcessFieldArray($status, $table, $id, &$fieldArray, &$pObj) {
        if($table == 'pages'){
            if ($id !== null){
                // need to get url of page
            }
        }
    }
}

没有直接的方法可以做到这一点,因为 RealURL 依赖于 BE 上不可用的 TSFE,无论如何,RealURL 的作者 Dmitry Dulepov 创建了解决方法扩展 - Page path 允许你在 BE 模块、调度程序的任务等中获取已解析的 RU 路径

注意:这个ext只是调用eID脚本,它生成正确的页面路径,换句话说它模拟FE点击,因此它可能会能够不仅适用于 RU,还适用于 CoolURI 和其他类似的扩展。