function contentanalysis_analyze_js in Content Analysis 8
Same name and namespace in other branches
- 6 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 formatted analysis
See also
1 string reference to 'contentanalysis_analyze_js'
- contentanalysis_menu in ./
contentanalysis.module - Implements hook_menu().
File
- ./
contentanalysis.module, line 448
Code
function contentanalysis_analyze_js() {
$analysis = array();
if ($_SESSION['contentanalysis']['code'] != $_POST['code']) {
watchdog('contentanalysis', 'Blocked invalid attempt ' . check_plain($_SESSION['contentanalysis']['code']) . ' != ' . check_plain($_POST['code']));
drupal_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']['meta_title'] = $_POST['meta_title'] == '-1' ? NULL : $_POST['meta_title'];
$context['inputs']['body'] = $_POST['body'] == '-1' ? NULL : $_POST['body'];
$context['inputs']['body_summary'] = $_POST['body_summary'] == '-1' ? NULL : $_POST['body_summary'];
$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'] = !isset($_POST['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['source'] = check_plain($_POST['source']);
$context['nid'] = $context['inputs']['nid'];
$context['url'] = $context['inputs']['url'];
// Load analyzers using hook_contentanalysis_analyzers().
$analyzer_defs = contentanalysis_analyzer_info();
$analyzers = array();
$a = explode(',', check_plain($_POST['analyzers']));
$context['inputs']['analyzers'] = array();
if (is_array($a)) {
foreach ($a as $aid) {
$context['inputs']['analyzers'][$aid] = $aid;
$analyzers[$aid] = $analyzer_defs[$aid];
}
}
foreach ($_POST as $k => $v) {
if (drupal_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_title'] = $context['inputs']['meta_title'];
$context['meta_keywords'] = $context['inputs']['meta_keywords'];
$context['meta_description'] = $context['inputs']['meta_description'];
$context['page'] = $context['inputs']['page'];
if (isset($context['options']) && isset($context['options']['exit'])) {
$analysis['#context'] = $context;
}
else {
// if url is input from admin form, go fetch the page contents
if ($context['source'] == 'admin-form' && $context['url'] && !$context['nid'] && !$context['body']) {
$context['page'] = file_get_contents($context['url']);
}
$analysis = contentanalysis_do_analysis($context, $analyzers);
$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'];
drupal_json_output($output);
}