You are here

function insight_report_alerts_save in Insight 7

1 call to insight_report_alerts_save()
insight_contentanalysis_analysis_alter in ./insight.module

File

./insight.module, line 327

Code

function insight_report_alerts_save($alerts, $analyzer, $report = NULL, $nid = NULL, $path = NULL) {

  // check if report already exists
  if (!is_array($alerts) || count($alerts) == 0) {
    return FALSE;
  }
  if (!isset($report)) {
    $report = $alerts[key($alerts)]['report'];
  }
  if (!isset($nid)) {
    $nid = $alerts[key($alerts)]['nid'];
  }
  if (!isset($path)) {
    $path = $alerts[key($alerts)]['path'];
  }
  $alerts0 = insight_alerts_load_by_params(NULL, $report, NULL, $nid);
  $analyzer_defs = insight_analyzer_info();
  $alert_defs = $analyzer_defs[$analyzer]['reports'][$report]['alerts'];
  foreach ($alert_defs as $name) {

    // alert generated
    if (isset($alerts[$name])) {

      // alert generated, doen't previously exist
      if (!isset($alerts0[$name])) {
        insight_alert_save($alerts[$name]);
      }
      else {
        if ($alerts0[$name]['active'] != 0) {
          insight_alert_activate($alerts0[$name]['iaid'], TRUE);
        }
      }
    }
    else {
      if (isset($alerts0[$name])) {

        // existing alert not ignored
        if ($alerts0[$name]['active'] == 0) {
          insight_alert_ignore_dismiss($alerts0[$name]['iaid'], TRUE);
        }
        else {
          insight_alert_dismiss($alerts0[$name]['iaid'], TRUE);
        }
      }
    }
  }
  return $alerts;
}