Initial commit
This commit is contained in:
10
assets/module-template/MODULENAME.info.yml
Normal file
10
assets/module-template/MODULENAME.info.yml
Normal file
@@ -0,0 +1,10 @@
|
||||
name: MODULELABEL
|
||||
description: 'Description of what this module does.'
|
||||
type: module
|
||||
core_version_requirement: ^9 || ^10 || ^11
|
||||
package: Custom
|
||||
|
||||
# Add dependencies as needed
|
||||
# dependencies:
|
||||
# - drupal:node
|
||||
# - drupal:views
|
||||
22
assets/module-template/MODULENAME.module
Normal file
22
assets/module-template/MODULENAME.module
Normal file
@@ -0,0 +1,22 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @file
|
||||
* Primary module hooks for MODULELABEL module.
|
||||
*/
|
||||
|
||||
use Drupal\Core\Routing\RouteMatchInterface;
|
||||
|
||||
/**
|
||||
* Implements hook_help().
|
||||
*/
|
||||
function MODULENAME_help($route_name, RouteMatchInterface $route_match) {
|
||||
switch ($route_name) {
|
||||
case 'help.page.MODULENAME':
|
||||
$output = '<h3>' . t('About') . '</h3>';
|
||||
$output .= '<p>' . t('Description of what this module does.') . '</p>';
|
||||
return $output;
|
||||
|
||||
default:
|
||||
}
|
||||
}
|
||||
8
assets/module-template/MODULENAME.routing.yml
Normal file
8
assets/module-template/MODULENAME.routing.yml
Normal file
@@ -0,0 +1,8 @@
|
||||
# Example route - customize or remove as needed
|
||||
MODULENAME.example:
|
||||
path: '/MODULENAME/example'
|
||||
defaults:
|
||||
_controller: '\Drupal\MODULENAME\Controller\ExampleController::content'
|
||||
_title: 'Example Page'
|
||||
requirements:
|
||||
_permission: 'access content'
|
||||
36
assets/module-template/README.md
Normal file
36
assets/module-template/README.md
Normal file
@@ -0,0 +1,36 @@
|
||||
# Module Template
|
||||
|
||||
This is a basic Drupal module template. To use it:
|
||||
|
||||
1. Copy this directory to your Drupal installation: `modules/custom/yourmodulename/`
|
||||
2. Rename files from `MODULENAME.*` to `yourmodulename.*`
|
||||
3. Replace all instances of `MODULENAME` with your module's machine name (lowercase, underscores)
|
||||
4. Replace all instances of `MODULELABEL` with your module's human-readable name
|
||||
5. Customize the module as needed
|
||||
|
||||
## Files Included
|
||||
|
||||
- `MODULENAME.info.yml` - Module metadata
|
||||
- `MODULENAME.module` - Hook implementations
|
||||
- `MODULENAME.routing.yml` - Route definitions
|
||||
- `src/Controller/ExampleController.php` - Example controller
|
||||
|
||||
## Directory Structure
|
||||
|
||||
```
|
||||
MODULENAME/
|
||||
├── MODULENAME.info.yml
|
||||
├── MODULENAME.module
|
||||
├── MODULENAME.routing.yml
|
||||
└── src/
|
||||
└── Controller/
|
||||
└── ExampleController.php
|
||||
```
|
||||
|
||||
## Next Steps
|
||||
|
||||
After creating your module:
|
||||
|
||||
1. Enable it: `ddev drush en MODULENAME -y`
|
||||
2. Clear cache: `ddev drush cr`
|
||||
3. Visit your route: `/MODULENAME/example`
|
||||
24
assets/module-template/src/Controller/ExampleController.php
Normal file
24
assets/module-template/src/Controller/ExampleController.php
Normal file
@@ -0,0 +1,24 @@
|
||||
<?php
|
||||
|
||||
namespace Drupal\MODULENAME\Controller;
|
||||
|
||||
use Drupal\Core\Controller\ControllerBase;
|
||||
|
||||
/**
|
||||
* Returns responses for MODULELABEL routes.
|
||||
*/
|
||||
class ExampleController extends ControllerBase {
|
||||
|
||||
/**
|
||||
* Builds the response.
|
||||
*/
|
||||
public function content() {
|
||||
$build['content'] = [
|
||||
'#type' => 'markup',
|
||||
'#markup' => $this->t('Example content from MODULELABEL module.'),
|
||||
];
|
||||
|
||||
return $build;
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user