View source
<?php
function ajax_markup_menu() {
$items = array();
$items['ajax-markup'] = array(
'page callback' => 'ajax_markup',
'access callback' => 'ajax_markup_access',
'type' => MENU_CALLBACK,
);
return $items;
}
function ajax_markup_permission() {
return array(
'access ajax markup' => array(
'title' => t('Access ajax markup'),
),
);
}
function ajax_markup_access() {
return user_access('access ajax markup') && isset($_POST['token']) && drupal_valid_token($_POST['token'], 'ajax-markup', TRUE);
}
function ajax_markup() {
$output = '';
if (isset($_POST['input']) && is_string($_POST['input'])) {
if (!empty($_POST['format'])) {
if ($format = filter_format_load($_POST['format'])) {
if (filter_access($format, $GLOBALS['user'])) {
$format_id = $format->format;
}
}
}
if (!isset($format_id)) {
$format_id = filter_fallback_format();
}
$output = check_markup($_POST['input'], $format_id);
}
drupal_json_output(array(
'output' => $output,
));
exit;
}
function ajax_markup_on() {
static $state;
if (isset($state)) {
return $state;
}
if (!user_access('access ajax markup')) {
return $state = FALSE;
}
drupal_add_js(drupal_get_path('module', 'ajax_markup') . '/ajax_markup.js');
$settings['ajaxMarkup'] = array(
'url' => url('ajax-markup'),
'token' => drupal_get_token('ajax-markup'),
);
drupal_add_js($settings, 'setting');
return $state = TRUE;
}