15

我正在尝试将我们的公司从 SalesForce 转移到 SugarCRM,但我遇到了一个令人讨厌的错误(当我将自定义字段添加到 Accounts 时,所有帐户都停止显示)。我们已经支付了 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

只需下载源代码并将其添加到您的自定义文件夹中的某个位置。我使用自定义/包含文件夹。

然后覆盖视图或您需要查看的任何内容。包括文件 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 文档时,我发现开发人员指南确实包含了一些关于 Sugar 工作原理的解释(尽管显然它不像关注如何让 Sugar 做新事物那样关注 Sugar 的工作原理)。

希望这可以帮助任何其他新兴的 Sugar 开发人员。

于 2008-10-23T22:23:51.400 回答
2

这些代码来自 Smarty 库,而不是直接来自 SugarCRM。

也许这个 chm 文档会有点帮助,http://code.google.com/p/sugardoc/downloads/list

于 2009-11-06T09:02:05.693 回答
2

您还可以尝试安装 xdebug(PHP 扩展)并使用兼容的 IDE(例如 eclipse 或 Komodo)单步执行代码。

URL 告诉您正在访问哪个模块目录以及哪个操作/视图。大多数模块下都有一个“views”文件夹。如果它不存在,它要么使用包含文件夹中的默认 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

如果我遇到同样的问题,当帐户的详细信息页面没有显示并给出 500 内部错误时。我检查了它不是由 TPL 生成的。起初我检查了该文件夹的权限,就我而言,它们都已设置。所以我备份了 cache\modules\accounts\DetailView.tpl 并手动添加了该字段,之后一切正常。每次在开发者模式下都需要手动复制这个文件。这是一种痛苦,但仍然没有答案。我在论坛、Bug、Twitter 上问过这个问题,没有任何帮助。顺便说一句,我们正在使用 Sugar Professional。

于 2011-09-28T04:11:05.220 回答
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 回答