Skip to main content

[Drupal 8]Build a simple hello_world Module

Drupal is one of the world's most widely used Content Management System. It is mainly used to create your own website and publish it using an online webhost. Drupal 8, its latest release, takes the lead over Drupal 7 since it brought along with it a lot of changes. Drupal 8 is also very fast and flexible.

Below are few steps you need to follow to create a module in drupal. A module is basically a simple page where you can add your own features by using Controllers, which we will later on in this article.
Click here to check out my blog post on how to install Drupal using composer.

Structure of files

i) An info.yml file - Module
ii) A routing.yml file - Routing File
iii) A Controller

Building the module

A module needs to have the .info.yml extension. This file will contain important information such as:
(i) name of the module
(ii) a description of what the module can do
(iii) the type, which can be module, profile or theme
(iv) package, which should be set to Custom if you are designing your own
(v) core, which will determine which version of drupal will be accepted

There are also several more information stored in a info.yml file, but for a simple hello world module, these should be sufficient.

At this point, your module is created, and you can effectively enable it by going to Extend and searching for your module name, in our case, Hello World. But, this module, although enabled, would not do anything, since its path and Controller does not exist yet.

Building the routing

A routing file needs to have the .routing.yml extension. This file contains:
(i) a path specified to register the module
(ii) defaults properties, that contains the controller path
(iii) requirements, storing permissions of who can access that particular module

The first line states the name of the module and the path is simply the link that is used by the client to generate the module. Under defaults is the controller settings.
Drupal\hello_world\controller -> is the path that stores the Controller HelloWorldController and hello is the name of the method inside the controller.

You can add more options to your routing file. See this documentation
Building the Controller

The controller file contains the main methods that is called whenever a user requests the page. In our case, the method is hello(). The controller needs to be created inside src/controller.

The namespace states the path of where the Controller is located. The class HelloWorldController here, contains one method/function hello that returns an array with the contents of the modules.

After clearning all the cache, which can be done either by going to Configurations >> Performance >> Clear all cache, or by installing Drush, which is very helpful since you can simply clear cache by running "sudo drush cache-rebuild", inside your drupal website directory. See installation documentation for Drush.

After that, you module should be up and running.

Popular posts from this blog

How to install the FReMP Stack on Ubuntu 20.04?

Technology keeps on evolving everyday and developers constantly look for more and more things to get their hands-on. In this article, I will be introducing a new full stack framework, called FReMP . The abbreviation used is not the best one, but it just gets the work done in justifiable ways. What on earth is FReMP stack? The FReMP stack is a highly scalable full stack framework, which can be used to build awesome web apps. The acronym stands for F lask, Re actJS, M ongodb and P ython. Unlike other famous stacks such as MEAN and MERN, the FReMP stack uses Python to handle back-end operations. Examples of such operations can be machine learning and artificial intelligence operations, web scraping tools or digital image processing. Step 0: Update your list of installed packages While this is optional, it is always a good practice to update your list of packages and upgrade them for newer versions before starting any installation on your environment. Run the following to do so: $ apt-get

Learn how to make an auto login bot with Autoit

Start by creating a new directory and make an autoit script. Edit the script and include IE.au3: #include    Suppose we're writing a script which will allow a anyone to sign in his facebook on a scheduled time automatically. It's simple, don't panic! You need to call a function with any name you want. Let's take loginfb() ! call ("loginfb") So, we only have to write the function loginfb now! Func loginfb() Global $oIE = _IECreate ("") Local $username = _IEGetObjByName ($oIE, "email") Local $password = _IEgetObjByName ($oIE, "pass") Local $button = _IEGetObjById ($oIE, "loginbutton") _IEFormElementSetValue ($username, "") // your email here! _IEFormElementSetValue ($password, "") //your fb password here! Send("{Enter}") EndFunc $username and $password are variables. "email" and "pass" are the names given to the textarea

[Python]Publish your python project to PyPI

The Python Package Index, also known as PyPI, is a large repository of python packages. Millions of developers all around the world contribute to Python daily by creating python scripts and uploading to PyPI. In this blog post, I am going to write a simple python script that, on running, will print Hello World on the terminal. Then, going to upload this script to PyPI so that it can be installed on any platform easily using pip or pip3 . Requirements: 1. Github account 2. Basic knowledge of python 3. setuptools - (pip3 install setuptools) 4. wheel - (pip3 install wheel) By the end of this blog post, you should be able to print hello world using a single command: Let's get started! The first thing to do is find a unique name for your project. The name that I will call the Hello World script will be print_hello_world . At the time that I am writing this post, there is not package called print_hello_world  on  PyPI . Logically, after doing this tutorial, there might