dynamic_image_generator-1.0.x-dev/dynamic_image_generator.routing.yml
dynamic_image_generator.routing.yml
# Dynamic Image Generator module routing definitions.
# Defines all routes used by the module including entity routes, API endpoints,
# and administrative pages.
# Image Template Entity Routes
# These routes handle CRUD operations for image template entities.
entity.poster_entity.collection:
path: '/admin/structure/dynamic-image-templates'
defaults:
_entity_list: 'poster_entity'
_title: 'Image Templates'
requirements:
_permission: 'administer poster entity'
entity.poster_entity.add_form:
path: '/admin/structure/dynamic-image-templates/add'
defaults:
_entity_form: 'poster_entity.add'
_title: 'Add Image Template'
requirements:
_permission: 'administer poster entity'
entity.poster_entity.edit_form:
path: '/admin/structure/dynamic-image-templates/{poster_entity}/edit'
defaults:
_entity_form: 'poster_entity.edit'
_title: 'Edit Image Template'
requirements:
_permission: 'administer poster entity'
options:
parameters:
poster_entity:
type: entity:poster_entity
entity.poster_entity.delete_form:
path: '/admin/structure/dynamic-image-templates/{poster_entity}/delete'
defaults:
_entity_form: 'poster_entity.delete'
_title: 'Delete Image Template'
requirements:
_permission: 'administer poster entity'
options:
parameters:
poster_entity:
type: entity:poster_entity
entity.poster_entity.canonical:
path: '/admin/structure/dynamic-image-templates/{poster_entity}'
defaults:
_entity_view: 'poster_entity'
_title_callback: '\Drupal\dynamic_image_generator\Controller\DynamicImageGeneratorController::entityTitle'
requirements:
_permission: 'administer poster entity'
options:
parameters:
poster_entity:
type: entity:poster_entity
# Template Settings Route
poster_entity.settings:
path: '/admin/structure/dynamic-image-templates/settings'
defaults:
_form: '\Drupal\dynamic_image_generator\Form\ImageTemplateSettingsForm'
_title: 'Image Template Settings'
requirements:
_permission: 'administer poster entity'
# Module Administration Routes
dynamic_image_generator.admin:
path: '/admin/config/content/dynamic-image-generator'
defaults:
_controller: '\Drupal\dynamic_image_generator\Controller\DynamicImageGeneratorAdminController::overview'
_title: 'Dynamic Image Generator'
requirements:
_permission: 'administer dynamic image generator'
dynamic_image_generator.settings:
path: '/admin/config/content/dynamic-image-generator/settings'
defaults:
_form: '\Drupal\dynamic_image_generator\Form\DynamicImageGeneratorSettingsForm'
_title: 'Dynamic Image Generator API Settings'
requirements:
_permission: 'administer dynamic image generator'
# Image Generation Routes
dynamic_image_generator.generate_poster:
path: '/api/dynamic-image-generator/{poster_entity_id}'
defaults:
_controller: '\Drupal\dynamic_image_generator\Controller\DynamicImageGeneratorController::generatePoster'
_title: 'Generate Dynamic Image'
methods: [POST]
requirements:
_permission: 'access dynamic image generator api'
dynamic_image_generator.generate_preview:
path: '/admin/dynamic-image-generator/{poster_entity}/preview'
defaults:
_controller: '\Drupal\dynamic_image_generator\Controller\DynamicImageGeneratorController::generatePreview'
_title_callback: '\Drupal\dynamic_image_generator\Controller\DynamicImageGeneratorController::entityTitle'
requirements:
_permission: 'administer dynamic image generator'
options:
parameters:
poster_entity:
type: entity:poster_entity
dynamic_image_generator.select_content:
path: '/admin/dynamic-image-generator/{poster_entity}/select-content'
defaults:
_controller: '\Drupal\dynamic_image_generator\Controller\DynamicImageGeneratorController::selectContent'
_title_callback: '\Drupal\dynamic_image_generator\Controller\DynamicImageGeneratorController::entityTitle'
requirements:
_permission: 'administer dynamic image generator'
options:
parameters:
poster_entity:
type: entity:poster_entity
dynamic_image_generator.generate_for_node:
path: '/admin/dynamic-image-generator/{poster_entity}/generate/{node}'
defaults:
_controller: '\Drupal\dynamic_image_generator\Controller\DynamicImageGeneratorController::generateForNode'
_title_callback: '\Drupal\dynamic_image_generator\Controller\DynamicImageGeneratorController::entityTitle'
requirements:
_permission: 'administer dynamic image generator'
options:
parameters:
poster_entity:
type: entity:poster_entity
node:
type: entity:node
# Real-time preview with current form data
dynamic_image_generator.preview_with_data:
path: '/admin/dynamic-image-generator/{poster_entity}/preview-with-data/{node}'
defaults:
_controller: '\Drupal\dynamic_image_generator\Controller\DynamicImageGeneratorController::previewWithCurrentData'
_title_callback: '\Drupal\dynamic_image_generator\Controller\DynamicImageGeneratorController::entityTitle'
requirements:
_permission: 'administer dynamic image generator'
options:
parameters:
poster_entity:
type: entity:poster_entity
# Documentation and Examples
dynamic_image_generator.example:
path: '/admin/config/content/dynamic-image-generator/example'
defaults:
_controller: '\Drupal\dynamic_image_generator\Controller\DynamicImageGeneratorExampleController::examplePage'
_title: 'Usage Examples'
requirements:
_permission: 'administer dynamic image generator'
# Generated Images View Route - FIXED to use custom controller
generated_dynamic_images.page_1:
path: '/admin/content/generated-dynamic-images'
defaults:
_controller: '\Drupal\dynamic_image_generator\Controller\DynamicImageGeneratorViewController::generatedImagesPage'
_title: 'Generated Images'
requirements:
_permission: 'view generated dynamic images'
dynamic_image_generator.search_content:
path: '/api/dynamic-image-generator/search-content'
defaults:
_controller: '\Drupal\dynamic_image_generator\Controller\DynamicImageGeneratorController::searchContent'
requirements:
_permission: 'administer dynamic image generator'
dynamic_image_generator.generate_poster_api:
path: '/api/dynamic-image-generator/generate/{poster_entity_id}'
defaults:
_controller: '\Drupal\dynamic_image_generator\Controller\DynamicImageGeneratorController::generatePoster'
requirements:
_permission: 'administer dynamic image generator'
methods: [GET, POST]
# AJAX endpoint for getting content type fields
dynamic_image_generator.get_content_type_fields:
path: '/admin/dynamic-image-generator/get-fields/{content_type}'
defaults:
_controller: '\Drupal\dynamic_image_generator\Controller\DynamicImageGeneratorController::getContentTypeFields'
requirements:
_permission: 'administer dynamic image generator'
methods: [GET]
dynamic_image_generator.debug_node_selection:
path: '/admin/dynamic-image-generator/debug-node-selection'
defaults:
_controller: '\Drupal\dynamic_image_generator\Controller\DynamicImageGeneratorController::debugNodeSelection'
_title: 'Debug Node Selection'
requirements:
_permission: 'administer dynamic image generator'
# Chrome troubleshooting and testing route
dynamic_image_generator.test_chrome:
path: '/admin/config/content/dynamic-image-generator/test-chrome'
defaults:
_controller: '\Drupal\dynamic_image_generator\Controller\DynamicImageGeneratorController::testChromeInstallation'
_title: 'Test Chrome Installation'
requirements:
_permission: 'administer dynamic image generator'
# Simple Chrome test without Browsershot
dynamic_image_generator.test_chrome_direct:
path: '/admin/config/content/dynamic-image-generator/test-chrome-direct'
defaults:
_controller: '\Drupal\dynamic_image_generator\Controller\DynamicImageGeneratorController::testChromeDirect'
_title: 'Test Chrome Direct'
requirements:
_permission: 'administer dynamic image generator'
# Test wkhtmltoimage
dynamic_image_generator.test_wkhtml:
path: '/admin/config/content/dynamic-image-generator/test-wkhtml'
defaults:
_controller: '\Drupal\dynamic_image_generator\Controller\DynamicImageGeneratorController::testWkhtmlInstallation'
_title: 'Test wkhtmltoimage'
requirements:
_permission: 'administer dynamic image generator'