2008-10-21 14 views
15

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?¿Cómo se solucionan los problemas de SugarCRM/cómo funciona SugarCRM?

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?

Sólo como un ejemplo de la clase de cosas que estoy hablando: me di cuenta de cómo conseguir azúcar a trazas de la pila de impresión, y siguiendo varios Noté un patrón con todas las líneas de problemas que implica

$this->_tpl_vars
que había amo a tratar de averiguar por qué esa llamada al método no funciona, pero no sé:

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

De modo que si alguien puede ayudarme a explicar cómo y dónde comenzaría a encontrar respuestas a estas preguntas, estaría muy agradecido.

+1

P.S. He intentado buscar en la documentación proporcionada por la gente del azúcar, pero parece que todo se trata de cómo funciona la aplicación en sí, no cómo funciona el código detrás de la aplicación. – machineghost

+0

Lamentablemente, también he encontrado que esto es cierto. Poco sobre cómo funciona el código, pero mucho sobre cómo funciona la aplicación, lo que es malo para los desarrolladores – AntonioCS

Respuesta

4

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/

hicieron ayudar 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 azúcar por ahí.

14

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á 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 su experiencia en PHP es menor que el nivel de gurú, y sin duda está ocupado con muchas otras tareas y plazos, creo que debería reconsiderar esta transición si no es demasiado tarde, al menos hasta que obtener un mejor nivel de comodidad 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!

+0

¿Con qué versión de SugarCRM trabajaba? – Joseph

0

$this es una referencia al objeto actual.

class Test { 

    var $tmp; 

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

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 indica a qué directorio de módulos se accede 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 si la primera respuesta (Nack) sigue 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 de 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.

+1

"encontrar contratistas PHP asequibles" con una buena comprensión de SugarCRM debería ser difícil. Solo porque conoces bien a php, no te ayuda mucho con SugarCRM. Sugar es una aplicación de php muy grande y compleja, se necesita mucho tiempo para descubrir realmente SugarCRM (no digamos que entiendo o alguna vez entenderá realmente a Sugar) – AntonioCS

1

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 utilizando la última versión de Sugar?

Estoy realmente 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!

2

tpl es smarty archivos de plantilla. 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.

echar un vistazo a algunos fragmentos i puesto en www.eontek.rs

+0

a +1' por tus fragmentos. ;) – stefgosselin

+0

si tiene un minuto le importaría * por favor, por favor * mirando una pregunta que publiqué en su fragmento de campo personalizado, vea http://stackoverflow.com/questions/7924531/sugarcrm-6-2-adding-a -custom-field-in-user-profile. ¡Gracias! – stefgosselin

2

Si me encontré con el mismo problema, cuando la página de detalles de la cuenta no se visualiza y se entregó a 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.

6

Utilice 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 en algún lugar de su carpeta personalizada. Uso la carpeta personalizada/incluir.

Luego, anule una Vista o lo que sea que necesite mirar. Incluye la ruta al archivo class.krumo.archivo PHP, y krumo cualquiera que sea el objeto que desee echar un vistazo a:

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


    } 
?> 

que obtendrá un objeto bonito en la página que se puede perforar.

enter image description here

+1

¡Eh, buen consejo! He estado usando Krumo con Drupal desde hace unos años. Estuve embadurnando mi cabeza con azúcar durante algunos meses, y como otros notaron, se toparon con la falta de documentación para el desarrollador. – stefgosselin

Cuestiones relacionadas