no_context_content_type.inc
"No context" sample content type. It operates with no context at all. It would be basically the same as a 'custom content' block, but it's not even that sophisticated.
File
-
ctools_plugin_example/
plugins/ content_types/ no_context_content_type.inc
View source
<?php
/**
* @file
* "No context" sample content type. It operates with no context at all. It would
* be basically the same as a 'custom content' block, but it's not even that
* sophisticated.
*/
/**
* Plugins are described by creating a $plugin array which will be used
* by the system that includes this file.
*/
$plugin = array(
'title' => t('CTools example no context content type'),
'description' => t('No context content type - requires and uses no context.'),
// 'single' => TRUE means has no subtypes.
'single' => TRUE,
// Constructor.
'content_types' => array(
'no_context_content_type',
),
// Name of a function which will render the block.
'render callback' => 'no_context_content_type_render',
// The default context.
'defaults' => array(),
// This explicitly declares the config form. Without this line, the func would be
// ctools_plugin_example_no_context_content_type_edit_form.
'edit form' => 'no_context_content_type_edit_form',
// Icon goes in the directory with the content type.
'icon' => 'icon_example.png',
'category' => array(
t('CTools Examples'),
-9,
),
);
/**
* Run-time rendering of the body of the block.
*
* @param $subtype
* @param $conf
* Configuration as done at admin time.
* @param $args
* @param $context
* Context - in this case we don't have any.
*
* @return
* An object with at least title and content members.
*/
function no_context_content_type_render($subtype, $conf, $args, $context) {
$block = new stdClass();
$ctools_help = theme('advanced_help_topic', array(
'module' => 'ctools',
'topic' => 'plugins',
'type' => 'title',
));
$ctools_plugin_example_help = theme('advanced_help_topic', array(
'module' => 'ctools_plugin_example',
'topic' => 'Chaos-Tools--CTools--Plugin-Examples',
'type' => 'title',
));
// The title actually used in rendering.
$block->title = check_plain("No-context content type");
$block->content = t("\n <div>Welcome to the CTools Plugin Example demonstration content type.\n\n This block is a content type which requires no context at all. It's like a custom block,\n but not even that sophisticated.\n\n For more information on the example plugins, please see the advanced help for\n\n {$ctools_help} and {$ctools_plugin_example_help}\n </div>\n ");
if (!empty($conf)) {
$block->content .= '<div>The only information that can be displayed in this block comes from the code and its settings form: </div>';
$block->content .= '<div style="border: 1px solid red;">' . var_export($conf, TRUE) . '</div>';
}
return $block;
}
/**
* 'Edit form' callback for the content type.
* This example just returns a form; validation and submission are standard drupal
* Note that if we had not provided an entry for this in hook_content_types,
* this could have had the default name
* ctools_plugin_example_no_context_content_type_edit_form.
*/
function no_context_content_type_edit_form($form, &$form_state) {
$conf = $form_state['conf'];
$form['item1'] = array(
'#type' => 'textfield',
'#title' => t('Item1'),
'#size' => 50,
'#description' => t('The setting for item 1.'),
'#default_value' => !empty($conf['item1']) ? $conf['item1'] : '',
'#prefix' => '<div class="clear-block no-float">',
'#suffix' => '</div>',
);
$form['item2'] = array(
'#type' => 'textfield',
'#title' => t('Item2'),
'#size' => 50,
'#description' => t('The setting for item 2'),
'#default_value' => !empty($conf['item2']) ? $conf['item2'] : '',
'#prefix' => '<div class="clear-block no-float">',
'#suffix' => '</div>',
);
return $form;
}
function no_context_content_type_edit_form_submit($form, &$form_state) {
foreach (array(
'item1',
'item2',
) as $key) {
$form_state['conf'][$key] = $form_state['values'][$key];
}
}
Functions
Title | Deprecated | Summary |
---|---|---|
no_context_content_type_edit_form | 'Edit form' callback for the content type. This example just returns a form; validation and submission are standard drupal Note that if we had not provided an entry for this in hook_content_types, this could have had the default… | |
no_context_content_type_edit_form_submit | ||
no_context_content_type_render | Run-time rendering of the body of the block. |