Can not see new custom module in the navbar menu

We create a custom module using module builder option. We deployed it into the SuiteCRM, but it not displaying in the navbar menu.

Additionally, we tried another way too. We published module and then installed using the module loader option. We got same issue.

We tried QR&R and also checked in the “display modules and subpanel” option, it is only displaying backend name of module. Not the name that we choose in the module builder.

It is creating a tables in the database too.

Does anyone know how to solve this problem? :upside_down_face: Please guide! :pray:

Guide we used:

@BastianHammer

Can you go to admin → display modules and sub panels and check if the module is enabled/displayed

As I mentioned, the module is under the enabled section, but it is only displaying the key_modulename. It is not displaying the module label. I can see the tables in the DB too.

It is pretty weird. What settings or code files should we check out? :thinking:

Happens all the time. Its a menu cache issue. Just navigate to the new module by editing the URL. Once you visit it once it will appear in the menu.

1 Like

https://website/suitecrm/index.php?module=Demo

It is adding something like below in URL

index.php?action=ajaxui#ajaxUILoc=index.php%3Faction%3DDetailView%26module%3D

It did not add the module name to navbar menu yet.

Also, when I click on CREATE and try to select security group, it is not working.

PHP ERROR:

PHP Fatal error: Uncaught Error: Call to a member function add() on null in /var/www/html/suitecrm/include/generic/Save2.php:200

CRM ERROR:

MysqliManager: Empty query

:bulb: Root Cause

SuiteCRM 7.13 fails to auto-generate the necessary entries in:

$app_list_strings['moduleList']
$app_list_strings['moduleListSingular']

These entries are what the system uses for proper UI display labels, and without them, it defaults to the raw module name.

:white_check_mark: Fix

:file_folder: File:

custom/include/language/en_us.lang.php

:memo: Add These Lines

$app_list_strings['moduleList']['key_moduleName'] = 'moduleLabels';
$app_list_strings['moduleListSingular']['key_moduleName'] = 'moduleLabel';

:white_check_mark: Then:

  • Save the file
  • Run Admin > Repair > Quick Repair and Rebuild
  • Navigate to Admin > Display Modules & Subpanels
  • Now your module will show as “moduleLabel”
  • Drag to display if needed
  • It should also now show properly in:
    • Navigation menu
    • Studio
    • Subpanel configuration

May be related to this?

It also looks somehow similar to the bug we reported recently:

1 Like

So is this a fix for that issue? :thinking:

Yes.

As mentioned in the SuiteCRM Issue, it’s just a temporal fix until a proper evaluation of the entire function is done.

Since we are unsure about the purpose of that condition, we have decided, for now, to simply remove line 86. This is effectively the same as removing the entire function, as it is currently doing nothing. Therefore, the loadAppListStrings function should be properly analyzed to assess its necessity.

But we haven’t tested it with your case.

I need to add this line and create another package for custom module using Module Builder:

      $app_list_strings = [];

GITHUB:

  public function loadAppListStrings($file)
    {
        // global $app_list_strings;
        // $app_list_strings = $app_list_strings ?? [];
           $app_list_strings = [];
        }