1

我有一个非常旧的 Typo3 插件,前段时间(可能问题是由 Typo3 升级引起的;我目前使用的是 4.7.11),用户开始抱怨后端某些项目的上下文菜单不再起作用。效果仅限于某些表,而不是全部,但看起来一类项目要么工作要么不工作。

该插件对上下文菜单没有什么特别之处,我只期望带有编辑按钮等的标准内容。我从网络搜索中了解到,后端 wrt 已经进行了更改。上下文菜单。然而,从错误报告中,我不清楚我必须改变什么,特别是因为我的一些东西在没有修改的情况下工作。

是否有任何文档说明我需要在插件中进行哪些调整以使用新的上下文菜单架构?

在此先感谢,克里斯托夫

PS:奇怪的是上下文菜单在标准文件浏览器中也不起作用。这可能是相关的,但我还没有解决方案......

编辑: Firefox 的 webdev 控制台为失败的菜单报告错误“xml 或文本声明不在实体开头”。XML 对我来说看起来不错:

<?xml version="1.0"?>
<t3ajax><data><clickmenu><htmltable><![CDATA[<div class="typo3-CSM-wrapperCM">

            <table border="0" cellpadding="0" cellspacing="0" class="typo3-CSM">

                <tr class="typo3-CSM-itemRow" onclick="if(top.content.list_frame){top.content.list_frame.location.href=top.TS.PATH_typo3+'alt_doc.php?returnUrl='+top.rawurlencode(top.content.list_frame.document.location.pathname+top.content.list_frame.document.location.search)+'&amp;edit[tx_visteaching_seminartopic][240]=edit';}Clickmenu.hideAll();" onmouseover="this.bgColor='#dedede';" onmouseout="this.bgColor='';" oncontextmenu="if(top.content.list_frame){top.content.list_frame.location.href=top.TS.PATH_typo3+'alt_doc.php?returnUrl='+top.rawurlencode(top.content.list_frame.document.location.pathname+top.content.list_frame.document.location.search)+'&amp;edit[tx_visteaching_seminartopic][240]=edit';}Clickmenu.hideAll();;return false;">
                    <td align="center"> <span class="t3-icon t3-icon-actions t3-icon-actions-document t3-icon-document-open">&nbsp;</span></td><td class="typo3-CSM-item">Bearbeiten</td>
                </tr>
                <tr class="typo3-CSM-itemRow" onclick="if(top.content.list_frame){top.content.list_frame.location.href=top.TS.PATH_typo3+'alt_doc.php?returnUrl='+top.rawurlencode(top.content.list_frame.document.location.pathname+top.content.list_frame.document.location.search)+'&amp;edit[tx_visteaching_seminartopic][-240]=new';}Clickmenu.hideAll();" onmouseover="this.bgColor='#dedede';" onmouseout="this.bgColor='';" oncontextmenu="if(top.content.list_frame){top.content.list_frame.location.href=top.TS.PATH_typo3+'alt_doc.php?returnUrl='+top.rawurlencode(top.content.list_frame.document.location.pathname+top.content.list_frame.document.location.search)+'&amp;edit[tx_visteaching_seminartopic][-240]=new';}Clickmenu.hideAll();;return false;">
                    <td align="center"> <span class="t3-icon t3-icon-actions t3-icon-actions-document t3-icon-document-new">&nbsp;</span></td><td class="typo3-CSM-item">Neu</td>
                </tr>
                <tr class="typo3-CSM-itemRow" onclick="top.launchView('tx_visteaching_seminartopic', '240'); Clickmenu.hideAll();" onmouseover="this.bgColor='#dedede';" onmouseout="this.bgColor='';" oncontextmenu="top.launchView('tx_visteaching_seminartopic', '240'); Clickmenu.hideAll();;return false;">
                    <td align="center"> <span class="t3-icon t3-icon-actions t3-icon-actions-document t3-icon-document-info">&nbsp;</span></td><td class="typo3-CSM-item">Info</td>
                </tr>
                <tr class="bgColor2">
                    <td colspan="2"><img src="clear.gif" width="1" height="1" alt="" /></td>
                </tr>
                <tr class="typo3-CSM-itemRow" onclick="showClickmenu_raw('/typo3/alt_clickmenu.php?table=tx_visteaching_seminartopic&amp;uid=240&amp;listFr=1&amp;enDisItems=&amp;backPath=%7Ce633b347b6&amp;addParams=&amp;ajax=1&amp;reloadListFrame=1&amp;CB[el][tx_visteaching_seminartopic%7C240]=1&amp;CB[setCopyMode]=1');Clickmenu.hideAll();" onmouseover="this.bgColor='#dedede';" onmouseout="this.bgColor='';" oncontextmenu="showClickmenu_raw('/typo3/alt_clickmenu.php?table=tx_visteaching_seminartopic&amp;uid=240&amp;listFr=1&amp;enDisItems=&amp;backPath=%7Ce633b347b6&amp;addParams=&amp;ajax=1&amp;reloadListFrame=1&amp;CB[el][tx_visteaching_seminartopic%7C240]=1&amp;CB[setCopyMode]=1');Clickmenu.hideAll();;return false;">
                    <td align="center"> <span class="t3-icon t3-icon-actions t3-icon-actions-edit t3-icon-edit-copy">&nbsp;</span></td><td class="typo3-CSM-item">Kopieren</td>
                </tr>
                <tr class="typo3-CSM-itemRow" onclick="showClickmenu_raw('/typo3/alt_clickmenu.php?table=tx_visteaching_seminartopic&amp;uid=240&amp;listFr=1&amp;enDisItems=&amp;backPath=%7Ce633b347b6&amp;addParams=&amp;ajax=1&amp;reloadListFrame=1&amp;CB[el][tx_visteaching_seminartopic%7C240]=1');Clickmenu.hideAll();" onmouseover="this.bgColor='#dedede';" onmouseout="this.bgColor='';" oncontextmenu="showClickmenu_raw('/typo3/alt_clickmenu.php?table=tx_visteaching_seminartopic&amp;uid=240&amp;listFr=1&amp;enDisItems=&amp;backPath=%7Ce633b347b6&amp;addParams=&amp;ajax=1&amp;reloadListFrame=1&amp;CB[el][tx_visteaching_seminartopic%7C240]=1');Clickmenu.hideAll();;return false;">
                    <td align="center"> <span class="t3-icon t3-icon-actions t3-icon-actions-edit t3-icon-edit-cut">&nbsp;</span></td><td class="typo3-CSM-item">Ausschneiden</td>
                </tr>
                <tr class="bgColor2">
                    <td colspan="2"><img src="clear.gif" width="1" height="1" alt="" /></td>
                </tr>
                <tr class="typo3-CSM-itemRow" onclick="showClickmenu_raw('/typo3/alt_clickmenu.php?table=tx_visteaching_seminartopic&amp;uid=240&amp;listFr=1&amp;enDisItems=&amp;backPath=%7Ce633b347b6&amp;addParams=&amp;ajax=1&amp;cmLevel=1&amp;subname=moreoptions');" onmouseover="this.bgColor='#dedede';" onmouseout="this.bgColor='';" oncontextmenu="showClickmenu_raw('/typo3/alt_clickmenu.php?table=tx_visteaching_seminartopic&amp;uid=240&amp;listFr=1&amp;enDisItems=&amp;backPath=%7Ce633b347b6&amp;addParams=&amp;ajax=1&amp;cmLevel=1&amp;subname=moreoptions');;return false;">
                    <td align="center"> </td><td class="typo3-CSM-item">Weitere Einstellungen...</td>
                </tr>
                <tr class="typo3-CSM-itemRow" onclick="if(top.content.list_frame){top.content.list_frame.location.href=top.TS.PATH_typo3+'tce_db.php?redirect='+top.rawurlencode(top.content.list_frame.document.location.pathname+top.content.list_frame.document.location.search)+'&amp;data[tx_visteaching_seminartopic][240][hidden]=1&amp;prErr=1&amp;vC=31e89da0b5&amp;formToken=67e2328a3706432e0dd02d2f1e0923002537a3d0';}top.nav.refresh.defer(500, top.nav);Clickmenu.hideAll();" onmouseover="this.bgColor='#dedede';" onmouseout="this.bgColor='';" oncontextmenu="if(top.content.list_frame){top.content.list_frame.location.href=top.TS.PATH_typo3+'tce_db.php?redirect='+top.rawurlencode(top.content.list_frame.document.location.pathname+top.content.list_frame.document.location.search)+'&amp;data[tx_visteaching_seminartopic][240][hidden]=1&amp;prErr=1&amp;vC=31e89da0b5&amp;formToken=67e2328a3706432e0dd02d2f1e0923002537a3d0';}top.nav.refresh.defer(500, top.nav);Clickmenu.hideAll();;return false;">
                    <td align="center"> <span class="t3-icon t3-icon-actions t3-icon-actions-edit t3-icon-edit-hide">&nbsp;</span></td><td class="typo3-CSM-item">Verbergen</td>
                </tr>
                <tr class="typo3-CSM-itemRow" onclick="var docRef=(top.content.list_frame)?top.content.list_frame:top.content.list_frame; docRef.location.href=top.TS.PATH_typo3+'alt_doc.php?edit[tx_visteaching_seminartopic][240]=edit&amp;columnsOnly=hidden'+'&amp;returnUrl='+top.rawurlencode(docRef.document.location.pathname+docRef.document.location.search);Clickmenu.hideAll();" onmouseover="this.bgColor='#dedede';" onmouseout="this.bgColor='';" oncontextmenu="var docRef=(top.content.list_frame)?top.content.list_frame:top.content.list_frame; docRef.location.href=top.TS.PATH_typo3+'alt_doc.php?edit[tx_visteaching_seminartopic][240]=edit&amp;columnsOnly=hidden'+'&amp;returnUrl='+top.rawurlencode(docRef.document.location.pathname+docRef.document.location.search);Clickmenu.hideAll();;return false;">
                    <td align="center"> <span class="t3-icon t3-icon-actions t3-icon-actions-document t3-icon-document-edit-access">&nbsp;</span></td><td class="typo3-CSM-item">Sichtbarkeitseinstellungen</td>
                </tr>
                <tr class="bgColor2">
                    <td colspan="2"><img src="clear.gif" width="1" height="1" alt="" /></td>
                </tr>
                <tr class="typo3-CSM-itemRow" onclick="if(top.content.list_frame &amp;&amp; confirm(String.fromCharCode(83,105,110,100,32,83,105,101,32,115,105,99,104,101,114,44,32,100,97,115,115,32,83,105,101,32,34,69,118,97,108,117,97,116,105,111,110,32,118,111,110,32,75,110,111,116,101,110,45,75,97,110,116,101,110,32,68,105,97,103,114,97,109,109,101,110,34,32,116,97,116,115,228,99,104,108,105,99,104,32,108,246,115,99,104,101,110,32,119,111,108,108,101,110,63,32,40,84,104,101,114,101,32,97,114,101,32,49,32,114,101,102,101,114,101,110,99,101,40,115,41,32,116,111,32,116,104,105,115,32,114,101,99,111,114,100,33,41)) ){top.content.list_frame.location.href=top.TS.PATH_typo3+'tce_db.php?redirect='+top.rawurlencode(top.content.list_frame.document.location.pathname+top.content.list_frame.document.location.search)+'&amp;cmd[tx_visteaching_seminartopic][240][delete]=1&amp;prErr=1&amp;vC=31e89da0b5&amp;formToken=67e2328a3706432e0dd02d2f1e0923002537a3d0';}top.nav.refresh.defer(500, top.nav);Clickmenu.hideAll();" onmouseover="this.bgColor='#dedede';" onmouseout="this.bgColor='';" oncontextmenu="if(top.content.list_frame &amp;&amp; confirm(String.fromCharCode(83,105,110,100,32,83,105,101,32,115,105,99,104,101,114,44,32,100,97,115,115,32,83,105,101,32,34,69,118,97,108,117,97,116,105,111,110,32,118,111,110,32,75,110,111,116,101,110,45,75,97,110,116,101,110,32,68,105,97,103,114,97,109,109,101,110,34,32,116,97,116,115,228,99,104,108,105,99,104,32,108,246,115,99,104,101,110,32,119,111,108,108,101,110,63,32,40,84,104,101,114,101,32,97,114,101,32,49,32,114,101,102,101,114,101,110,99,101,40,115,41,32,116,111,32,116,104,105,115,32,114,101,99,111,114,100,33,41)) ){top.content.list_frame.location.href=top.TS.PATH_typo3+'tce_db.php?redirect='+top.rawurlencode(top.content.list_frame.document.location.pathname+top.content.list_frame.document.location.search)+'&amp;cmd[tx_visteaching_seminartopic][240][delete]=1&amp;prErr=1&amp;vC=31e89da0b5&amp;formToken=67e2328a3706432e0dd02d2f1e0923002537a3d0';}top.nav.refresh.defer(500, top.nav);Clickmenu.hideAll();;return false;">
                    <td align="center"> <span class="t3-icon t3-icon-actions t3-icon-actions-edit t3-icon-edit-delete">&nbsp;</span></td><td class="typo3-CSM-item">L&#xf6;schen</td>
                </tr>
                <tr class="typo3-CSM-itemRow" onclick="var docRef=(top.content.list_frame)?top.content.list_frame:top.content.list_frame; docRef.location.href=top.TS.PATH_typo3+'show_rechis.php?element=tx_visteaching_seminartopic%3A240'+'&amp;returnUrl='+top.rawurlencode(docRef.document.location.pathname+docRef.document.location.search);Clickmenu.hideAll();" onmouseover="this.bgColor='#dedede';" onmouseout="this.bgColor='';" oncontextmenu="var docRef=(top.content.list_frame)?top.content.list_frame:top.content.list_frame; docRef.location.href=top.TS.PATH_typo3+'show_rechis.php?element=tx_visteaching_seminartopic%3A240'+'&amp;returnUrl='+top.rawurlencode(docRef.document.location.pathname+docRef.document.location.search);Clickmenu.hideAll();;return false;">
                    <td align="center"> <span class="t3-icon t3-icon-actions t3-icon-actions-document t3-icon-document-history-open">&nbsp;</span></td><td class="typo3-CSM-item">Verlauf/R&#xfc;ckg&#xe4;ngig</td>
                </tr>
            </table>
        </div>]]></htmltable><cmlevel>0</cmlevel></clickmenu></data></t3ajax>
4

2 回答 2

0

您可以在文件 class.t3lib_treeview.php 中找到 clickmenu 的 javascript。它使用javascript而不是ajax。

    function wrapClickMenuOnIcon($str,$table,$uid='',$listFr=1,$add$
    {
         $backPath = rawurlencode($this->backPath).'|'.t3lib_div$
         $onClick = 'if(event.stopPropagation){event.stopPropaga$
         '","'.$uid.'","'.$listFr.'","'.
          str_replace('+','%2B',$enDisItems).'","'.
          str_replace('&','&amp;',addcslashes($backPath,'"')).'",$
          str_replace('&','&amp;',addcslashes($addParams,'"')).'"$
          return $returnOnClick ? $onClick : '<a href="javascript$
                                                    htmlspecialchar$
     }
于 2013-06-13T17:10:49.913 回答
0

上下文菜单是通过AJAX请求呈现的。确保使用浏览器查看原始结果network inspection tools(Chrome 和 Firefox 在这里效果最好)。原始结果可能包含错误消息。

还要确保检查PHP error log.

我不知道上下文菜单有任何重大变化。

于 2013-06-13T16:38:21.887 回答