You are here

function contentanalysis_get_aid in Content Analysis 8

Same name and namespace in other branches
  1. 6 contentanalysis.module \contentanalysis_get_aid()
  2. 7 contentanalysis.module \contentanalysis_get_aid()

Returns the aid for a given context

Parameters

$context:

$save: Boolean to save the aid if it does not already exist

Return value

aid

1 call to contentanalysis_get_aid()
contentanalysis_do_analysis in ./contentanalysis.module
Provides analysis on context passed in

File

./contentanalysis.module, line 1661

Code

function contentanalysis_get_aid($context, $save = 0) {

  // save data to db
  $aid = NULL;
  $where = '';
  if (isset($context['source']) && $context['source'] == 'node-edit-form' && is_null($context['nid'])) {
    return $aid;
  }
  $query = db_select('contentanalysis', 'ca')
    ->fields('ca');
  if (isset($context['aid']) && $context['aid'] > 0) {
    $query
      ->condition('aid', $context['aid']);
    $where = TRUE;
  }
  elseif (isset($context['nid']) && $context['nid'] > 0) {
    $query
      ->condition('nid', $context['nid']);
    $where = TRUE;
  }
  elseif (!is_null($context['path'])) {
    $query
      ->condition('path', $context['path']);
    $where = TRUE;
  }
  elseif (!is_null($context['url'])) {
    $query
      ->condition('url', $context['url']);
    $where = TRUE;
  }
  if ($where && $save) {

    // by pass db save if analyzing content direct submission
    $result = $query
      ->execute()
      ->fetchObject();
    $fields = array(
      'last_analysis' => time(),
      'nid' => isset($context['nid']) && $context['nid'] ? $context['nid'] : 0,
      'path' => isset($context['path']) && $context['path'] ? $context['path'] : '',
      'url' => $context['url'],
    );
    if ($result && $result->aid) {
      $aid = $result->aid;
      db_update('contentanalysis')
        ->fields($fields)
        ->condition('aid', $result->aid)
        ->execute();
    }
    elseif (isset($fields['url'])) {
      $context['last_analysis'] = REQUEST_TIME;
      $query = db_insert('contentanalysis')
        ->fields($fields);
      $aid = $query
        ->execute();
    }
  }
  return $aid;
}