【问题标题】:Subpanel Edit View子面板编辑视图
【发布时间】:2014-05-01 10:28:24
【问题描述】:

我的联系人编辑视图中有自定义代码,通过文件 custom/modules/Contacts/views/view.edit.php。我希望相同的代码适用于其他模块中的联系人子面板。我该怎么做?

下面是我使用的代码:

在custom/modules/Contacts/view/view.customedit.php中

require_once 'include/MVC/View/views/view.edit.php';

class ContactsViewEnjayedit extends ViewEdit
{
    public function __construct()
    {
        parent::ViewEdit();
        $this->useForSubpanel = true;
        $this->useModuleQuickCreateTemplate = true;
    }

    protected function _displayJavascript()
    {
        echo '<script type="text/javascript" src="custom/modules/Contacts/js/jquery-1.11.0.min.js"></script>';
        echo '<script type="text/javascript" src="custom/modules/Contacts/js/NjContact.js"></script>';
        parent::_displayJavascript();

    }
}

【问题讨论】:

    标签: php crm sugarcrm


    【解决方案1】:

    我也花了很长时间才弄清楚,我很高兴与您分享这个非常简单的答案!

    在您的自定义 view.edit.php 文件中,在 __construct() 方法中添加以下行:

    $this->useForSubpanel = true;
    

    这应该可以解决问题!

    【讨论】:

    • 感谢您的回答。但是我之前尝试过但代码不起作用。请查看问题以查看我使用的代码。我做错了什么吗?
    • 我在“帐户”模块的“联系人”子面板中尝试过,但无法正常工作。
    • 嗯,你能仔细检查一下你的类名是 ContactsViewEdit 而不是上面的 ContactsViewEnjayedit。此外,文件名应该是 view.edit.php,而不是 view.customedit.php。如果没有以这种方式命名的文件,Sugar 将不知道加载您的自定义视图。可以有自定义视图,但我认为这不是您想要的。
    • 最后,您要么需要在某处调用 _displayJavascript 方法,要么将其改为 display()。我建议重命名该方法以显示。这将覆盖父类中现有的显示方法。确保在回显 javascript 之前调用 parent::display();
    • 哦,谢谢 Danny。它起作用了。但是我有一个自定义控制器,它在这个文件中调用了自定义 editview view.customedit.php.MAking useForSubpanel = true 没用。但是我把它改成了 view.edit .php 以及类名然后它就可以工作了。但是你能告诉我我们如何使用自定义控制器来做同样的事情。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多