我正在制作一个后端扩展,在单击pagetree右侧工作区中的链接时更改它正在处理的页面.问题是:pagetree不会根据工作区中显示的ID进行更新.
通过将查询参数ID传递给mod.php-module来更改ID,并按预期工作.我试过通过更新页面树
t3lib_BEfunc::openPageTree($this->id);
t3lib_BEfunc::setUpdateSignal('updatePageTree');
然后
<script type="text/javascript">'.t3lib_BEfunc::getUpdateSignalCode().'</script>
被包括在输出中.这也有效(页面树被刷新,并且显示传递的ID的隐藏子页面),除了指示页面树中当前页面的灰色处于其先前位置的灰度.
关于如何制作pagetree的任何想法都反映了新的$this->id?
我是这样做的。在我的 BE 模块的 PHP 代码中,我只openPageTree这样调用:
t3lib_BEfunc::openPageTree(76,false);
Run Code Online (Sandbox Code Playgroud)
我没有打电话,setUpdateSignal因为整个“更新信号”过程对我来说有点奇怪。另请注意,openPageTree现在有第二个参数,这是必需的。
据我了解,此调用应该足以在用户会话服务器端设置树的状态。现在是客户端。
在我的扩展的 JavaScript 代码中,我只需选择适当的页面 ID 即可:
<script type="text/javascript">
if (top && top.TYPO3.Backend.NavigationContainer.PageTree) {
top.TYPO3.Backend.NavigationContainer.PageTree.select(76);
}
</script>
Run Code Online (Sandbox Code Playgroud)
在查看页面树的源代码时,我意识到它总是会top.fsMod.recentIds['web']在刷新后选择。遗憾的是,我无法确定如何在那里正确注入值。在我看来,该值只能通过用户交互进行调整(也就是说,用户单击页面树中的节点)。
| 归档时间: |
|
| 查看次数: |
1380 次 |
| 最近记录: |