Sugar Developer Blog

Archive for the ‘Uncategorized’ Category

MySQL goes lean

Thursday, July 24th, 2008

An extremely fast database is a key comonpent to a successful SugarCRM implementation.  MySQL lead architect Brian Aker has announced the Drizzle project which will redesign the MySQL core to be based on a modular architecture.  The upside of this redesign will be the ability to install a MySQL-based db without unneeded functionality that slows down the db engine.  Hence a smaller db engine designed for Web-based apps.

Some of the functionality that won’t be in the core engine are listed in the project FAQ.

No modes, views, triggers, prepared statements, stored procedures, query cache, data conversion inserts, ACL. Fewer data types.  Less engines, less code. Assume the primary engine is transactional.

It appears Drizzle is a separate project and product with many MySQL engineers working on it but not being directly run by Sun/MySQL.  It would be interesting to see how much of this work will factor back into the core MySQL distribution over time.  Either way, it seems there is certainly a market for lean and mean db’s targeted exclusively at Web-based apps.

Working on the Developers Guide

Friday, June 27th, 2008

The much anticipated and long awaited Developers Guide is in the works.  We will be making the first public copy available for comment in a few weeks.  Based on the content in the Wiki and various developer notes written by the Sugar team, the Developers Guide will detail the internals of the Sugar code and how to customize the system.

Below you will find the current Table of Contents.  I’d love to hear your feedback on the current structure of the guide.

SugarCRM Developers Guide

Table of Contents

1.0 SugarCRM Overview
1.1 Platform Overview
1.2 Application Framework Overview
1.3 Directory Structure
1.4 Key Concepts
1.5 Entry Points
1.6 Module Framework Overview
1.7 Module Builder
1.8 User Interface Framework Overview
1.9 Extension Framework Overview
1.10 Dashlets Overview

2.0 Application Framework
2.1 Directory Structure
2.2 Entry Points
2.3 Dashlets
2.3.1 Dashlet Files
2.3.2 Templating
2.3.4 Categories
2.3.5 Dashlet Base Class
2.3.6 Dashlets JavaScript
2.4 Browser JavaScript
2.4.1 Accessing Language Pack Strings
2.4.2 Quicksearch
2.5 Databases
2.5.1 Primary Keys
2.6 ACL
2.7 Scheduler
2.8 Workflow
2.9 Logger
2.9.1 Logger Level
2.9.2 Log File Name
2.9.3 Log File Extension
2.9.4 Log File Date Format
2.9.5 Max Log File Size
2.9.6 Max Number of Log Files
2.9.7 Log Rotation

3.0 Module Framework
3.1 Overview
3.2 MVC and Metadata Framework
3.2.1 Model-View-Controller (MVC) Overview
3.2.2 SugarCRM MVC Implementation
3.2.2.1 Model
3.2.2.2 Controller
3.2.2.3 View
3.3 Metadata Framework
3.3.1 Background
3.3.2 SearchForm Metadata
3.3.3 DetailView and EditView Metadata
3.3.4 SugarField Widgets
3.3.5 SugarFields Widgets Glossary
3.3.6 Metadata Framework Summary
3.4 Vardefs
3.4.1 Dictionary Array
3.4.2 Fields Array
3.4.3 Indices Array
3.4.4 Relationships Array
3.5 Relationships
3.6 Subpanels
3.6.1 One-to-Many Relationships
3.6.2 Many-to-Many Relationships
3.6.3 Relationship Metadata
3.6.4 Layout Defs
3.6.5 Language
3.7 Shortcuts

4.0 Customizing Sugar
4.1 Developer Mode
4.2 Packaging Customizations for Installation
4.2.1 Introduction
4.2.2 Manifest Array Elements
4.2.3 Installdef Array Elements
4.2.4 Upgrade Manifest Array
4.2.5 Sample Manifest File
4.3 Module Builder
4.3.1 Packages
4.3.2 Module Templates
4.3.3 Deploy vs Publish
4.4 Business Logic Hooks
4.4.1 Hook Definition
4.4.2 Caveats
4.4.3 Available Hooks
4.4.4 Packaging Custom Logic Hooks
4.4.5 Using Custom Logic Hooks
4.5 UI Customizations
4.5.1 Custom Grouping of Values
4.5.2 Custom Buttons
4.5.3 Creating New Custom Displays
4.5.4 Overriding the Metadata Framework
4.5.5 Creating a Custom SugarField
4.5.6 Adding QuickSearch to a Custom Field
4.5.7 Tips & Pitfalls
4.6 Adding Custom Jobs to the Scheduler
4.7 Extending Workflow
4.8 Creating New Dashlets
4.8.1 Generic Dashlet Creation
4.8.2 Custom Dashlets
4.8.3 Packaging Custom Dashlets
4.8.4 Refreshing the Dashlet Cache
4.8.5 Modifying the Default Dashlet Setup for New Users
4.9 Creating New Themes
4.9.1 Overview
4.9.2 Steps to Create a New Theme
4.9.3 Packaging Custom Themes
4.9.4 Example Manifest File
4.10 Creating Language Packs

What’s new at Sugar U

Friday, June 27th, 2008

If you’ve taken a look at Sugar Univeristy lately, you will have seen that Sugar U has expanded beyond just providing online training.  There are now a series of classroom-based trainings.  The two offerings are 1) the two-day Admin Fundamentals class which is great for anybody who will be managing a SugarCRM installation and 2) the two-day Sugar End-User Train-the-Trainer class which is for project leads and super users who will need to train your end-users.

Both classes have excellent hands-on labs and you will leave with an in-depth understanding of SugarCRM that will be key to your success with Sugar.  Sign up for the classes here.

Last week’s Developer Webcast

Tuesday, June 17th, 2008

We had a great Developer Webcast last Thursday where Sugar Lead Architect Majed Itani went deep into customizing Sugar by building a new Dashlet and creating an RSS Feed for a new Blog module. Lots of coding tips and tricks were covered. If you missed the live session, you can view the recording here. This is a session well worth watching.

There is also a new tutorial posted in the Developer Zone Tutorials page that covers how to programmatically hide and display a panel based on the value of a dropdown.

SugarCRM “sorts out Customer Service” for parade.com

Tuesday, June 17th, 2008

I always love to hear about how companies are using Sugar to improve their customer relationships. You know the Parade magazine that comes in your Sunday newspaper? See this blog post for how Parade is using SugarCRM for managing customer requests coming in from their parade.com website.

Sugar in the NPO sector

Thursday, June 12th, 2008

It’s always great to see the new and innovative ways people are using SugarCRM.  I’ve been recently hearing more and more about Sugar being used by NPO’s to manage their businesses.  I came across this blog post today where a minister in the US is using SugarCRM to help his church track everything from members to events to community business contacts.

I also recently talked to the folks at GOAL, a non-profit aid organization based out of Ireland.  Think of it as the Peace Corps of Ireland.  They have taken Sugar Open Source 4.5.1 and built over a dozen new modules to help their organization track everything from field projects around the world to expense reports from aid workers in Burma.

One of the things I love the most about SugarCRM is how we’ve built an open source platform that is bringing an enterprise-class application to businesses around the world that couldn’t afford the technology before.

Great stuff!

Adding new duplicate check indexes

Wednesday, June 11th, 2008

So you are ready to import records into your new custom module, but you want to check for duplicates during the import.  The Sugar Import utility does allow you to check for duplicates, but you need to first define what duplicate check indexes are available to check against.

Here is a forum post I just wrote answering how to create new indexes for use during an import.

Sugar and Talend at LinuxTag

Saturday, May 31st, 2008

I’m at the LinuxTag event here in Berlin this week and am really pleased with how good of an event it is. It is easily on par with the LinuxWorld events back in the US.  And of course Germany leads Europe in open source enthusiasm and growth.

As always, one of the best parts of attending a conference for me is to see what other companies and projects are doing with SugarCRM.

One of the hits for us at the show has been the Talend connector for SugarCRM. Talend is a commercial open source provider of data integration solutions. With Talend, you can synchronize customer information between Sugar and any other system such as MS Navision or SAP. This greatly simplifies your sales person’s life when it comes to updating customer information. He can simply update the customer’s billing address in Sugar and the change is automatically pushed out to the financials system. They have the Sugar connector built into their Business Connector suite and provide implemenation help as well.  Talend is working with several Sugar customers providing this exact data integration solution today.

Another very cool integration that I saw for the first time is between Starface and SugarCRM. Starface is a very well designed VoIP system that has recently built an extremely cool integration with SugarCRM. When you run Starface for your telephony system and Sugar for your CRM system, your sales people can be working inside of Sugar, a new phone call comes in and the customer record automatically comes up in Sugar. All inbound and outbound phone calls are automatically recorded in Sugar, thereby giving you a very clear and well-organized view of when you talked last with a customer. Like Talend, this is a very real product ready to be installed in your company today.

Sugar 5.0 ER Diagrams Available

Saturday, May 31st, 2008

The Sugar team has recently released ER (entity relationship) diagrams for the Sugar 5.0 database. We will make ER diagrams available with each release moving forward.

Sugar 5.0 Contacts entity relationships

The package includes a PDF document and a DDL (data definition language) file that creates the schema with foreign key relationships. You can use the DDL to reverse engineer the diagrams with any diagram tool such as MySQL WorkBench.

You will find the Sugar 5.0 Community Edition ER diagrams here in the Developer Zone. The ER diagrams for the Sugar Professional and Sugar Enterprise Editions are available for subscribers in the download manager at http://support.sugarcrm.com.

PHP 5 Support Plan

Wednesday, May 28th, 2008

As you know, Sugar 5.1 will be our first release where we support only PHP 5 and will drop support for PHP 4. The minimum supported version of PHP for Sugar 5.1 will be PHP 5.1.

With PHP 5.2 now the primary release supported by the PHP team and no more work being done on PHP 5.1, we plan to drop support for PHP 5.1 and require a minimum version of PHP 5.2 with the Sugar 5.5 release targeted at the end of this year. We still support PHP 5.1, but do recommend that you use the latest version of PHP 5.2 as that is proving to be a far more stable PHP release for Sugar to run.

To summarize:

  • Sugar 5.0 requires a minimum of PHP 4.4.1, but we recommend PHP 5.2
  • Sugar 5.1 will require a minimum of PHP 5.1.0, but again we recommend PHP 5.2
  • With Sugar 5.5 at the end of the year, we will require a minimum of PHP 5.2

Onwards and upwards!

Have feedback for us? Drop us a line.
Terms & Conditions | Privacy | Trademark Info | Contact Info | FAQs | SugarCRM Inc.© 2004 - 2007 All rights reserved.