Table of Contents
Preface
Chapter 1: Stamping Your Own Brand on SugarCRM
Chapter 2: Customizing the SugarCRM Application Content
Chapter 3: Introducing Custom Fields
Chapter 4: Interfacing with SugarCRM
Chapter 5: SugarCRM Database Schematics
Chapter 6: SugarCRM Data Dictionary
Chapter 7: Development and Testing Strategies for SugarCRM
Chapter 8: Developing Your Own Modules
Chapter 9: Developing a Custom Workflow within SugarCRM
Chapter 10: Customizing and Optimizing SugarCRM—Tips and Tricks
Index
- Chapter 1: Stamping Your Own Brand on SugarCRM
- Before We Start...
- Customizing SugarCRM URL
- Changing the SugarCRM URL in Windows
- Changing the SugarCRM URL in Linux
- Customizing SugarCRM Tabs
- Re-name the SugarCRM Tabs
- The SugarCRM Custom Directory
- Customizing the Text within SugarCRM Tab Screens
- Changing the Browser Title
- Adding a Company Logo
- Customizing SugarCRM Themes
- Creating a New Theme
- Removing a Theme
- Summary
- Chapter 2: Customizing the SugarCRM Application Content
- A Note About Terminology
- Changing the About Screen
- Changing the About Screen into a Help Screen
- Controlling the Visible Tabs
- User Control
- Administrator Control
- A Note about Administering Live Systems
- Adding a Custom Tab
- Custom Tab Contents
- User-Controlled Dashlet Customization
- Customizing Dashlets
- Making Dashlets Accessible to Users
- Summary
- Chapter 3: Introducing Custom Fields
- Adding a Custom Field
- The Standard Module Tab
- The General Process for Creating a Custom Dropdown
- Using Studio to Create a Drop-down Box
- Manually Adding a Drop-down Box
- Using Studio to Create a Custom Field
- Creating the Custom Field Manually
- Adding the Dropdown to a Module Tab
- Adding Rows
- Recovering Previous Versions of a Layout
- Manually Modifying Layouts
- Including Custom Fields in Mass Updates
- Making Sure that Your Changes are Visible
- Limitations of the Mass Update
- Adding Built-in SugarCRM Fields to the Mass Update
- Creating other Field Types
- Field Data Types
- Summary
- Adding a Custom Field
- Chapter 4: Interfacing with SugarCRM
- What Have we Learned so Far?
- The Include Directory
- The Custom Directory
- The Themes Directory
- The Modules Directory
- Overview of the SugarCRM Application Architecture
- The SugarCRM User Interface
- Calling Modules
- SugarBean—The SugarCRM Data Interface
- The SugarBean Files
- vardefs.php
- vardefs On-line Documentation
- vardefs Field Types
- The Complete vardefs File
- The <module>.php File
- The SugarBean Files
- SugarBean in Action—SugarCRM's Logic Hooks
- The End Result of Using the Logic Hook
- Summary
- What Have we Learned so Far?
- Chapter 5: SugarCRM Database Schematics
- Database Schematic Diagrams
- Access Control List
- Accounts
- Bugs
- Calls
- Campaigns
- Cases
- Contacts
- Documents
- Emails
- Email Management
- Leads
- Meetings
- Opportunities
- Projects
- Project Tasks
- Prospects
- Schedulers
- Users
- Differences Between Versions 4.5.0 and 4.5.1
- Summary
- Database Schematic Diagrams
- Chapter 6: SugarCRM Data Dictionary
- SugarCRM Table Definitions
- Accounts
- accounts_audit
- accounts_bugs
- accounts_cases
- accounts_contacts
- accounts_opportunities
- acl_actions
- acl_roles
- acl_roles_actions
- acl_roles_users
- Bugs
- bugs_audit
- Calls
- calls_contacts
- calls_users
- campaign_log
- campaign_trkrs
- Campaigns
- campaigns_audit
- Cases
- cases_audit
- cases_bugs
- Config
- Contacts
- contacts_audit
- contacts_bugs
- contacts_cases
- contacts_users
- Currencies
- custom_fields
- Dashboards
- document_revisions
- Documents
- email_marketing
- email_marketing_prospect_lists
- email_templates
- emailman
- Emails
- emails_accounts
- emails_bugs
- emails_cases
- emails_contacts
- emails_leads
- emails_opportunities
- emails_project_tasks
- emails_projects
- emails_prospects
- emails_tasks
- emails_users
- Feeds
- fields_meta_data
- Files
- iframes
- import_maps
- inbound_email
- inbound_email_autoreply
- Leads
- leads_audit
- linked_documents
- Meetings
- meetings_contacts
- meetings_users
- Notes
- Opportunities
- opportunities_audit
- opportunities_contacts
- Project
- project_relation
- project_task
- project_task_audit
- prospect_list_campaigns
- prospect_lists
- prospect_lists_prospects
- Prospects
- Relationships
- Releases
- Roles
- roles_modules
- roles_users
- saved_search
- Schedulers
- schedulers_times
- Tasks
- Tracker
- upgrade_history
- user_preferences
- Users
- users_feeds
- users_last_import
- users_signatures
- vcals
- Versions
- Summary
- SugarCRM Table Definitions
- Chapter 7: Development and Testing Strategies for SugarCRM
- Why Use Development and Testing Strategies?
- The Unbreakable Rule:Thou Shalt Not Do Any Development on a Live Server
- Setting up a Development Server
- Creating a Server
- Installing Software
- Setting the Server's IP Address
- Migrating SugarCRM Files and Databases Between Servers
- Setting Up the Export on Server 1
- Setting up a Mount Point on Server 2
- Migrating Files from Server 1 to Server 2
- Creating a Server
- An Example Upgrade
- Upgrading PHP
- Upgrading SugarCRM
- Comparing Database Files
- Migrating Database Files
- Comparing and Migrating the SugarCRM Application Files
- Testing SugarCRM
- Releasing Your Customizations
- Summary
- Chapter 8: Developing Your Own Modules
- Adding Third-party Modules
- Creating Custom Modules
- A (Very) Basic Module
- Data for the New Module
- Processing Data in the Module
- Adding More Data
- Adding Shortcuts
- Using language/en_us.lang.php
- Tables for the Module
- Advanced Modules
- The Initial Setup
- The Module's Data Schema—vardefs.php
- The Module's Business Object
- Registering the Business Object
- The Module's Language File
- The Module's List View
- Selecting the Fields to be Displayed
- Creating the List View
- Making the List View the Default View
- The Modules Edit View
- The EditView.php File
- The EditView.html File
- The Module's Save File
- Creating New Reports
- Summary
- Chapter 9: Developing a Custom Workflow within SugarCRM
- A Very Simple Workflow
- Setting up the Process Stages
- Deciding Who Does What
- Introducing Business Rules
- Completing the Automated Workflow
- Moving the Rules into the Database
- Add a Custom Table
- Create the Workflow Module
- Building a Data Input Module
- Making Use of the Rules in the Database
- Parallel Tasks
- Adding Dependent Tasks to the Database
- Using Dependent Tasks in the Workflow
- Summary
- A Very Simple Workflow
- Chapter 10: Customizing and Optimizing SugarCRM—Tips and Tricks
- Delving into SugarCRM Variables
- Developing Dashlets Further
- Speeding up SugarCRM
- Optimizing Queries
- Using the explain Command
- Creating Indexes
- Logging Slow Queries
- Using the MySQL Query Cache
- Optimizing the SugarCRM Application
- The SugarCRM Diagnostic Tool
- Install a PHP Optimizer
- Optimizing Queries
- Creating Reports
- Obtaining OpenOffice.org
- Accessing the Database Remotely
- Allowing Connections to the Database
- Creating an Account for Remote Access
- Setting Up the ODBC Connection
- Accessing the Data Through OOo Base
- Creating Queries
- Creating the Report
- Summary



