繁体   English   中英

如何更改 TYPO3 页面树中的选定条目

[英]How to change the selected entry in TYPO3 pagetree

我正在制作一个后端扩展,通过单击页面树右侧工作区域中的链接来更改它正在处理的页面。 问题是:页面树不会根据工作区中显示的 ID 进行更新。

ID 通过将查询参数 ID 传递给 mod.php 模块来更改,并按预期工作。 我尝试通过更新页面树

   t3lib_BEfunc::openPageTree($this->id);
   t3lib_BEfunc::setUpdateSignal('updatePageTree');

然后

   <script type="text/javascript">'.t3lib_BEfunc::getUpdateSignalCode().'</script>

包含在 output 中。 这也有效(刷新页面树,并显示所传递 ID 的隐藏子页面),除了指示页面树中当前页面的灰色保留在其先前的 position 处。

关于如何使页面树反映新的$this->id的任何想法?

这就是我的做法。 在我的 BE 模块的 PHP 代码中,我只像这样调用openPageTree

t3lib_BEfunc::openPageTree(76,false);

我没有调用setUpdateSignal ,因为整个“更新信号”过程对我来说有点奇怪。 另请注意, openPageTree现在有第二个参数,它是必需的。

据我了解,这个调用应该足以在用户 session 服务器端设置树的 state。 现在是客户端。

在我的扩展程序的 JavaScript 代码中,我只需 select 适当的页面 ID,就是这样:

<script type="text/javascript">
  if (top && top.TYPO3.Backend.NavigationContainer.PageTree) {
    top.TYPO3.Backend.NavigationContainer.PageTree.select(76);
  }
</script>

在查看页面树的源代码时,我意识到刷新后它总是 select top.fsMod.recentIds['web'] 可悲的是,我无法确定如何在那里正确注入价值。 在我看来,该值似乎只能通过用户交互来调整(意思是用户点击了页面树中的一个节点)。

在 TYPO3 6.1 中,您有一个 Javascript function 可以跳转到 Z2567A5EC9705EB7AC2DZZ940E 模块:

/**
 * jump the backend to a module
 */
function jump(url, modName, mainModName, pageId) {
    if (isNaN(pageId)) {
        pageId = -2;
    }
    // clear information about which entry in nav. tree that might have been highlighted.
    top.fsMod.navFrameHighlightedID = [];
    top.fsMod.recentIds['web'] = pageId;

    if (top.TYPO3.Backend.NavigationContainer.PageTree) {
        top.TYPO3.Backend.NavigationContainer.PageTree.refreshTree();
    }

    top.nextLoadModuleUrl = url;
    top.TYPO3.ModuleMenu.App.showModule(modName);
}

你可以像这样使用它:

<a onclick="jump('alt_doc.php?&edit[pages][\'uid_page\']=edit','web_list', 'web', 'uid_page')" href="#"><span class="t3-icon t3-icon-actions t3-icon-actions-document t3-icon-document-open">&nbsp;</span></a>

只需用正确的 uid 替换“uid_page”即可:)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM