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