versiones suitecrm sugar source precio open gratuito community caracteristicas php sugarcrm

php - suitecrm - ¿Cómo se solucionan los problemas de SugarCRM/cómo funciona SugarCRM?



sugarcrm versiones (9)

Aunque no es una respuesta perfecta a mi pregunta, este artículo:

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

ayudó un poco También cuando miré más a través de los documentos oficiales de Sugar, encontré que la Guía del desarrollador contiene alguna explicación de cómo funciona Sugar (aunque obviamente no está tan centrado en cómo funciona Sugar, sino que está centrado en cómo hacer que Sugar haga cosas nuevas).

Espero que ayude a cualquier otro floreciente desarrollador de Sugar por ahí.

Estoy en el proceso de intentar mover nuestra empresa de Salesforce a SugarCRM, pero me he encontrado con un desagradable error (en el momento en que agrego un campo personalizado a Cuentas, todas las cuentas dejan de aparecer). Hemos pagado por el apoyo de la gente de SugarCRM, pero solo tienen soporte técnico para la versión de código abierto que se lleva para siempre y luego obtienes software propietario como la peste. Ah, ¿y mencioné que nuestro contrato de Salesforce expira al final de la semana?

Así que, para abreviar, estoy atascado depurando la aplicación SugarCRM yo mismo. Soy un programador bastante experimentado, y tengo la competencia de PHP básica, pero ni siquiera sé dónde tratar de resolver este problema. ¿Pueden los desarrolladores de Sugar recomendar algún tipo de proceso para depurar azúcar? ¿Hay algún recurso que me ayude a entender qué hacen los diferentes archivos PHP, o cómo funciona el sistema Sugar en general?

Solo como un ejemplo del tipo de cosas de las que estoy hablando: descubrí cómo hacer que el azúcar imprima rastros de pila, y al seguir varias noté un patrón con todas las líneas problemáticas que involucraban

$this->_tpl_vars Me encantaría intentar averiguar por qué esa llamada al método no funciona, pero no sé:

A) lo que se supone que debe hacer _tpl_vars
B) donde se define _tpl_vars
C) que $this se supone que es
D) donde en el marco $this se establece
etc.

Entonces, si alguien puede ayudar a explicar cómo / dónde comenzaría a encontrar respuestas a estas preguntas, estaría increíblemente agradecido.


Trabajé con SugarCRM hace un par de años, y aunque me encantó lo que vi en la superficie, terminé rechazándolo por nuestro proyecto debido a lo que estás experimentando ahora. Las partes internas del producto están tristemente infravaloradas. Había imaginado escribir un montón de módulos hábiles para el producto, pero los recursos simplemente no existen. Pasarás todo tu tiempo investigando el código, revisando las publicaciones del foro y tratando de encontrar ejemplos de lo que intentas lograr. No parece que las cosas hayan mejorado mucho.

Dado que tu experiencia PHP es menor que el nivel de gurú, y sin dudas estás ocupado con muchas otras tareas y fechas límite, creo que deberías reconsiderar esta transición si no es demasiado tarde, al menos hasta que obtengas una mayor comodidad. nivel con Sugar Si se ve obligado a mudarse a Sugar debido a un contrato que expira con Salesforce, ¡creo que podría sufrir de una acidez estomacal grave!


$this es una referencia al objeto actual.

class Test { var $tmp; function __construct() { $this->tmp = 42; } }



También puede intentar instalar xdebug (extensión PHP) y recorrer el código con un IDE compatible como eclipse o Komodo.

La URL le dice a qué directorio de módulos se está accediendo y qué acción / vista. Hay una carpeta de "vistas" en la mayoría de los módulos. Si no está allí, está utilizando la vista MVC predeterminada en la carpeta de inclusión junto con el diseño de metadatos, o está usando la arquitectura de vista clásica: index.php (vista de lista), DetailView.php y EditView.php y plantillas.

Mucho ha cambiado para mejor en los últimos años, así que no estoy seguro de que la primera respuesta (Nack) siga siendo relevante. Todavía es bastante complicado, pero el nuevo framework de Sugar es el mejor amigo de un hacker de PHP (realmente es muy fácil anular cosas de una manera amigable para las actualizaciones). Es ideal para las empresas que ya tienen hackers de PHP y solo necesitan algunas mejoras. Y encontrar contratistas PHP asequibles para ayudar no es tan difícil (descargo de responsabilidad: yo soy uno). Creo que es una gran herramienta si te gusta el código abierto, solo necesitas CRM básico y tienes menos de 100 usuarios.


Sugeriría asegurarme de que realmente es un error de código y no solo una configuración de error. ¿Está agregando el campo a través de Admin> Estudio> Contactos> Campos oa través de la API de SOAP?

¿Estás usando la última versión de Sugar?

Realmente estoy de acuerdo en que el proyecto está terriblemente infra-documentado y carece de tutoriales y ejemplos.

Yo mismo estoy experimentando los dolores de la documentación obsoleta / faltante. ¡Buena suerte!


tpl es archivos de plantillas inteligentes. Se usan cuando se muestran datos en la pantalla. Cómo hago mi proceso de depuración es crear una gran cantidad de volcados de var para error lof o simplemente imprimirlos en la pantalla.

También obtenga xdebug en el servidor, esto le ayudará mucho. Sugar es una plataforma de mvc, así que averigua cómo funciona eso, y será mucho más fácil.

Eche un vistazo a algunos fragmentos que publico en www.eontek.rs


Si me encontré con el mismo problema, cuando la página de detalles de la cuenta no se mostró y dio 500 error interno. Comprobé que no fue generado por TPL. Al principio revisé los permisos en esa carpeta, en mi caso estaban todos configurados. Así que tomé la copia de seguridad de caché / modules / accounts / DetailView.tpl y agregué el campo manualmente, después de eso todo funcionó. Cada vez que está en el modo de desarrollador, hay una necesidad de copiar este archivo manualmente. Es un dolor, pero todavía no hay respuesta. Lo he preguntado en foros, Bug, Twitter, sin ayuda. Por cierto, estamos usando Sugar Professional.


Usa la biblioteca Krumo para ayudar. Es súper fácil y mucho mejor que var_dump o print_r .

Simplemente descargue el código fuente y agréguelo a algún lugar de su carpeta personalizada. Uso la carpeta personalizada / incluir.

Luego anula una vista o lo que sea que necesites mirar. Incluya la ruta al archivo class.krumo.php, y krumo, cualquier objeto que quiera ver:

Ejemplo rápido -

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

Obtendrá un buen objeto en la página en el que puede profundizar.