15

会社を SalesForce から SugarCRM に移行しようとしていますが、厄介なバグに遭遇しました (アカウントにカスタム フィールドを追加した瞬間に、すべてのアカウントが表示されなくなります)。私たちは SugarCRM の人々からのサポートにお金を払いましたが、彼らはオープンソース バージョンに対して、永遠に取る価値のない応答レベルの技術サポートしか提供していません (そして私たちはペストのようなプロプライエタリ ソフトウェアを避けています)。ああ、Salesforce 契約が週末に期限切れになることは言いましたか?

要するに、私は SugarCRM アプリを自分でデバッグするのに行き詰まっています。私は十分な経験を積んだプログラマーであり、基本的な PHP の能力は持っていますが、この問題をどこで解決しようとしているのかさえわかりません。Sugar 開発者で、Sugar をデバッグするためのプロセスを推奨できる人はいますか? さまざまな PHP ファイルの機能や、Sugar システム全体の仕組みを理解するのに役立つリソースはありますか?

私が話している種類の例として: 私は砂糖を取得してスタック トレースを出力する方法を見つけました。

$this->_tpl_vars
そのメソッド呼び出しが機能しない理由を突き止めたいのですが、わかりません:

A) 何_tpl_varsをすべきか
B) どこ_tpl_varsで定義されて
いるか C) 何$thisをすべきか
D) フレームワークのどこで$this設定されるか
など

したがって、これらの質問に対する答えをどこでどのように見つけ始めるかを誰かが説明できる場合は、非常に感謝しています.

4

9 に答える 9

14

私は数年前に SugarCRM で仕​​事をしました。表面的に見たものは気に入っていましたが、あなたが今経験していることを理由に、私たちのプロジェクトではそれを拒否することになりました。製品の内部はひどく文書化されていません。私は製品用に洗練されたモジュールをたくさん書くことを思い描いていましたが、リソースがまったくありません。コードを掘り下げたり、フォーラムの投稿を調べたり、達成しようとしているものの例を探したりすることにすべての時間を費やします。物事がずっと良くなったようには聞こえません。

あなたの PHP の経験は達人レベルではなく、間違いなく他の多くのタスクと締め切りで忙しいことを考えると、少なくともより快適になるまで、手遅れでない場合は、この移行を再検討する必要があると思います。砂糖で平らにします。Salesforce との契約が切れて Sugar に移行せざるを得なくなった場合は、深刻な胸やけを起こしている可能性があります。

于 2008-10-24T16:30:41.863 に答える
6

Krumoライブラリを使用してください。それは非常に簡単で、var_dumporよりもはるかに優れていprint_rます。

ソース コードをダウンロードして、カスタム フォルダーのどこかに追加するだけです。custom/include フォルダーを使用します。

次に、ビューまたは必要なものをオーバーライドします。class.krumo.php ファイルへのパスと、調べたい任意のオブジェクトの krumo を含めます。

簡単な例 -

<?php
  require_once('include/MVC/View/views/view.detail.php');
  require_once('custom/include/krumo/class.krumo.php');
  class AccountsViewDetail extends ViewDetail {

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

    // Override the parent function "preDisplay" to add our own template
    function preDisplay(){
      krumo($this->bean);
      $metadataFile = $this->getMetaDataFile();
      $this->dv = new DetailView2();
      $this->dv->ss =&  $this->ss;
      $this->dv->setup($this->module, $this->bean, $metadataFile, 'custom/modules/Accounts/tpls/AccountsDetailView.tpl');
    }


  }
?>

ドリルダウンできる素敵なオブジェクトがページに表示されます。

ここに画像の説明を入力

于 2011-10-14T15:34:53.993 に答える
4

私の質問に対する完全な回答ではありませんが、この記事は次のとおりです。

http://developers.sugarcrm.com/wordpress/2008/09/26/where-is-the-code-for-x/

少し役に立ちました。また、Sugar の公式ドキュメントをさらに調べたところ、Developer Guide には Sugar がどのように機能するかについての説明が含まれていることがわかりました (ただし、Sugar がどのように機能するかというよりも、Sugar に新しいことをさせる方法に重点を置いていることは明らかです)。

他の急成長中の Sugar 開発者に役立つことを願っています。

于 2008-10-23T22:23:51.400 に答える
2

同じ問題が発生した場合、アカウントの詳細ページが表示されず、500の内部エラーが発生したとき。TPLによって生成されたものではないことを確認しました。最初に、そのフォルダーのアクセス許可を確認しました。私の場合は、すべて設定されています。そこで、cache \ modules \ accounts \ DetailView.tplのバックアップを取り、手動でフィールドを追加しました。その後、すべてが機能しました。開発者モードでは、毎回このファイルを手動でコピーする必要があります。それは苦痛ですが、それでも答えはありません。私はフォーラム、バグ、ツイッターでこれを尋ねました、助けはありません。ちなみに、SugarProfessionalを使用しています。

于 2011-09-28T04:11:05.220 に答える
2

また、xdebug (PHP 拡張機能) をインストールして、eclipse や Komodo などの互換性のある IDE を使用してコードをステップ実行することもできます。

URL は、どのモジュール ディレクトリがアクセスされているか、およびどのアクション/ビューが表示されているかを示します。ほとんどのモジュールの下に「ビュー」フォルダーがあります。そこにない場合は、インクルード フォルダー内の既定の MVC ビューをメタデータ レイアウトと共に使用しているか、従来のビュー アーキテクチャ (index.php (listview)、DetailView.php、EditView.php およびテンプレート) を使用しています。

ここ数年で多くのことが良くなったので、最初の答え (Nack) がまだ適切かどうかはわかりません。端っこはまだかなりラフですが、新しい Sugar フレームワークは PHP ハッカーの親友です (アップグレードしやすい方法でオーバーライドするのは本当に簡単です)。たまたま既に PHP ハッカーがいて、ほんの少しの機能拡張しか必要としない企業にとっては素晴らしいことです。また、手ごろな価格の PHP 請負業者を見つけることはそれほど難しくありません (免責事項: 私もそうです)。オープンソースに興味があり、基本的な CRM だけが必要で、ユーザー数が 100 人未満の場合、これは素晴らしいツールだと思います。

于 2009-11-06T15:42:21.490 に答える
2

tpl は smarty テンプレート ファイルです。これらは、画面にデータを表示するときに使用されます。デバッグ プロセスを行う方法は、多くの var ダンプを作成してエラー lof にするか、画面に出力するだけです。

また、サーバーで xdebug を入手してください。これは非常に役立ちます。Sugar は mvc プラットフォームなので、それがどのように機能するかを理解してください。

私がwww.eontek.rsに投稿したいくつかのスニペットを見てください

于 2010-10-18T10:50:21.493 に答える
2

これらのコードは、SugarCRM から直接ではなく、Smarty lib からのものです。

http://code.google.com/p/sugardoc/downloads/listの chm doc が少し役立つかもしれません。

于 2009-11-06T09:02:05.693 に答える
1

それが単なる設定ミスではなく、本当にコードのバグであることを確認することをお勧めします。Admin > Studio > Contacts > Fields または SOAP API からフィールドを追加していますか?

最新バージョンの Sugar を使用していますか?

プロジェクトの文書化がひどく不十分で、チュートリアルや例が不足していることに本当に同意します。

私自身、古いドキュメントやドキュメントの欠落に苦しんでいます。幸運を!

于 2010-03-08T18:00:18.813 に答える
0

$this現在のオブジェクトへの参照です。

class Test {

    var $tmp;

    function __construct() {
        $this->tmp = 42;    
    }
}
于 2008-10-27T00:54:24.397 に答える