On the PrestaShop back office, the links on the side menu are linked to AdminControllers and ModuleAdminController classes. The first ones come from the PrestaShop Core, but the second ones are defined by the modules. If you want to add a link to your ModuleAdminControllers in the back office sidebar, this guide is for you.
In order to register new links, open your main module class.
We will now use a property called $tabs, storing an array of link details. Each of them contains a class (= link) to add in the side menu.
Depending on the options you provide, your links won’t be displayed the same way:
Be default, your tab will be displayed in the menu with its class name. If you want to use something more explicit, you can set the name property.
If you want to add the same name to all available and active languages available on the shop, just set the ‘name’ key with a single string:
public $tabs = array( array( 'name' => 'Merchant Expertise', // One name for all langs 'class_name' => 'AdminGamification', 'visible' => true, 'parent_class_name' => 'ShopParameters', ));
You can also add your translations per locale (ex.: fr-FR) or per language (ex.: fr), both are valid.
If a language is installed on the shop but is not found in your translated names, it will be automatically associated to the first value of the array.
Hence, we advise you to define the English value first.
public $tabs = array( array( 'name' => array( 'en' => 'Merchant Expertise', // Default value should be first 'fr' => 'Expertise PrestaShop', ... ), 'class_name' => 'AdminGamification', 'parent_class_name' => 'ShopParameters', ));
Here is the default structure of the side-menu from PrestaShop at the moment this page is written. You can choose an element from this list to use as a parent.
Once you’re done, just install (or reset) your module.
The $tabs property will be read from PrestaShop and the tabs will be automatically displayed on the side menu. They will stay as long as your module is installed.