CRM-21195: Using DAO instead of direct SQL when building navigation menu
authorOmar abu hussein <opetmar91@gmail.com>
Tue, 19 Sep 2017 12:45:37 +0000 (13:45 +0100)
committerOmar abu hussein <opetmar91@gmail.com>
Tue, 19 Sep 2017 12:45:37 +0000 (13:45 +0100)
CRM/Core/BAO/Navigation.php
CRM/Upgrade/Incremental/php/FourSeven.php

index b7c5a01491d494d3e2e041b86f4032e8654aa693..80e61bd38332499e3255076f69e8d04c3b208bd3 100644 (file)
@@ -250,27 +250,24 @@ FROM civicrm_navigation WHERE domain_id = $domainID {$whereClause} ORDER BY pare
     $domainID = CRM_Core_Config::domainID();
     $navigationTree = array();
 
-    // get the list of menus
-    $query = "
-SELECT id, label, url, permission, permission_operator, has_separator, parent_id, is_active, name, icon 
-FROM civicrm_navigation
-WHERE domain_id = $domainID
-ORDER BY parent_id, weight";
-
-    $navigation = CRM_Core_DAO::executeQuery($query);
-    while ($navigation->fetch()) {
-      $navigationTree[$navigation->id] = array(
+    $navigationMenu = new self();
+    $navigationMenu->domain_id = $domainID;
+    $navigationMenu->orderBy('parent_id, weight');
+    $navigationMenu->find();
+
+    while ($navigationMenu->fetch()) {
+      $navigationTree[$navigationMenu->id] = array(
         'attributes' => array(
-          'label' => $navigation->label,
-          'name' => $navigation->name,
-          'url' => $navigation->url,
-          'icon' => $navigation->icon,
-          'permission' => $navigation->permission,
-          'operator' => $navigation->permission_operator,
-          'separator' => $navigation->has_separator,
-          'parentID' => $navigation->parent_id,
-          'navID' => $navigation->id,
-          'active' => $navigation->is_active,
+          'label' => $navigationMenu->label,
+          'name' => $navigationMenu->name,
+          'url' => $navigationMenu->url,
+          'icon' => $navigationMenu->icon,
+          'permission' => $navigationMenu->permission,
+          'operator' => $navigationMenu->permission_operator,
+          'separator' => $navigationMenu->has_separator,
+          'parentID' => $navigationMenu->parent_id,
+          'navID' => $navigationMenu->id,
+          'active' => $navigationMenu->is_active,
         ),
       );
     }
index f1b0809711f981efd548813fa813e80345eec497..ccb9d07df0161d6eb059f0d63d5b110865261da7 100644 (file)
@@ -440,7 +440,7 @@ class CRM_Upgrade_Incremental_php_FourSeven extends CRM_Upgrade_Incremental_Base
       'civicrm_mailing', 'modified_date', "timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT 'When the mailing (or closely related entity) was created or modified or deleted.'");
 
     $this->addTask('CRM-21195 - Add icon field to civicrm_navigation', 'addColumn',
-      'civicrm_navigation', 'icon', "varchar(255) NULL DEFAULT NULL COMMENT 'CSS class name for an icon");
+      'civicrm_navigation', 'icon', "varchar(255) NULL DEFAULT NULL COMMENT 'CSS class name for an icon'");
   }
 
   /*