function ctools_custom_content_type_admin_info in Chaos Tool Suite (ctools) 6
Same name and namespace in other branches
- 7 plugins/content_types/custom/custom.inc \ctools_custom_content_type_admin_info()
Callback to provide administrative info. In this case we'll render the content as long as it's not PHP, which is too risky to render here.
File
- plugins/
content_types/ custom/ custom.inc, line 215 - Custom content type.
Code
function ctools_custom_content_type_admin_info($subtype, $conf) {
$settings = ctools_custom_content_type_get_conf(ctools_custom_content_type_content_type($subtype), $conf);
$block = new stdClass();
$block->title = filter_xss_admin($settings['title']);
// We don't want to render php output on preview here, because if something is
// wrong the whole display will be borked. So we check to see if the php
// evaluator filter is being used, and make a temporary change to the filter
// so that we get the printed php, not the eval'ed php.
$php_filter = FALSE;
foreach (filter_list_format($settings['format']) as $filter) {
if ($filter->module == 'php') {
$php_filter = TRUE;
break;
}
}
// If a php filter is active, just print the source, but only if the current
// user has access to the actual filter.
if ($php_filter) {
if (!filter_access($settings['format'])) {
return NULL;
}
$block->content = '<pre>' . check_plain($settings['body']) . '</pre>';
}
else {
// We also need to filter through XSS admin because <script> tags can
// cause javascript which will interfere with our ajax.
$block->content = filter_xss_admin(check_markup($settings['body'], $settings['format']));
}
return $block;
}