Как вы отлаживаете проблемы SugarCRM / узнаете, как работает SugarCRM? - PullRequest
15 голосов
/ 22 октября 2008

Я пытаюсь перевести нашу компанию с SalesForce на SugarCRM, но наткнулся на неприятную ошибку (в момент добавления настраиваемого поля в учетные записи все учетные записи перестают отображаться). Мы заплатили за поддержку от людей SugarCRM, но у них есть только техническая поддержка уровня «возьми-навсегда-тогда-ничего не стоишь» для версии с открытым исходным кодом (и мы избегаем проприетарного ПО, такого как чума). О, и я упоминал, что наш контракт с Salesforce истекает в конце недели?

Итак, короче говоря, я застрял в отладке приложения SugarCRM. Я достаточно опытный программист, и у меня есть базовые знания PHP, но я даже не знаю, где пытаться решить эту проблему. Могут ли разработчики Sugar порекомендовать какой-либо процесс отладки Sugar? Существуют ли какие-либо ресурсы, которые помогли бы мне понять, что делают различные файлы PHP, или как система Sugar работает в целом?

Просто в качестве примера того, о чем я говорю: я выяснил, как получить сахар для печати следов стека, и, следуя нескольким, я заметил шаблон со всеми проблемными строками, включающими

$this->_tpl_vars
Я хотел бы попытаться выяснить, почему этот метод не работает, но я не знаю:

А) что _tpl_vars должен делать
Б) где _tpl_vars определяется
C) что $this должно быть
D) где в рамках $this устанавливается
и т.д.

Так что, если кто-нибудь может помочь объяснить, как / где я начал бы находить ответы на эти вопросы, я был бы невероятно благодарен.

Ответы [ 9 ]

14 голосов
/ 24 октября 2008

Я работал с SugarCRM пару лет назад, и, хотя мне нравилось то, что я видел на поверхности, я отказался от этого для нашего проекта из-за того, что вы испытываете сейчас. Внутренние части продукта ужасно недокументированы. Я предполагал написать несколько полезных модулей для продукта, но ресурсов просто не существует. Вы проведете все свое время, копаясь в коде, просматривая посты на форуме и пытаясь найти примеры того, чего вы пытаетесь достичь. Не похоже, что все стало намного лучше.

Учитывая, что ваш опыт PHP ниже уровня гуру, и вы, несомненно, заняты многими другими задачами и сроками, я думаю, вам следует пересмотреть этот переход, если еще не слишком поздно, по крайней мере, пока лучший уровень комфорта с сахаром. Если вы вынуждены переехать в Sugar из-за истекающего контракта с Salesforce, я думаю, у вас может быть серьезная изжога!

6 голосов
/ 14 октября 2011

Используйте библиотеку Krumo , чтобы помочь. Это супер просто и намного лучше, чем var_dump или print_r.

Просто скачайте исходный код и добавьте его где-нибудь в вашей пользовательской папке. Я использую папку custom / include.

Затем переопределите View или все, что вам нужно для просмотра. Включите путь к файлу 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');
    }


  }
?>

На странице вы получите красивый объект, который вы можете развернуть.

enter image description here

4 голосов
/ 24 октября 2008

Хотя это не идеальный ответ на мой вопрос, эта статья:

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

немного помогло. Также, просматривая официальные документы Sugar, я обнаружил, что Руководство разработчика содержит некоторые пояснения о том, как работает Sugar (хотя, очевидно, оно не столько сфокусировано на том, как работает Sugar, сколько на том, как заставить Sugar делать новые вещи).

Надеюсь, это поможет любым другим развивающимся разработчикам Sugar.

2 голосов
/ 28 сентября 2011

Если я столкнулся с той же проблемой, когда страница сведений об учетной записи не отображалась и выдает 500 внутренних ошибок Я проверил, что это не было сгенерировано TPL. Сначала я проверил разрешения для этой папки, в моем случае все они были установлены. Поэтому я взял резервную копию cache \ modules \ accounts \ DetailView.tpl и вручную добавил поле, после чего все заработало Каждый раз в режиме разработчика необходимо вручную скопировать этот файл. Это боль, но ответа до сих пор нет. Я просил об этом на форумах, ошибок, Twitter, без помощи. Кстати, мы используем Sugar Professional.

2 голосов
/ 18 октября 2010

tpl - это файлы шаблонов smarty. Они используются при отображении данных на экране. Как я делаю мой процесс отладки, создаю много вар-дампов к ошибке lof или просто печатаю их на экране.

Также получите xdebug на сервере, это вам очень поможет. Sugar - это платформа mvc, так что узнайте, как это работает, и тогда будет намного проще.

взгляните на некоторые фрагменты, которые я публикую на www.eontek.rs

2 голосов
/ 06 ноября 2009

Вы также можете попробовать установить xdebug (расширение PHP) и пройти по коду с помощью совместимой IDE, такой как eclipse или Komodo.

URL-адрес сообщает вам, к какому каталогу модуля осуществляется доступ и какое действие / просмотр. В большинстве модулей есть папка «views». Если его там нет, он либо использует представление MVC по умолчанию в папке include вместе с макетом метаданных, либо использует классическую архитектуру представления: index.php (listview), DetailView.php, EditView.php и шаблоны.

За последние пару лет многое изменилось в лучшую сторону, поэтому я не уверен, что первый ответ (Nack) по-прежнему актуален. Это все еще довольно грубо по краям, но новая среда Sugar - лучший друг хакера PHP (действительно легко перезаписать вещи с помощью обновления). Это отлично подходит для компаний, у которых уже есть PHP-хакеры, которым нужно всего лишь несколько улучшений. И найти доступных подрядчиков PHP, чтобы помочь, не так сложно (отказ от ответственности: я один). Я думаю, что это отличный инструмент, если вы работаете с открытым исходным кодом, просто нуждаетесь в базовой CRM и имеете менее 100 пользователей.

2 голосов
/ 06 ноября 2009

Этот код поступает из Smarty lib, а не напрямую из SugarCRM.

Может быть, этот документ будет немного полезным, http://code.google.com/p/sugardoc/downloads/list.

1 голос
/ 08 марта 2010

Я бы посоветовал убедиться, что это действительно ошибка кода, а не просто ошибка конфигурации. Вы добавляете поле через Admin> Studio> Contacts> Fields или через SOAP API?

Вы используете последнюю версию Sugar?

Я действительно согласен, что проект это ужасно недокументированный и не хватает учебников и примеров.

Я сам испытываю боль от устаревшей / отсутствующей документации. Удачи!

0 голосов
/ 27 октября 2008

$this является ссылкой на текущий объект.

class Test {

    var $tmp;

    function __construct() {
        $this->tmp = 42;    
    }
}
...