Merge pull request #11993 from jaapjansma/issue_66
[civicrm-core.git] / api / v3 / System.php
index 83291c00cd143bb0063049766472e74111424f79..41646c5ef31a8ee0cf6bf1c50f496124721222d9 100644 (file)
@@ -1,7 +1,7 @@
 <?php
 /*
  +--------------------------------------------------------------------+
- | CiviCRM version 4.7                                                |
+ | CiviCRM version 5                                                  |
  +--------------------------------------------------------------------+
  | Copyright CiviCRM LLC (c) 2004-2017                                |
  +--------------------------------------------------------------------+
@@ -408,8 +408,7 @@ function civicrm_api3_system_updatelogtables() {
  * This adds any indexes that exist in the schema but not the database.
  */
 function civicrm_api3_system_updateindexes() {
-  list($missingIndices) = CRM_Core_BAO_SchemaHandler::getMissingIndices();
-  CRM_Core_BAO_SchemaHandler::createMissingIndices($missingIndices);
+  CRM_Core_BAO_SchemaHandler::createMissingIndices(CRM_Core_BAO_SchemaHandler::getMissingIndices(TRUE));
   return civicrm_api3_create_success(1);
 }
 
@@ -428,3 +427,21 @@ function civicrm_api3_system_createmissinglogtables() {
   }
   return civicrm_api3_create_success(1);
 }
+
+/**
+ * Rebuild Multilingual Schema
+ *
+ */
+function civicrm_api3_system_rebuildmultilingualschema() {
+  $domain = new CRM_Core_DAO_Domain();
+  $domain->find(TRUE);
+
+  if ($domain->locales) {
+    $locales = explode(CRM_Core_DAO::VALUE_SEPARATOR, $domain->locales);
+    CRM_Core_I18n_Schema::rebuildMultilingualSchema($locales);
+    return civicrm_api3_create_success(1);
+  }
+  else {
+    throw new API_Exception('Cannot call rebuild Multilingual schema on non Multilingual database');
+  }
+}