CRM_Core_Module - Add optional $label property
authorTim Otten <totten@civicrm.org>
Tue, 12 Sep 2023 00:08:22 +0000 (17:08 -0700)
committerTim Otten <totten@civicrm.org>
Tue, 12 Sep 2023 02:56:34 +0000 (19:56 -0700)
CRM/Core/Module.php

index 7f0daefb2a0923c0bc6a928efcf06b10738c0351..1e46e957de2eb7473556ffe7aebff7f401dcce64 100644 (file)
@@ -24,6 +24,13 @@ class CRM_Core_Module {
    */
   public $name;
 
+  /**
+   * Pretty name of the module
+   *
+   * @var string
+   */
+  public $label;
+
   /**
    * Is the module enabled.
    *
@@ -35,11 +42,15 @@ class CRM_Core_Module {
    * Class constructor.
    *
    * @param string $name
+   *   Unique machine name of the module
    * @param bool $is_active
+   * @param string|null $label
+   *   Pretty name of the module. If omitted, fallback to $name.
    */
-  public function __construct($name, $is_active) {
+  public function __construct($name, $is_active, ?string $label = NULL) {
     $this->name = $name;
     $this->is_active = $is_active;
+    $this->label = $label ?: $name;
   }
 
   /**
@@ -55,7 +66,7 @@ class CRM_Core_Module {
     if ($fresh || !is_array($result)) {
       $result = CRM_Extension_System::singleton()->getMapper()->getModules();
       // pseudo-module for core
-      $result[] = new CRM_Core_Module('civicrm', TRUE);
+      $result[] = new CRM_Core_Module('civicrm', TRUE, ts('CiviCRM Core'));
 
       $config = CRM_Core_Config::singleton();
       $result = array_merge($result, $config->userSystem->getModules());