function contentanalysis_do_analysis in Content Analysis 8
Same name and namespace in other branches
- 6 contentanalysis.module \contentanalysis_do_analysis()
- 7 contentanalysis.module \contentanalysis_do_analysis()
Provides analysis on context passed in
- Normalizes the context
- Passes context to analyzer modules' "callback" declaired in analyzer definition
_params
Parameters
unknown_type $context:
unknown_type $analyzers:
1 call to contentanalysis_do_analysis()
- contentanalysis_analyze_js in ./
contentanalysis.module - Returns content analysis for AJAX calls
File
- ./
contentanalysis.module, line 979
Code
function contentanalysis_do_analysis($context, $analyzers = NULL, $analyzers_params = array()) {
$analysis = array();
$analysis_struc = array(
'#title' => '',
'#status' => 'status',
'content' => array(),
'stats' => array(),
'tests' => array(),
'messages' => array(),
'page_title' => array(
'#title' => t('Page title'),
'#status' => 'status',
),
'body' => array(
'#title' => t('Body'),
'#status' => 'status',
),
'meta_keywords' => array(
'#title' => t('Meta keywords'),
'#status' => 'status',
),
'meta_description' => array(
'#title' => t('Meta description'),
'#status' => 'status',
),
);
// change structure if content is directly inputed without a full page
if ($context['source'] == 'admin') {
if (!$context['inputs']['nid'] && !$context['inputs']['body'] && !$context['inputs']['url']) {
$analysis = $analysis_struc;
$analysis['messages'] = contentanalysis_format_message(t('No input was submitted. Please enter content, a Node ID or URL.'), 'error');
return $analysis;
}
}
$context = contentanalysis_parse_context($context, $analysis);
// get analyzer settings
foreach ($analyzers as $analyzer_name => $analyzer) {
$settings = contentanalysis_get_analyzer_settings($analyzer_name);
$context['analyzers'][$analyzer_name]['settings'] = $settings;
}
// allow modules to alter context
//drupal_alter('contentanalysis_context_parser', $context);
drupal_alter('contentanalysis_context', $context, $analyzers);
// save data to db
$save = isset($context['options']['dontsave']) ? 0 : 1;
$context['aid'] = contentanalysis_get_aid($context, $save);
// change section labels if content is directly inputed
if ($context['source'] == 'admin-form' && is_null($context['inputs']['url']) && is_null($context['inputs']['nid'])) {
$analysis_struc['body']['#title'] = t('Text');
unset($analysis_struc['page_title']);
unset($analysis_struc['meta_title']);
unset($analysis_struc['meta_keywords']);
unset($analysis_struc['meta_description']);
}
$analysis['#context'] = $context;
foreach ($analyzers as $aid => $analyzer) {
$analysis_struc['#title'] = $analyzer['title'];
$analysis[$aid] = call_user_func($analyzer['callback'], $context, $analysis_struc, isset($analyzers_params[$aid]) ? $analyzers_params[$aid] : NULL);
}
// do quickstart analysis if no analyzers are enabled
if (variable_get('contentanalysis_analyzerchecklist', 1)) {
$analysis_struc['#title'] = t('Analyzer checklist');
$analysis['contentanalysis'] = contentanalysis_checklist_analyzer($context, $analysis_struc);
}
drupal_alter('contentanalysis_analysis', $analysis, $context);
return $analysis;
}