function contentanalysis_analyze_js in Content Analysis 6
Same name and namespace in other branches
- 8 contentanalysis.module \contentanalysis_analyze_js()
- 7 contentanalysis.module \contentanalysis_analyze_js()
Returns content analysis for AJAX calls
- initializes context from AJAX _POST data
- submits context to contentanalysis_do_analysis for analysis
- formats returned analysis
Return value
JSON formated analysis
See also
1 string reference to 'contentanalysis_analyze_js'
- contentanalysis_menu in ./
contentanalysis.module - Implementation of hook_menu().
File
- ./
contentanalysis.module, line 406
Code
function contentanalysis_analyze_js() {
$analysis = array();
if ($_SESSION['contentanalysis']['code'] != $_POST['code']) {
//watchdog('contentanalysis', 'Blocked invalid attempt ' . $_SESSION['contentanalysis']['code'] . ' != ' . $_POST['code']);
exit;
}
$context = contentanalysis_get_default_context();
$context['form_id'] = 'contentanalysis_analyze_js';
$context['inputs']['nid'] = $_POST['nid'] == '-1' ? NULL : $_POST['nid'];
$context['inputs']['url'] = $_POST['url'] == '-1' ? NULL : $_POST['url'];
$context['inputs']['title'] = $_POST['title'] == '-1' ? NULL : $_POST['title'];
$context['inputs']['page_title'] = $_POST['page_title'] == '-1' ? NULL : $_POST['page_title'];
$context['inputs']['body'] = $_POST['body'] == '-1' ? NULL : $_POST['body'];
$context['inputs']['meta_keywords'] = $_POST['meta_keywords'] == '-1' ? NULL : $_POST['meta_keywords'];
$context['inputs']['meta_description'] = $_POST['meta_description'] == '-1' ? NULL : $_POST['meta_description'];
$context['inputs']['page'] = $_POST['page'] == '-1' ? NULL : $_POST['page'];
$context['inputs']['node_type'] = $_POST['node_type'] == '-1' ? NULL : $_POST['node_type'];
$context['inputs']['body_input_filter'] = $_POST['body_input_filter'] == '-1' ? NULL : $_POST['body_input_filter'];
$context['inputs']['hidden'] = $_POST['hidden'] == '-1' ? NULL : $_POST['hidden'];
$context['inputs']['action'] = $_POST['action'] == '-1' ? NULL : $_POST['action'];
$context['nid'] = $context['inputs']['nid'];
$context['url'] = $context['inputs']['url'];
$context['source'] = $_POST['source'];
$a = explode(',', $_POST['analyzers']);
$context['inputs']['analyzers'] = array();
if (is_array($a)) {
foreach ($a as $aid) {
$context['inputs']['analyzers'][$aid] = $aid;
}
}
$analyzers = module_invoke_all('contentanalysis_analyzers');
foreach ($_POST as $k => $v) {
if (substr($k, 0, 3) == 'ao_') {
list($t, $aid, $vk) = explode('_', $k);
$context['inputs']['analyzer_options'][$aid][$vk] = $v;
}
}
$context['title'] = $context['inputs']['title'];
$context['page_title'] = $context['inputs']['page_title'];
$context['body'] = $context['inputs']['body'];
$context['meta_keywords'] = $context['inputs']['meta_keywords'];
$context['meta_description'] = $context['inputs']['meta_description'];
$context['page'] = $context['inputs']['page'];
// hook to allow other modules to alter context
//drupal_alter('contentanalysis_context', $context);
if ($c = module_invoke_all('contentanalysis_analyze_context', $context)) {
$context = $c;
}
if ($context['options']['exit']) {
$analysis['#context'] = $context;
}
else {
// if url is input from admin form, go fetch the page contents
if ($_POST['source'] == 'admin-form' && $context['url'] && !$context['nid'] && !$context['body']) {
$context['page'] = file_get_contents($context['url']);
}
$analysis = contentanalysis_do_analysis($context);
//$analyzers = module_invoke_all('contentanalysis_analyzers');
drupal_alter('contentanalysis_analyzers', $analyzers);
foreach ($analyzers as $aid => $analyzer) {
if ($analyzer['admin form submit callback']) {
call_user_func($analyzer['admin form submit callback'], $form, $form_state);
}
}
$analysis = contentanalysis_build_analysis_content($analysis);
contentanalysis_save_status($analysis);
}
$output = array();
$output['main']['output'] = theme_contentanalysis_analysis($analysis);
$output['page_title']['output'] = theme_contentanalysis_section_analysis($analysis, 'page_title');
$output['body']['output'] = theme_contentanalysis_section_analysis($analysis, 'body');
$output['meta_keywords']['output'] = theme_contentanalysis_section_analysis($analysis, 'meta_keywords');
$output['meta_description']['output'] = theme_contentanalysis_section_analysis($analysis, 'meta_description');
$output['inputs']['analyzers'] = implode(",", $analysis['#context']['inputs']['analyzers']);
$output['inputs']['action'] = $analysis['#context']['inputs']['action'];
//dsm($output);
drupal_json($output);
}