1

私は SugarCRM v6.5 を使用しています。Leads では、住所タイプにフィールドを追加して、住所のタイプ (オフィス、自宅など) を示したいと考えました。そのため、スタジオでこのフィールド「type_address」を単純なドロップダウンとして作成し (英語ではこの用語を知りません。フランス語では「liste à choix simple」です)、入力に使用するオプションを示しました。これまでのところ、問題ありません。フォームに表示すると、正しく入力されます。しかし、住所フィールドに追加したいので、include\SugarFields\Fields\Address\fr_FR.EditView.tpl を開き、次のような行を追加しました。

<tr style="background-color: yellowgreen;">
<td valign="top" width='25%' scope='row' ><label for="{{$typeaddr}}">{sugar_translate label='LBL_{{$key}}_ADRESS_TYPE' module='{{$module}}'}:</label>
{if $fields.{{$typeaddr}}.required || {{if $typeaddr|lower|in_array:$displayParams.required}}true{{else}}false{{/if}}}
<span class="required">{$APP.LBL_REQUIRED_SYMBOL}</span>
{/if}
</td>
<td>
<select name="{{$typeaddr}}" id="{{$typeaddr}}" title=''  >
   {html_options options=$fields.{{$typeaddr}}.options }
</select>
</td>
</tr>

テンプレートの上部に次のように入力します。

{{assign var="typeaddr" value=$displayParams.key|cat:'_adress_type_c'}}

行が表示され、ラベルは問題ありませんが、ドロップダウンに入力されません。次のように \custom\Extension\modules\Leads\Ext\Vardefs\sugarfields_primary_adress_type_c.php のオプション リストを示してみました。

$dictionary['Lead']['fields']['primary_adress_type_c']['type'] = 'base';
$dictionary['Lead']['fields']['primary_adress_type_c']['options'] = 'list_name_as_created_in_studio';

\custom\modules\Leads\metadata\editviewdefs.php にも入れてみました

0 => 
      array (
        'name' => 'primary_adress_type_c',
        'studio' => 'visible',
        'label' => 'LBL_PRIMARY_ADRESS_TYPE',
        'type' => 'base',
        'options' => list_name_as_created_in_studio',
      ),

私はenumとbaseの両方で試しました。トリックは、「enum」とオプションの配列を入れても、入力されないことです。

それを機能させるためにどこで干渉できるかわかりません。確かに何かをするのを忘れていました。

マニュアルへのリンクであっても、どんな助けも大歓迎です (私はそれを読んで助けになるものは何も見つかりませんでしたが、何かを見落としている可能性があります)

4

1 に答える 1

1

ファイルinclude\SugarFields\Fields\Address\fr_FR.EditView.tplで、次を置き換えます。

<select name="{{$typeaddr}}" id="{{$typeaddr}}" title=''  >
   {html_options options=$fields.{{$typeaddr}}.options }
</select>

と:

{html_options name=primary_adress_type_c options=$primary_adress_type_c_options selected=$fields.primary_adress_type_c.value}

custom/modules/Leads/views/view.edit.phpコンテンツを含む新しいファイルを作成する

<?php
require_once('include/MVC/View/views/view.edit.php');
class LeadsViewEdit extends ViewEdit{

    public function LeadsViewEdit(){
        parent::ViewEdit();
    }

  public function preDisplay() {
    parent::preDisplay();
    $this->ss->assign('primary_adress_type_c_options', $GLOBALS['app_list_strings']['list_name_as_created_in_studio']);
  }

    public function display(){
        parent::display();
    }
}
?>
于 2012-09-08T02:18:56.883 に答える