function ctools_custom_content_type_get_conf

Given a subtype and a $conf, return the actual settings to use.

The actual settings may be stored directly in the pane or this may be a pointer to re-usable content that may be in the database or in an export. We have to determine from the subtype whether or not it is local or shared custom content.

4 calls to ctools_custom_content_type_get_conf()
ctools_custom_content_type_admin_info in plugins/content_types/custom/custom.inc
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.
ctools_custom_content_type_admin_title in plugins/content_types/custom/custom.inc
Callback to provide the administrative title of the custom content.
ctools_custom_content_type_edit_form in plugins/content_types/custom/custom.inc
Returns an edit form for the custom type.
ctools_custom_content_type_render in plugins/content_types/custom/custom.inc
Output function for the 'custom' content type. Outputs a custom based on the module and delta supplied in the configuration.

File

plugins/content_types/custom/custom.inc, line 112

Code

function ctools_custom_content_type_get_conf($subtype, $conf) {
    if ($subtype['name'] != 'custom') {
        $settings = $subtype['content']->settings;
        $settings['custom_type'] = 'fixed';
        $settings['content'] = $subtype['content'];
    }
    else {
        // This means they created it as custom content and then set it as
        // reusable. Since we're not allowed to change the subtype, we're
        // still stored as though we are local, but are pointing off to
        // non-local.
        if (!empty($conf['name']) && module_exists('ctools_custom_content')) {
            ctools_include('export');
            $content = ctools_export_crud_load('ctools_custom_content', $conf['name']);
            if ($content) {
                $settings = $content->settings;
                $settings['custom_type'] = 'fixed';
                $settings['content'] = $content;
                $settings['admin_title'] = $content->admin_title;
            }
            else {
                $content = ctools_export_crud_new('ctools_custom_content');
                $content->name = $conf['name'];
                $settings = array(
                    'admin_title' => t('Missing/deleted content'),
                    'title' => '',
                    'title_heading' => '',
                    'body' => '',
                    'format' => filter_default_format(),
                    'substitute' => TRUE,
                    'custom_type' => 'fixed',
                    'content' => $content,
                );
            }
        }
        else {
            $settings = $conf;
            $settings['custom_type'] = 'local';
        }
    }
    // Correct for an error that came in because filter format changed.
    if (is_array($settings['body'])) {
        $settings['format'] = $settings['body']['format'];
        $settings['body'] = $settings['body']['value'];
    }
    return $settings;
}