如何在SuiteCRM中创建自定义ListView页面

问题描述 投票:0回答:2

我需要在SuiteCRM中创建一个页面(v7.9 - 基于Sugar 6.5 CE),它有一个对象列表(自定义模块),每个对象前面都有复选框。到目前为止,非常好:这是一个标准的ListView。

问题是只有一些记录应该在列表中(过滤相关自定义模块/对象中是否存在关联的行)。

此页面需要与此模块的“常规”列表不同,该列表应该确实列出所有记录。

在我看来,使用自定义“操作”访问此页面视图是有意义的,我可以使用正确的URL触发我的自定义操作代码。

但我不知道如何挂钩过滤。起初,看起来process_record逻辑钩子在这里可能会有所帮助,但它只是为每个要显示的记录提供bean。除非有一个标志“显示此记录”,我没有看到,这不是那么有用。

当然,理想情况下,我希望能够在调用之前在自定义控制器操作中注入不同的WHERE子句

parent::action_listview();

显示页面,但我没有看到doc指出它可能如何工作。我会包含源代码,但到目前为止,上面的行是controller.php文件中的所有内容(但是样板文件)。

sugarcrm suitecrm
2个回答
0
投票

在自定义文件夹中创建listview的副本,然后覆盖listview的listViewProcess()方法并在那里插入您的查询:

function listViewProcess()        // generating listview 
{
    $this->processSearchForm();
    if($this->where==''){
        $this->where.="leads.status='Converted'";
    }
    $this->lv->searchColumns = $this->searchForm->searchColumns;
        if(!$this->headers)
            return;
    $this->lv->setup($this->seed, 'custom/modules/Leads/ListView/ListViewGeneric.tpl', $this->where, $this->params);
    echo $this->lv->display();
}

更多信息:http://wiki-crm-forum.com/forum/viewtopic.php?f=2&t=9420&p=32674&hilit=listViewProcess&sid=21907ecd28734a726f61f7017a7e9a24#p32674

另一个经过测试的工作示例可以在这里找到:How to hard code the where condition in list view ,basic search,advance search in sugar CE

P.S:我不太确定“v7.9 - 松散地基于Sugar 6.5 CE”我会说除了API之外它有95%相同


0
投票

适用于SuiteCRM中的自定义模块。

您可以更改函数create_new_list_query。

© www.soinside.com 2019 - 2024. All rights reserved.