ctools_custom_content_ui.class.php

File

ctools_custom_content/plugins/export_ui/ctools_custom_content_ui.class.php

View source
<?php

class ctools_custom_content_ui extends ctools_export_ui {
    public function edit_form(&$form, &$form_state) {
        // Correct for an error that came in because filter format changed.
        if (is_array($form_state['item']->settings['body'])) {
            $form_state['item']->settings['format'] = $form_state['item']->settings['body']['format'];
            $form_state['item']->settings['body'] = $form_state['item']->settings['body']['value'];
        }
        parent::edit_form($form, $form_state);
        $form['category'] = array(
            '#type' => 'textfield',
            '#title' => t('Category'),
            '#description' => t('What category this content should appear in. If left blank the category will be "Miscellaneous".'),
            '#default_value' => $form_state['item']->category,
        );
        $form['title'] = array(
            '#type' => 'textfield',
            '#default_value' => $form_state['item']->settings['title'],
            '#title' => t('Title'),
        );
        $form['title_heading'] = array(
            '#title' => t('Title heading'),
            '#type' => 'select',
            '#default_value' => isset($form_state['item']->settings['title_heading']) ? $form_state['item']->settings['title_heading'] : 'h2',
            '#options' => array(
                'h1' => t('h1'),
                'h2' => t('h2'),
                'h3' => t('h3'),
                'h4' => t('h4'),
                'h5' => t('h5'),
                'h6' => t('h6'),
                'div' => t('div'),
                'span' => t('span'),
            ),
        );
        $form['body'] = array(
            '#type' => 'text_format',
            '#title' => t('Body'),
            '#default_value' => $form_state['item']->settings['body'],
            '#format' => $form_state['item']->settings['format'],
        );
        $form['substitute'] = array(
            '#type' => 'checkbox',
            '#title' => t('Use context keywords'),
            '#description' => t('If checked, context keywords will be substituted in this content.'),
            '#default_value' => !empty($form_state['item']->settings['substitute']),
        );
    }
    public function edit_form_submit(&$form, &$form_state) {
        parent::edit_form_submit($form, $form_state);
        // Since items in our settings are not in the schema, we have to do these manually:
        $form_state['item']->settings['title'] = $form_state['values']['title'];
        $form_state['item']->settings['title_heading'] = $form_state['values']['title_heading'];
        $form_state['item']->settings['body'] = $form_state['values']['body']['value'];
        $form_state['item']->settings['format'] = $form_state['values']['body']['format'];
        $form_state['item']->settings['substitute'] = $form_state['values']['substitute'];
    }
    public function list_form(&$form, &$form_state) {
        parent::list_form($form, $form_state);
        $options = array(
            'all' => t('- All -'),
        );
        foreach ($this->items as $item) {
            $options[$item->category] = $item->category;
        }
        $form['top row']['category'] = array(
            '#type' => 'select',
            '#title' => t('Category'),
            '#options' => $options,
            '#default_value' => 'all',
            '#weight' => -10,
        );
    }
    public function list_filter($form_state, $item) {
        if ($form_state['values']['category'] != 'all' && $form_state['values']['category'] != $item->category) {
            return TRUE;
        }
        return parent::list_filter($form_state, $item);
    }
    public function list_sort_options() {
        return array(
            'disabled' => t('Enabled, title'),
            'title' => t('Title'),
            'name' => t('Name'),
            'category' => t('Category'),
            'storage' => t('Storage'),
        );
    }
    public function list_build_row($item, &$form_state, $operations) {
        // Set up sorting.
        switch ($form_state['values']['order']) {
            case 'disabled':
                $this->sorts[$item->name] = empty($item->disabled) . $item->admin_title;
                break;
            case 'title':
                $this->sorts[$item->name] = $item->admin_title;
                break;
            case 'name':
                $this->sorts[$item->name] = $item->name;
                break;
            case 'category':
                $this->sorts[$item->name] = $item->category;
                break;
            case 'storage':
                $this->sorts[$item->name] = $item->type . $item->admin_title;
                break;
        }
        $ops = theme('links__ctools_dropbutton', array(
            'links' => $operations,
            'attributes' => array(
                'class' => array(
                    'links',
                    'inline',
                ),
            ),
        ));
        $this->rows[$item->name] = array(
            'data' => array(
                array(
                    'data' => check_plain($item->name),
                    'class' => array(
                        'ctools-export-ui-name',
                    ),
                ),
                array(
                    'data' => check_plain($item->admin_title),
                    'class' => array(
                        'ctools-export-ui-title',
                    ),
                ),
                array(
                    'data' => check_plain($item->category),
                    'class' => array(
                        'ctools-export-ui-category',
                    ),
                ),
                array(
                    'data' => $ops,
                    'class' => array(
                        'ctools-export-ui-operations',
                    ),
                ),
            ),
            'title' => check_plain($item->admin_description),
            'class' => array(
                !empty($item->disabled) ? 'ctools-export-ui-disabled' : 'ctools-export-ui-enabled',
            ),
        );
    }
    public function list_table_header() {
        return array(
            array(
                'data' => t('Name'),
                'class' => array(
                    'ctools-export-ui-name',
                ),
            ),
            array(
                'data' => t('Title'),
                'class' => array(
                    'ctools-export-ui-title',
                ),
            ),
            array(
                'data' => t('Category'),
                'class' => array(
                    'ctools-export-ui-category',
                ),
            ),
            array(
                'data' => t('Operations'),
                'class' => array(
                    'ctools-export-ui-operations',
                ),
            ),
        );
    }

}

Classes

Title Deprecated Summary
ctools_custom_content_ui