Как вы отлаживаете проблемы SugarCRM / узнаете, как работает SugarCRM?

StackOverflow https://stackoverflow.com/questions/223993

  •  03-07-2019
  •  | 
  •  

Вопрос

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

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

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

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

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

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

Это было полезно?

Решение 3

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

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

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

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

Другие советы

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

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

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

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

Затем переопределите View или все, что вам нужно для просмотра. Укажите путь к файлу class.krumo.php и укажите любой объект, на который вы хотите взглянуть:

Быстрый пример -

<?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');
    }


  }
?>

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

введите описание изображения здесь

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

Может быть, этот документ chm будет немного полезным, http://code.google .com / р / sugardoc / загрузки / список .

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

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

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

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

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

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

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

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

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

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

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

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

class Test {

    var $tmp;

    function __construct() {
        $this->tmp = 42;    
    }
}
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top