Sugarcrm:修改Dashlet quickEdit按钮上的操作

时间:2014-03-18 10:51:13

标签: edit sugarcrm dashlet

我对Sugarcrm有一个非常具体的问题。

我正在使用版本 Enterprise 6.5.16 ,而且我将走向死胡同。

我目前拥有的是什么:

当用户在他的主页上时,他有一个名为“My open Cases”的Dashlet,它显示分配给他/或由他创建的每个打开的案例。

对于此dashlet的每一行,我们都会显示quickEdit图标。 (你知道,小笔)。 当用户点击该小图标时,它会打开quickcreate(或quickedit?)弹出窗口。

我想要实现的目标是:

我想,当用户点击图标时,Sugar不会打开弹出窗口,但会在EditView上打开一个新的浏览器标签。

所以基本上,当在Home上,当用户想要从dashlet编辑“Case01 - Issue”时,我想打开一个带有完整编辑视图的新浏览器选项卡,而不是弹出quickcreate(或quickedit)表单。 “案例01 - 问题”。

我该怎么办?我没有在custom / modules / Cases / metadata / dashletviewdefs.php或其他地方看到图标的定义。

感谢您的帮助和时间!

Gaëlle

3 个答案:

答案 0 :(得分:0)

“我的案例”小面板和大多数小面板扩展了/include/Dashlets/DashletGeneric.php中的DashletGeneric类。这使用同一目录中的模板文件DashletGenericDisplay.tpl,这是显示快速编辑按钮的模板。

要删除或更改快速编辑按钮,您可以扩展我的案例并坚持使用您自己创建的自定义智能模板。在/custom/modules/Cases/Dashlets/CustomMyCasesDashlet/CustomMyCasesDashlet.php中,您可能会遇到以下情况:

<?php
require_once('modules/Cases/Dashlets/MyCasesDashlet/MyCasesDashlet.php');
class CustomMyCasesDashlet extends MyCasesDashlet{
  $displayTpl = 'custom/modules/Cases/Dashlets/CustomMyCasesDashlet/CustomMyCasesDashlet.tpl';
}

然后,您可以将原始模板复制到CustomMyCasesDashlet :: displayTpl引用的新文件和位置,并根据需要进行调整。

要让Dashlet正确注册系统,您还需要CustomMyCasesDashlet.meta.php文件。将原始文件复制到自定义目录并根据需要调整标签 - 关键是将对MyCasesDashlet的引用替换为CustomMyCasesDashlet。

答案 1 :(得分:0)

您应该创建自己的dashlet(在&#34; custom&#34;文件夹中复制现有的dashlet),将所有标准条目替换为您自己的。添加DashletGenericDisplay.tpl的副本,并将其命名为CustomMyCasesDashlet.tpl。 没有必要扩展MyCasesDashlet类。您可以离开&#34;扩展DashletGeneric&#34;。 在构造函数CustomMyCasesDashlet()中只需添加以下行:

$this->displayTpl = 'custom/modules/Cases/Dashlets/CustomMyCasesDashlet/CustomMyCasesDashlet.tpl';

注意 $ this-&gt; 。它必须覆盖DashletGeneric字段。

答案 2 :(得分:0)

modules / Cases / Dashlets / MyCasesDashlet / MyCasesDashlet.php 复制文件并将其粘贴到 custom / modules / Cases / Dashlets / MyCasesDashlet / MyCasesDashlet

如果自定义目录中没有Cases文件夹,请创建一个。

复制文件后,添加属性以加载您的自定义TPL文件。

位于include / Dashlets /

的默认DashletGenericDisplay.tpl文件
class MyCasesDashlet extends DashletGeneric {

    var $displayTpl = "custom/modules/Cases/Dashlets/DashletGenericDisplay.tpl";