Merge pull request #3614 from eileenmcnaughton/CRM-14951
[civicrm-core.git] / CRM / Logging / Schema.php
index d774e4d5c5669d5c245ea3e2219fb4dfc216de4d..d733c8446781fb29ef9c1973d6c54cc8bcf77ee4 100644 (file)
@@ -70,13 +70,14 @@ AND    TABLE_NAME LIKE 'civicrm_%'
       $this->tables[] = $dao->TABLE_NAME;
     }
 
-    // do not log temp import, cache and log tables
+    // do not log temp import, cache, menu and log tables
     $this->tables = preg_grep('/^civicrm_import_job_/', $this->tables, PREG_GREP_INVERT);
     $this->tables = preg_grep('/_cache$/', $this->tables, PREG_GREP_INVERT);
     $this->tables = preg_grep('/_log/', $this->tables, PREG_GREP_INVERT);
     $this->tables = preg_grep('/^civicrm_task_action_temp_/', $this->tables, PREG_GREP_INVERT);
     $this->tables = preg_grep('/^civicrm_export_temp_/', $this->tables, PREG_GREP_INVERT);
     $this->tables = preg_grep('/^civicrm_queue_/', $this->tables, PREG_GREP_INVERT);
+    $this->tables = preg_grep('/^civicrm_menu/', $this->tables, PREG_GREP_INVERT); //CRM-14672
 
     // do not log civicrm_mailing_event* tables, CRM-12300
     $this->tables = preg_grep('/^civicrm_mailing_event_/', $this->tables, PREG_GREP_INVERT);
@@ -260,6 +261,11 @@ AND    TABLE_NAME LIKE 'log_civicrm_%'
     return TRUE;
   }
 
+  /**
+   * @param $table
+   *
+   * @return array
+   */
   private function _getCreateQuery($table) {
     $dao = CRM_Core_DAO::executeQuery("SHOW CREATE TABLE {$table}");
     $dao->fetch();
@@ -267,6 +273,12 @@ AND    TABLE_NAME LIKE 'log_civicrm_%'
     return $create;
   }
 
+  /**
+   * @param $col
+   * @param $createQuery
+   *
+   * @return array|mixed|string
+   */
   private function _getColumnQuery($col, $createQuery) {
     $line = preg_grep("/^  `$col` /", $createQuery);
     $line = rtrim(array_pop($line), ',');
@@ -275,6 +287,9 @@ AND    TABLE_NAME LIKE 'log_civicrm_%'
     return $line;
   }
 
+  /**
+   * @param bool $rebuildTrigger
+   */
   function fixSchemaDifferencesForAll($rebuildTrigger = FALSE) {
     $diffs = array();
     foreach ($this->tables as $table) {
@@ -301,6 +316,11 @@ AND    TABLE_NAME LIKE 'log_civicrm_%'
    * so there's no need for a default timestamp and therefore we remove such default timestamps
    * also eliminate the NOT NULL constraint, since we always copy and schema can change down the road)
    */
+  /**
+   * @param $query
+   *
+   * @return mixed
+   */
   function fixTimeStampAndNotNullSQL($query) {
     $query = str_ireplace("TIMESTAMP NOT NULL", "TIMESTAMP NULL", $query);
     $query = str_ireplace("DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP", '', $query);
@@ -398,6 +418,12 @@ WHERE  table_schema IN ('{$this->db}', '{$civiDB}')";
     return $columnSpecs[$table];
   }
 
+  /**
+   * @param $civiTable
+   * @param $logTable
+   *
+   * @return array
+   */
   function columnsWithDiffSpecs($civiTable, $logTable) {
     $civiTableSpecs = $this->columnSpecsOf($civiTable);
     $logTableSpecs  = $this->columnSpecsOf($logTable);
@@ -533,6 +559,11 @@ COLS;
     return (bool) CRM_Core_DAO::singleValueQuery("SHOW TRIGGERS LIKE 'civicrm_contact'");
   }
 
+  /**
+   * @param $info
+   * @param null $tableName
+   * @param bool $force
+   */
   function triggerInfo(&$info, $tableName = NULL, $force = FALSE) {
     // check if we have logging enabled
     $config =& CRM_Core_Config::singleton();