如何在SuiteCRM列表页添加自定义动作按钮?

这一节主要和大家分享一下,如何在SuiteCRM客户管理软件的对应模块列表添加自定义动作按钮,例如:我想在批量操作下面多一个下拉选项“发送记录test”,并且实现一定的数据传输功能。

实现功能如下图:

SuiteCRM列表页添加自定义按钮
SuiteCRM列表页添加自定义按钮
点击按钮实现记录
点击按钮实现记录

主要修改两个地方,第一个地方:/custom/modules/Tasks/views/view.list.php

<?php

require_once('include/MVC/View/views/view.list.php');

class CustomTasksViewList extends ViewList
{
    /**
     * @see ViewList::preDisplay()
     */
    public function preDisplay()
    {
        parent::preDisplay();

        $this->lv->actionsMenuExtraItems[] = $this->buildMyMenuItem();
    }

    /**
     * @return string HTML
     */
    protected function buildMyMenuItem()
    {
        global $app_strings;
    
        return <<<EOHTML
<a class="menuItem" style="width: 150px;" href="#" onmouseover='hiliteItem(this,"yes");' 
        onmouseout='unhiliteItem(this);' 
        onclick="sugarListView.get_checks();
        if(sugarListView.get_checks_count() &lt; 1) {
            alert('{$app_strings['LBL_LISTVIEW_NO_SELECTED']}');
            return false;
        }
        document.MassUpdate.action.value='displaypassedids';
        document.MassUpdate.submit();">发送记录test</a>
EOHTML;
    }
}

第二个地方修改:/custom/modules/Tasks/controller.php

<?php

class CustomTasksController extends SugarController
{
    public function action_displaypassedids() {
        if ( !empty($_REQUEST['uid']) ) {
            $recordIds = explode(',',$_REQUEST['uid']);
            foreach ( $recordIds as $recordId ) {
                $bean = SugarModule::get($_REQUEST['module'])->loadBean();
                $bean->retrieve($recordId);
                echo "发送任务ID号为 {$bean->id}, 标题是: ".$bean->get_summary_text()." 一条记录。";
            }
        }

        sugar_die('');
    }
}

备注:针对不同模块列表页添加按钮,需要注意两处代码的修改“CustomTasksController”和“CustomTasksViewList”。

推荐阅读

  1. SuiteCRM 8.1.2 刚刚发布!
  2. SuiteCRM 8.1.1 & 7.12.6 发布
  3. 为了官方更好的技术服务,请捐赠SuiteCRM
  4. SuiteCRM 8.1发布-官方版本再更新!
  5. 苏格兰公司 SuiteCRM 再次获奖
  6. 安全和维护补丁:SuiteCRM 8.0.4 & 7.12.5 发布
  7. 将 SuiteCRM 升级到更新版本
  8. SuiteCRM 升级环境(PHP\MySQL\Apache)要求

发表评论

您的电子邮箱地址不会被公开。 必填项已用 * 标注