SugarCRM Developer Blog

Working on the Developers Guide

27 Jun, 2008
Posted By: Clint Oram

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

  • Scott Whitlow

    This looks great! I can’t wait to read it!

    It would be great to have a small how-to section as an addendum at the end of the Developers Guide. It could include items like the following:

    1. Practical Real-World Examples
    2. When to leave Custom and Go For the Core Code
    3. Building a Module from Code
    4. MVC Common Customizations
    5. Helpful SugarBean functions and routines
    6. Time/Date storing outside of a Module
    7. Direct DB Access using SugarCRM Framework
    8. Popups in Plain English
    9. Chmod, Chown – Permissions Explained

    These are just off the top of my head. But, alot of these items are pretty common for most developers and are items you see discussed quite a bit on the forums.

    Thanks!

  • Scott Whitlow

    This looks great! I can’t wait to read it!

    It would be great to have a small how-to section as an addendum at the end of the Developers Guide. It could include items like the following:

    1. Practical Real-World Examples
    2. When to leave Custom and Go For the Core Code
    3. Building a Module from Code
    4. MVC Common Customizations
    5. Helpful SugarBean functions and routines
    6. Time/Date storing outside of a Module
    7. Direct DB Access using SugarCRM Framework
    8. Popups in Plain English
    9. Chmod, Chown – Permissions Explained

    These are just off the top of my head. But, alot of these items are pretty common for most developers and are items you see discussed quite a bit on the forums.

    Thanks!

  • http://www.dynpro.co.uk/ Gerry Rohling

    I think it is a huge step forward, Clint, for SugarCRM to have it’s own official developers reference rather than rely on the community to maintain the wiki. It is very hard at times to filter the wiki contents from pre and post 5 best practices.

    From my own perspective I am very much one that learns by example so having clearly illustrated code fragments of key development activities and their expected outcome would be fantastic.

  • http://www.dynpro.co.uk/ Gerry Rohling

    I think it is a huge step forward, Clint, for SugarCRM to have it’s own official developers reference rather than rely on the community to maintain the wiki. It is very hard at times to filter the wiki contents from pre and post 5 best practices.

    From my own perspective I am very much one that learns by example so having clearly illustrated code fragments of key development activities and their expected outcome would be fantastic.

  • Harald Kuske

    Don’t forget chapter

    2.5.1 Indexes

    which is very important for performance issues.

  • Harald Kuske

    Don’t forget chapter

    2.5.1 Indexes

    which is very important for performance issues.

  • nano

    is there a date defined for the documentation?

  • nano

    is there a date defined for the documentation?

  • C Cobo

    Ok

  • C Cobo

    Ok

  • http://www.sugarcrm.com/ Clint

    Mid to late August is the plan.

    The Developer Guide will be based on Sugar 5.1. We plan to release the guide for the first round of community feedback within a few weeks of 5.1 being released. The engineers are heads down on 5.1 right now and so the guide will come out after 5.1 is done.

  • http://www.sugarcrm.com Clint

    Mid to late August is the plan.

    The Developer Guide will be based on Sugar 5.1. We plan to release the guide for the first round of community feedback within a few weeks of 5.1 being released. The engineers are heads down on 5.1 right now and so the guide will come out after 5.1 is done.

  • Eric

    Any chance we can sneak a peek early? I’m dieing to read it!

  • Eric

    Any chance we can sneak a peek early? I’m dieing to read it!

  • http://www.sugarcrm.com Clint

    Good idea. We’re heads down getting 5.1 out the door. I’ll post a preview a couple weeks after 5.1 is GA.

  • http://www.sugarcrm.com/ Clint

    Good idea. We’re heads down getting 5.1 out the door. I’ll post a preview a couple weeks after 5.1 is GA.

  • Tim

    I too, await this with great anticipation. Much needed documentation.

  • Tim

    I too, await this with great anticipation. Much needed documentation.

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