Drupal/C4/Creating-a-simple-custom-module/English-timed
From Script | Spoken-Tutorial
|
|
00:01 | Welcome to the spoken tutorial on Creating a simple custom module. |
00:06 | In this tutorial, we will learn to- Create a basic module |
00:11 | Add a basic controller and |
00:13 | Add a routing file |
00:15 | To record this tutorial, I am using Ubuntu Linux 16.04 |
00:21 | Drupal 8 , Firefox web browser and Gedit text editor |
00:27 | You can use any text editor and web browser of your choice. |
00:32 | To practise this tutorial, you should have basic knowledge of Drupal. |
00:38 | If not, for relevant Drupal tutorials, please visit the link shown. |
00:43 | To create a custom module in Drupal, you should be familiar with
Object oriented programming terminology |
00:51 | Programming in PHP |
00:53 | Namespacing in PHP and |
00:55 | Symfony 2 |
00:57 | For details of pre-requisites, please see the “Additional reading material” link of this tutorial. |
01:04 | We have already learnt about contributed modules earlier. |
01:08 | Now we will learn to create a simple custom module. |
01:12 | This module will create a custom page showing “hello world”. |
01:17 | Here is the workflow of this module. |
01:20 | The Request is what we request to the website. |
01:24 | Router determines what should be done with the request. |
01:29 | The controller builds the response for the given request. |
01:33 | The View creates the response. |
01:36 | The response is what the website returns. |
01:40 | Here is the file structure of the custom module which we are going to create. |
01:45 | Let us start creating the files required for a custom module. |
01:50 | Open your File browser. |
01:52 | Go to the folder where we have installed Drupal locally. |
01:57 | Now go to apps -> drupal -> htdocs -> modules folder. |
02:03 | We have to always create our custom modules inside this modules folder. |
02:09 | Let’s create a folder and name it as custom. |
02:13 | This will separate our custom modules from the contributed modules. |
02:18 | Inside this custom folder, we will create a folder called hello_world. |
02:25 | This folder name is the machine name. |
02:28 | It will be used by core Drupal, to refer to this module. |
02:33 | There are some rules to follow when naming a custom module. |
02:37 | It must contain only lower-case letters, underscores but no spaces. |
02:43 | It must be unique and cannot have the same short name as any other module or theme |
02:50 | It cannot have any reserved terms such as src, lib, vendor, templates, includes, fixtures, etc. |
03:00 | Switch back to our file browser |
03:03 | Inside this hello_world folder, we will create a file called hello_world with info.yml extension. |
03:13 | The name of the info.yml file and the name of the module folder should be the same. |
03:20 | Yml is the file extension of YAML. |
03:24 | YAML is a unicode based data serialization standard for all programming languages. |
03:31 | It is a human-readable language. |
03:34 | This info.yml file is to tell Drupal about our module. |
03:40 | In this file, we will store the metadata of our module. |
03:44 | So type the following metadata. |
03:47 | Let's save this file. |
03:49 | This is the title of our module which will be shown on the extend page. |
03:54 | This is a small description of our module. |
03:58 | This is what category our module will be listed under on the extend page. |
04:04 | This is to tell Drupal that we are making a module. |
04:08 | The core key specifies the version of Drupal core that our module is compatible with. |
04:15 | Here name, type and core keys are required. Other keys can be ignored. |
04:21 | Next, we will create a file called hello_world with module extension. |
04:28 | For this demonstration, we are not going to add any functionality in this file.
But we just need to create this file. |
04:37 | In this file, type the following. |
04:39 | Let us save the file. |
04:41 | These are the two files Drupal requires to create a module. |
04:46 | Now we will install this module in our website. |
04:50 | Open our local Drupal website. |
04:53 | Before installing the new module, we will clear the cache first. |
04:58 | To do that, click on the Configuration menu. |
05:01 | Under Development, click on the Performance option. |
05:05 | Now click on the Clear all caches button. |
05:08 | You can see that the caches are cleared. |
05:11 | It is compulsory to clear the caches every time we modify our website. |
05:17 | Now to install the module, click on the Extend menu and scroll down. |
05:23 | Under Custom, you can see the Hello World module which we created just now. |
05:28 | Click on it to select. |
05:30 | Click on the Install button at the bottom. |
05:33 | Our custom module is enabled now. |
05:36 | Next, we have to add the router file. |
05:40 | This is to tell Drupal where the module can be accessed from. |
05:44 | The router determines what should be done with the request. |
05:48 | The router also checks if the access is permitted. |
05:53 | Switch back to our File browser. |
05:55 | Now we will create the routing file called hello_world.routing.yml |
06:03 | Type the following inside the routing file. Let us understand the code. |
06:08 | This line is the route. |
06:10 | This indicates what path will be used to access our module. |
06:15 | This is to tell Drupal where to get the content from. |
06:20 | Here content is the function which we will create in the controller file. |
06:25 | This is to ensure only users who can access content, will be able to see our Hello World page. |
06:33 | Next we should add the functionality about what this module is going to do. |
06:38 | This is done by adding a controller. |
06:41 | What is a controller? Controller is a PHP function. |
06:46 | It takes information from the HTTP request and constructs and returns an HTTP response. |
06:54 | Switch back to our File browser. |
06:56 | To add a controller, we should create a folder named src here. |
07:02 | Inside the src folder, we should create another folder named Controller. |
07:07 | Inside this Controller folder, we will create the controller file called HelloController.php |
07:15 | Inside this file, type the following. |
07:18 | Now save the file. |
07:20 | The namespace allows to place a bunch of code under a name, to avoid naming conflicts. |
07:28 | This use statement will import the ControllerBase class. |
07:32 | We have a class HelloWorldController with the function content. |
07:38 | It will return the markup text when the routing system invokes the page. |
07:43 | Now switch to the web browser. |
07:46 | Click on the Back to site button. |
07:48 | Add hello in the address bar as a request to the web browser. |
07:53 | This is the path we created in the routing file to access our module.
Now press Enter. |
08:00 | We can see our custom page which we created just now. This is the response. |
08:07 | Likewise, we can create other simple custom modules in Drupal 8. |
08:13 | With this, we come to the end of this tutorial. |
08:16 | Let us summarize. In this tutorial, we have learnt to-
Create a basic module, Add a basic controller, Add a routing file |
08:27 | As an assignment, create a custom module for “About us” page of your website. |
08:33 | The video at the following link summarises the Spoken Tutorial project.
Please download and watch it. |
08:41 | The Spoken Tutorial Project Team conducts workshops and gives certificates.
For more details, please write to us. |
08:49 | Spoken Tutorial Project is funded by NMEICT, Ministry of Human Resource Development and NVLI, Ministry of Culture, Government of India. |
09:00 | This is Priya from IIT Bombay signing off. Thanks for joining. |