2013-05-13 39 views
1

我有两个自定义模块:cm_product, cm_itemSugarCRM的禁用搜索页面模块

与一对多的关系:cm_product -> cm_item

我想禁用搜索页面cm_item,所以看为项目的唯一途径客户通过它的父母参考:cm_product

我需要通过代码来完成它。

这是我的临时解决办法,如果有人感兴趣,文件 - custom/modules/cm_item/views/view.list.php

<?php 
if(!defined('sugarEntry') || !sugarEntry) die('Not A Valid Entry Point'); 

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

class cm_itemViewList extends ViewList 
{ 
    public function preDisplay() { } 
    public function display() { 
     echo <<<HTML 
     <h1>Por favor seleccione la Oportunidad para ver sus correspondientes ventas e items.</h1> 
HTML; 
    } 
    function prepareSearchForm(){ } 
    function listViewProcess(){ } 
} 

SugarCRM的版本6.5.11(建设8754)专业版。

回答

1

听起来你真的只需要cm_item的模块选项卡,该选项卡链接到搜索和列表视图以便不显示,因此cm_items只能通过cm_product的子面板访问。要做到这一点,你不需要代码(除非你在一个可分发的模块中做)。只需将cm_item模块拖到管理 - >显示模块和子面板中的隐藏模块列表中。如果您正在大量分发模块,那么您需要在manifest.php的beans定义中将tab设置为true(请参阅http://support.sugarcrm.com/04_Find_Answers/03_Developers/Module_Loader/Introduction_to_the_Manifest_File#tab

+0

我需要acomplish通过相同代码,没有清单或管理菜单。不管怎样,谢谢你。 – Kostanos 2013-05-16 13:44:26

1

您可以通过确保模块未列在全局变量$ moduleList

+0

这不会禁用列表,并且一旦进入DetailView,您仍然可以访问该列表。 – Kostanos 2013-06-13 16:30:05

2

它可以通过可能在文件的结尾处添加空白阵列线即 定制/模块/ cm_item /元/ searchdefs.php

$searchdefs[$module_name] = array(); 
+0

这是行不通的。实际上,当我在这个文件上做了var_dump时,$ searchdefs是空数组。我甚至试过'全球$ searchdef;'任何其他想法? – Kostanos 2013-05-16 13:25:10