View source
<?php
function panels_custom_panels_content_types() {
$items['custom'] = array(
'title' => t('Custom'),
'weight' => -10,
'single' => TRUE,
'content_types' => 'panels_admin_content_types_custom',
'render callback' => 'panels_content_custom',
'editor render callback' => 'panels_admin_content_custom',
'add callback' => 'panels_admin_edit_custom',
'edit callback' => 'panels_admin_edit_custom',
'title callback' => 'panels_admin_title_custom',
'no override title' => TRUE,
);
return $items;
}
function panels_content_custom($subtype, $conf) {
static $delta = 0;
$block = new stdClass();
$block->module = 'custom';
$block->delta = ++$delta;
$block->subject = filter_xss_admin($conf['title']);
$block->content = check_markup($conf['body'], $conf['format'], FALSE);
return $block;
}
function panels_admin_content_custom($display, $pane) {
$block = new stdClass();
$block->title = filter_xss_admin($pane->configuration['title']);
$php_filter = FALSE;
foreach (filter_list_format($pane->configuration['format']) as $filter) {
if ($filter->name == 'PHP evaluator') {
$php_filter = TRUE;
}
}
$block->content = check_markup($pane->configuration['body'], $php_filter ? 1 : $pane->configuration['format']);
return $block;
}
function panels_admin_content_types_custom() {
return array(
'custom' => array(
'title' => t('New custom content'),
'icon' => 'icon_block_custom.png',
'path' => panels_get_path('content_types/custom'),
'description' => t('Create a completely custom piece of HTML content.'),
'category' => array(
t('Custom'),
-10,
),
),
);
}
function panels_admin_edit_custom($id, $parents, $conf = NULL) {
if (empty($conf)) {
$conf = array(
'title' => '',
'body' => '',
'format' => FILTER_FORMAT_DEFAULT,
);
}
$form['title'] = array(
'#type' => 'textfield',
'#default_value' => $conf['title'],
'#title' => t('Title'),
);
$form['body'] = array(
'#title' => t('Body'),
'#type' => 'textarea',
'#default_value' => $conf['body'],
);
$parents[] = 'format';
$form['format'] = filter_form($conf['format'], 1, $parents);
return $form;
}
function panels_admin_title_custom($subtype, $conf) {
$output = t('Custom');
if (!empty($conf['title'])) {
$output .= " (" . filter_xss_admin($conf['title']) . ")";
}
return $output;
}