解决SugarCRM 6.5中的动态下拉列表问题

时间:2013-10-17 06:15:21

标签: php mysql sugarcrm

我曾经在这里问过一个关于为SugarCRM设置数据库填充下拉列表的问题。我收到了一个非常好的答案,经过更多的php研究和一个dev实例运行后,我决定试一试。我可以找到我遵循的说明here。运行修复和重建后,我希望在工作室中的模块下的“字段”列表中看到自定义字段,但无法找到它。该模块名为Makers(a1_makers为数据库表)。为了好的订单,保存文件后修复/重建时没有错误。

按照说明,我首先创建了一个带有自定义函数的php文件来查询数据库(自定义/扩展/应用/外部/的Utils / getMakers.php):

<?php
    function getMakers() {
    static $makers = null;
    if (!$makers){
            global $db;
            $query = "SELECT id, name FROM a1_maker";
            $result = $db->query($query, false);

            $accounts = array();
            $accounts[''] = '';

            while (($row = $db->fetchByAssoc($result)) !=null) {
                    $accounts[$row['id']] = $row['name'];
            }
    }
    return $makers;
 }
?>

然后,我在Vardefs中设置'function'字段指向函数(custom / Extension / modules / Maker / Ext / Vardefs / makers_template.php):

<?php
     $dictionary['Maker']['fields']['list_of_makers'] = array (
          'name' => 'list_of_makers',
          'vname' => 'LBL_MKRLST'
          'function' => 'getMakers',
          'type' => 'enum',
          'len' => '100',
          'comment' => 'List of makers populated from the database',
    );
   ?>

不幸的是,没有错误,修复/重建运行正常。我进入工作室时,我无法看到自定义字段。谁能帮助指出我可能做错了什么?

2 个答案:

答案 0 :(得分:2)

我建议在cache/modules/Maker/Makervardefs.php文件中检查是否存在新创建的字段'list_of_makers'。如果该文件中存在新字段定义,请尝试将'studio' => 'visible'添加到custom/Extension/modules/Maker/Ext/Vardefs/makers_template.php以获得以下内容:

<?php
     $dictionary['Maker']['fields']['list_of_makers'] = array (
          'name' => 'list_of_makers',
          'vname' => 'LBL_MKRLST'
          'function' => 'getMakers',
          'type' => 'enum',
          'studio' => 'visible'
          'len' => '100',
          'comment' => 'List of makers populated from the database',
    );

尝试手动编辑自定义/ modules / Maker / metadata / editviewdefs.php并在适当的位置手动插入字段定义,如果上述所有内容都不起作用。

答案 1 :(得分:0)

$dictionary['Maker']['fields']['list_of_makers'] = array (
      'name' => 'list_of_makers',
      'vname' => 'LBL_MKRLST'
      'function' => 'getMakers',
      'type' => 'enum',
      'studio' => 'visible'
      'len' => '100',
      'comment' => 'List of makers populated from the database',
      'studio' => array( 
            'listview' => true,
            'detailview' => true,
            'editview' => true
        ),
);