FieldSpec - Generate better default field titles for DAOs
authorColeman Watts <coleman@civicrm.org>
Tue, 29 Nov 2022 19:37:43 +0000 (14:37 -0500)
committerColeman Watts <coleman@civicrm.org>
Tue, 29 Nov 2022 19:37:43 +0000 (14:37 -0500)
CRM/Core/CodeGen/Specification.php

index 44309594fb4f55e450b2f1c521eb53beadf6a4e7..0d4fb20c921706c709759f32271f296d00831ff3 100644 (file)
@@ -536,24 +536,23 @@ class CRM_Core_CodeGen_Specification {
    * @return string
    */
   public function composeTitle($name) {
+    $substitutions = [
+      'is_active' => 'Enabled',
+    ];
+    if (isset($substitutions[$name])) {
+      return $substitutions[$name];
+    }
     $names = explode('_', strtolower($name));
-    $title = '';
-    for ($i = 0; $i < count($names); $i++) {
-      if ($names[$i] === 'id' || $names[$i] === 'is') {
-        // id's do not get titles
-        return NULL;
-      }
-
-      if ($names[$i] === 'im') {
-        $names[$i] = 'IM';
+    $allCaps = ['im', 'id'];
+    foreach ($names as $i => $str) {
+      if (in_array($str, $allCaps, TRUE)) {
+        $names[$i] = strtoupper($str);
       }
       else {
-        $names[$i] = ucfirst(trim($names[$i]));
+        $names[$i] = ucfirst(trim($str));
       }
-
-      $title = $title . ' ' . $names[$i];
     }
-    return trim($title);
+    return trim(implode(' ', $names));
   }
 
   /**