Registering for URLs and Displaying ContentRegistering for a URLAltering a URL RegistrationRegistering a BlockProviding Page and Block OutputGenerating paged outputGenerating Forms with the Form APIUsing confirmation formsAltering formsAdding AJAX, JavaScript, and auto-complete to formsProgramming with Entities and FieldsTerminology of Entities and FieldsDefining an Entity TypeStep 1: Implement hook_entity_info()Step 2: Implement hook_schema()Step 3: Add pre-defined fields in hook_install()Step 4: Set up displayStep 5: Set up editing and managementDefining a Field TypeProgramming with Field WidgetsDefining a field widgetRepurposing an existing field widgetProgramming with Field FormattersCreating Views Module Add-OnsViews Programming Terminology and Output ConstructionSetting Up Your Module for ViewsProviding a New Views Data SourceAdding Fields and Relationships to an Existing Views Data SourceProviding a Display Plugin to ViewsProviding Default ViewsCreating Rules Module Add-OnsProviding Custom Actions to RulesProviding Default Rules