site_name: Developer Guide repo_url: https://github.com/civicrm/civicrm-dev-docs site_description: A guide for CiviCRM developers. site_author: The CiviCRM community theme: material pages: - Home: index.md - Basics: - Developer Community: basics/community.md - Useful Skills: basics/skills.md - Planning Your Project: basics/planning.md - File System: basics/filesystem.md # buildkit: /setup/buildkit.md # summary: See Github README for download instructions. Alternatively, follow links and install particular tools as-needed. - Debugging: basics/debugging.md - Core Development: - When to Edit Core: core/hacking.md - How to Contribute: core/contributing.md - Reviewing PR's: core/pr-review.md - Codebase & Architecture: core/architecture.md # Reporting Bugs & Issues: /core/reporting.md # Submitting a Patch: /core/patches.md # Verifying a Bug Fix: /core/verifying.md - Extensions Development: - Basics: extensions/index.md - civix: extensions/civix.md # Creating Pages: extensions/create-page.md # Storing Configuration: extensions/config.md # Storing Data: extensions/storing-data.md # Setting Permissions: extensions/permissions.md # Adding API Functions: extensions/api.md # Reports: extensions/reports.md # Searches: extensions/searches.md # Payment Processors: extensions/payment-processors.md - Publishing Extensions: extensions/publish.md - Extension Lifecycle: extensions/lifecycle.md - Troubleshooting: extensions/troubleshooting.md - Advanced patterns: extensions/advanced.md - Framework Reference: # Bootstrap: /framework/bootstrap.md # Cache: /framework/cache.md # Components: /framework/components.md # Database: /framework/database.md - Schema definition: framework/schema-definition.md # Resources: /framework/resources.md # Upgrade: /framework/upgrade.md #### Code Standards: # PHP: /standards/php.md # Javascript: /standards/js.md # API: /standards/api.md # Git: /standards/git.md #### Testing: # Testing: /testing/testing.md # Other Reference: # CiviMail: /reference/civimail.md # CiviReport: /reference/civireport.md # Payment Processing: /reference/payment.md - API: - APIv3 Intro: api/index.md - APIv3 Usage: api/usage.md - APIv3 Actions: api/actions.md - APIv3 Parameters: api/params.md # APIv3 Permissions: api/permissions.md - APIv3 Chaining: api/chaining.md # APIv3 Changes: api/changes.md - Hooks: - Using hooks: hooks/index.md - Setup: - Hooks with Symfony: hooks/setup/symfony.md - Hooks with Joomla: hooks/setup/joomla.md - Hooks with Drupal: hooks/setup/drupal.md - Hooks with Wordpress: hooks/setup/wordpress.md - Batch hooks: - hook_civicrm_batchItems: hooks/hook_civicrm_batchItems.md - hook_civicrm_batchQuery: hooks/hook_civicrm_batchQuery.md - Case hooks: - hook_civicrm_caseChange: hooks/hook_civicrm_caseChange.md - hook_civicrm_caseTypes: hooks/hook_civicrm_caseTypes.md - hook_civicrm_post_case_merge: hooks/hook_civicrm_post_case_merge.md - hook_civicrm_pre_case_merge: hooks/hook_civicrm_pre_case_merge.md - Database hooks: - hook_civicrm_copy: hooks/hook_civicrm_copy.md - hook_civicrm_custom: hooks/hook_civicrm_custom.md - hook_civicrm_managed: hooks/hook_civicrm_managed.md - hook_civicrm_merge: hooks/hook_civicrm_merge.md - hook_civicrm_post: hooks/hook_civicrm_post.md - hook_civicrm_postSave_table_name: hooks/hook_civicrm_postSave_table_name.md - hook_civicrm_pre: hooks/hook_civicrm_pre.md - hook_civicrm_trigger_info: hooks/hook_civicrm_trigger_info.md - hook_civicrm_referenceCounts: hooks/hook_civicrm_referenceCounts.md - Entity hooks: - hook_civicrm_entityTypes: hooks/hook_civicrm_entityTypes.md - Extension lifecycle hooks: - hook_civicrm_disable: hooks/hook_civicrm_disable.md - hook_civicrm_enable: hooks/hook_civicrm_enable.md - hook_civicrm_install: hooks/hook_civicrm_install.md - hook_civicrm_postInstall: hooks/hook_civicrm_postInstall.md - hook_civicrm_uninstall: hooks/hook_civicrm_uninstall.md - hook_civicrm_upgrade: hooks/hook_civicrm_upgrade.md - Form hooks: - hook_civicrm_alterContent: hooks/hook_civicrm_alterContent.md - hook_civicrm_alterTemplateFile: hooks/hook_civicrm_alterTemplateFile.md - hook_civicrm_buildForm: hooks/hook_civicrm_buildForm.md - hook_civicrm_idsException: hooks/hook_civicrm_idsException.md - hook_civicrm_postProcess: hooks/hook_civicrm_postProcess.md - hook_civicrm_preProcess: hooks/hook_civicrm_preProcess.md - hook_civicrm_validateForm: hooks/hook_civicrm_validateForm.md - GUI hooks: - hook_civicrm_alterMenu: hooks/hook_civicrm_alterMenu.md - hook_civicrm_buildAmount: hooks/hook_civicrm_buildAmount.md - hook_civicrm_caseSummary: hooks/hook_civicrm_caseSummary.md - hook_civicrm_contact_get_displayname: hooks/hook_civicrm_contact_get_displayname.md - <del>hook_civicrm_customFieldOptions</del>: hooks/hook_civicrm_customFieldOptions.md - hook_civicrm_dashboard: hooks/hook_civicrm_dashboard.md - hook_civicrm_dashboard_defaults: hooks/hook_civicrm_dashboard_defaults.md - hook_civicrm_fieldOptions: hooks/hook_civicrm_fieldOptions.md - hook_civicrm_links: hooks/hook_civicrm_links.md - hook_civicrm_navigationMenu: hooks/hook_civicrm_navigationMenu.md - hook_civicrm_pageRun: hooks/hook_civicrm_pageRun.md - hook_civicrm_searchColumns: hooks/hook_civicrm_searchColumns.md - hook_civicrm_searchTasks: hooks/hook_civicrm_searchTasks.md - hook_civicrm_summary: hooks/hook_civicrm_summary.md - hook_civicrm_summaryActions: hooks/hook_civicrm_summaryActions.md - <del>hook_civicrm_tabs</del>: hooks/hook_civicrm_tabs.md - hook_civicrm_tabset: hooks/hook_civicrm_tabset.md - hook_civicrm_xmlMenu: hooks/hook_civicrm_xmlMenu.md - Mail hooks: - hook_civicrm_alterMailContent: hooks/hook_civicrm_alterMailContent.md - hook_civicrm_alterMailer: hooks/hook_civicrm_alterMailer.md - hook_civicrm_alterMailParams: hooks/hook_civicrm_alterMailParams.md - hook_civicrm_emailProcessor: hooks/hook_civicrm_emailProcessor.md - hook_civicrm_emailProcessorContact: hooks/hook_civicrm_emailProcessorContact.md - hook_civicrm_mailingGroups: hooks/hook_civicrm_mailingGroups.md - hook_civicrm_postEmailSend: hooks/hook_civicrm_postEmailSend.md - hook_civicrm_postMailing: hooks/hook_civicrm_postMailing.md - hook_civicrm_unsubscribeGroups: hooks/hook_civicrm_unsubscribeGroups.md - Permission hooks: - hook_civicrm_aclGroup: hooks/hook_civicrm_aclGroup.md - hook_civicrm_aclWhereClause: hooks/hook_civicrm_aclWhereClause.md - hook_civicrm_alterAPIPermissions: hooks/hook_civicrm_alterAPIPermissions.md - hook_civicrm_permission: hooks/hook_civicrm_permission.md - hook_civicrm_permission_check: hooks/hook_civicrm_permission_check.md - hook_civicrm_selectWhereClause: hooks/hook_civicrm_selectWhereClause.md - Profile hooks: - hook_civicrm_buildProfile: hooks/hook_civicrm_buildProfile.md - hook_civicrm_buildUFGroupsForModule: hooks/hook_civicrm_buildUFGroupsForModule.md - hook_civicrm_processProfile: hooks/hook_civicrm_processProfile.md - hook_civicrm_searchProfile: hooks/hook_civicrm_searchProfile.md - hook_civicrm_validateProfile: hooks/hook_civicrm_validateProfile.md - hook_civicrm_viewProfile: hooks/hook_civicrm_viewProfile.md - Report hooks: - hook_civicrm_alterReportVar: hooks/hook_civicrm_alterReportVar.md - Uncategorized hooks: - hook_civicrm_alterBadge: hooks/hook_civicrm_alterBadge.md - hook_civicrm_alterBarcode: hooks/hook_civicrm_alterBarcode.md - hook_civicrm_alterCalculatedMembershipStatus: hooks/hook_civicrm_alterCalculatedMembershipStatus.md - hook_civicrm_alterLogTables: hooks/hook_civicrm_alterLogTables.md - hook_civicrm_alterMailingLabelParams: hooks/hook_civicrm_alterMailingLabelParams.md - hook_civicrm_alterPaymentProcessorParams: hooks/hook_civicrm_alterPaymentProcessorParams.md - hook_civicrm_alterSettingsFolders: hooks/hook_civicrm_alterSettingsFolders.md - hook_civicrm_alterSettingsMetaData: hooks/hook_civicrm_alterSettingsMetaData.md - hook_civicrm_angularModules: hooks/hook_civicrm_angularModules.md - hook_civicrm_apiWrappers: hooks/hook_civicrm_apiWrappers.md - hook_civicrm_buildStateProvinceForCountry: hooks/hook_civicrm_buildStateProvinceForCountry.md - hook_civicrm_check: hooks/hook_civicrm_check.md - hook_civicrm_config: hooks/hook_civicrm_config.md - <del>hook_civicrm_contactListQuery</del>: hooks/hook_civicrm_contactListQuery.md - hook_civicrm_container: hooks/hook_civicrm_container.md - hook_civicrm_coreResourceList: hooks/hook_civicrm_coreResourceList.md - hook_civicrm_cron: hooks/hook_civicrm_cron.md - hook_civicrm_crudLink: hooks/hook_civicrm_crudLink.md - hook_civicrm_dupeQuery: hooks/hook_civicrm_dupeQuery.md - hook_civicrm_eventDiscount: hooks/hook_civicrm_eventDiscount.md - hook_civicrm_export: hooks/hook_civicrm_export.md - hook_civicrm_fileSearches: hooks/hook_civicrm_fileSearches.md - hook_civicrm_geocoderFormat: hooks/hook_civicrm_geocoderFormat.md - hook_civicrm_import: hooks/hook_civicrm_import.md - hook_civicrm_membershipTypeValues: hooks/hook_civicrm_membershipTypeValues.md - hook_civicrm_notePrivacy: hooks/hook_civicrm_notePrivacy.md - <del>hook_civicrm_optionValues</del>: hooks/hook_civicrm_optionValues.md - hook_civicrm_queryObjects: hooks/hook_civicrm_queryObjects.md - hook_civicrm_recent: hooks/hook_civicrm_recent.md - hook_civicrm_tokens: hooks/hook_civicrm_tokens.md - hook_civicrm_tokenValues: hooks/hook_civicrm_tokenValues.md - hook_civicrm_unhandledException: hooks/hook_civicrm_unhandledException.md - Documentation: - Writing Documentation: documentation/index.md - Documenting Extensions: documentation/extensions.md - Markdown: documentation/markdown.md - Style Guide: documentation/style-guide.md - Content to reorganize: - Extensions files: extensions/files.md - Requirements: requirements.md - Develop: develop.md markdown_extensions: - attr_list - admonition - def_list - toc: permalink: true - pymdownx.highlight: guess_lang: true extend_pygments_lang: - name: php lang: php options: startinline: true - pymdownx.superfences: css_class: codehilite - pymdownx.inlinehilite: css_class: codehilite - pymdownx.tilde - pymdownx.betterem - pymdownx.mark