0

私のバージョン:

Linux上で実行されているSugarCRMCE6.5.2

私がやりたいこと :

いくつかのロジックフックを作成して、「custom / modules/Documents」のDocumentsモジュールをカスタマイズしました。これらのロジックフックは、私の新しいアップロードフォルダである「ressources/」に新しいフォルダを作成します。(config.phpで「upload_dir」を「./upload」から「./ressources」に変更しました)これは、「folder_name」という名前のスタジオで作成されたカスタムフィールドを介して行われます。次に、ロジックフックをカットアンドペーストしますこの新しいフォルダにアップロードされたドキュメント。

私の問題は何ですか

したがって、これらすべてで、[編集]、[詳細]、および[リビジョン]サブパネルビューのダウンロードURLが正しくありません。たとえば、次のようにURLにフォルダパラメータを追加するなど、適切なフォルダに変更したいと思います。

/index.php?entryPoint=download&folder=Images&id=idDoc&type=Documents

EditView.tplまたはDetailView.tpl(のように)のhrefリンクを変更しようとしましたが、それらがcache / modules / Documentsフォルダーにあり、迅速な修復を行ったときにオーバーライドされていたため、機能しませんでした。

そこで、DetailView.tplとEditView.tplをcustom / modules / Documents / tplsにコピーして貼り付け、view.edit.phpとview.detail.phpをオーバーライドして、カスタマイズされたテンプレートをリンクしようとしましたが、機能しませんでした。 。コード:

<?php

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

  class DocumentsViewDetail extends ViewDetail {

     function DocumentsViewDetail() {
       parent::ViewDetail();
     }

    function display() {
      parent::display();
    }

    function detailViewProcess() {
      $this->processSearchForm();
      $this->lv->searchColumns = $this->searchForm->searchColumns;

      if (!$this->headers)
        return;
      if (empty($_REQUEST['search_form_only']) || $_REQUEST['search_form_only'] == false) {
        //here we are overriding with your custom template            
        $this->lv->setup($this->seed, 'custom/modules/Documents/tpls/DetailView.tpl', $this->where, $this->params);
        echo $this->lv->display();
       }
   }

}

?>

なぜこれが機能しないのか分かりますか?

URLを書き換えたり、編集、リビジョンサブパネル、詳細ビューを上書きしたりする方法について何か考えがありますか?

答えてください、これは緊急です

よろしくお願いします。

4

2 に答える 2

1

$file_urlのメソッド内fill_in_additional_detail_fields()の変数にフォルダー パラメーターを追加してみてくださいmodules/Documents/Document.php

【編集済】

EditView: include/SugarFields/Fields/File/EditView.tpl
DetailView: include/SugarFields/Fields/File/DetailView.tpl

<a href="index.php?entryPoint=download&id={$fields.{{$vardef.fileId}}.value}&type={{$vardef.linkModule}}&folder=test" ...

ListView: include/SugarFields/Fields/File/ListView.tpl

<a href="index.php?entryPoint=download&id={$parentFieldArray.ID}&type={$displayParams.module}{$vardef.displayParams.module}&folder=test" ...

于 2012-09-26T17:38:53.777 に答える
0

だから、@ air4x のおかげで、私は自分の問題に答えました: DetailView.tpl をオーバーライドして、アップグレードを安全にするために、からコピーします

include/SugarFields/Fields/File/DetailView.tpl

custom/include/SugarFields/Fields/File/DetailView.tpl

できます!

しかし、大きなトラブルが発生します...

説明: 1] 新しいドキュメントを作成し、image01 を Folder01 にアップロードします。保存。データベースは大丈夫です。DetailView では、フォルダ名は「Folder01」で、リンク「//Folder01/image01_id」が機能します。

2] 別の新しいドキュメントを作成し、image02 を Folder02 にアップロードします。保存。データベースOK。ただし、DetailView では、フォルダの名前は「Folder02」ではなく「Folder01」です。AND リンクは //Folder01/image02_id であるため、機能しません。データベースまたは私のフォルダーでは、ファイルはまだ Folder02 にあるためです。

これが私の custom/include/SugarFields/Fields/File/DetailView.tpl コードです:

//BEGIN the code i modified
<span class="sugar_field" id="{{if empty($displayParams.idName)}}{{sugarvar key='name'}}{{else}}{{$displayParams.idName}}{{/if}}">
   <a href="ressources/{$fields.folder_name_c.value}/{$fields.{{$vardef.fileId}}.value}" class="tabDetailViewDFLink" target='_blank'>{{sugarvar key='value'}}</a>
</span>
//END the code i modified

{{if isset($vardef) && isset($vardef.allowEapm) && $vardef.allowEapm}}
    {if isset($fields.{{$vardef.docType}}) && !empty($fields.{{$vardef.docType}}.value) && $fields.{{$vardef.docType}}.value != 'SugarCRM' && !empty($fields.{{$vardef.docUrl}}.value) }
        {capture name=imageNameCapture assign=imageName}
          {$fields.{{$vardef.docType}}.value}_image_inline.png
        {/capture}
        <a href="{$fields.{{$vardef.docUrl}}.value}" class="tabDetailViewDFLink" target="_blank">{sugar_getimage name=$imageName alt=$imageName other_attributes='border="0" '}</a>
   {/if}
{{/if}}
{{if !empty($displayParams.enableConnectors)}}
    {{sugarvar_connector view='DetailView'}}
{{/if}}

私の$fields.folder_name_c.valueが最初のドキュメントにとどまり、2番目のドキュメントの値を置き換える理由が本当にわかりません... EditView.tplでSQLクエリを実行して変更する方法を知っていますか正しい値?

お願いします、本当に助けが必要です。

ありがとうございました

(ps : @air4x、ありがとうございます。別の問題があったとしても、EditView をオーバーライドする方法を教えてくれました。ありがとうございます! )

于 2012-09-28T10:19:59.900 に答える