diff --git a/views_content/plugins/content_types/views.inc b/views_content/plugins/content_types/views.inc index 000adc1..2d964f5 100644 --- a/views_content/plugins/content_types/views.inc +++ b/views_content/plugins/content_types/views.inc @@ -369,14 +369,14 @@ function views_content_views_content_type_edit_form($form, &$form_state) { '#description' => t('The number of items to skip and not display.'), '#dependency' => array('override-pager-checkbox' => array(1)), ); - + if ($view->display_handler->get_option('row_plugin') == 'entity') { $form['set_view_mode'] = array( '#type' => 'checkbox', '#title' => t('Set view mode'), '#default_value' => $conf['set_view_mode'], '#description' => t('Select this to expose view mode choice.'), - ); + ); } $form['panel_args'] = array( diff --git a/views_content/plugins/content_types/views_panes.inc b/views_content/plugins/content_types/views_panes.inc index 463660c..71feda8 100644 --- a/views_content/plugins/content_types/views_panes.inc +++ b/views_content/plugins/content_types/views_panes.inc @@ -261,17 +261,19 @@ function views_content_views_panes_content_type_render($subtype, $conf, $panel_a $view->display_handler->set_option('pager', $pager); } - - if ($view->display_handler->get_option('row_plugin') == 'entity') { + + if (in_array($view->display_handler->get_option('row_plugin'), array('node', 'entity'))) { if ($allow['set_view_mode']) { - if ($conf['set_view_mode']) { + if ($conf['view_mode']) { $row_options = $view->display_handler->get_option('row_options'); - $row_options['view_mode'] = $conf['set_view_mode']; + $row_options['view_mode'] = $conf['view_mode']; + $row_options['links'] = $conf['links']; + $row_options['comments'] = $conf['comments']; $view->display_handler->set_option('row_options', $row_options); } - } + } } - + if ($allow['fields_override']) { if ($conf['fields_override']) { $fields = $view->get_items('field'); @@ -326,7 +328,9 @@ function views_content_views_panes_add_defaults(&$conf, $view) { 'more_link' => $view->display_handler->get_option('more_link'), 'feed_icons' => FALSE, 'use_pager' => $pager['type'] != 'none' && $pager['type'] != 'some', - 'set_view_mode' => 'full', + 'view_mode' => 'full', + 'links' => FALSE, + 'comments' => FALSE, 'pager_id' => isset($pager['options']['id']) ? $pager['options']['id'] : 0, 'items_per_page' => !empty($pager['options']['items_per_page']) ? $pager['options']['items_per_page'] : 10, 'offset' => !empty($pager['options']['offset']) ? $pager['options']['offset'] : 0, @@ -443,22 +447,36 @@ function views_content_views_panes_content_type_edit_form($form, &$form_state) { '#suffix' => '', ); } - + if ($allow['set_view_mode']) { // This is assuming too much. A better way to do this? + // Ideally just use the options_form method from the plugin. $base_table = $view->display_handler->view->base_table; - // Check if is a valid entity type + // Check if is a valid entity type. $entity_types = entity_get_info(); if (isset($entity_types[$base_table])) { - $view_modes = array_keys($entity_types[$base_table]['view modes']); - $options = array_combine($view_modes, $view_modes); + $options = array(); + foreach ($entity_types[$base_table]['view modes'] as $mode => $settings) { + $options[$mode] = $settings['label']; + } - $form['set_view_mode'] = array( + // @see views_plugin_row_node_view::options_form() + $form['view_mode'] = array( '#type' => 'select', '#title' => t('Select view mode'), - '#default_value' => $conf['set_view_mode'], + '#default_value' => $conf['view_mode'], '#options' => $options, ); + $form['links'] = array( + '#type' => 'checkbox', + '#title' => t('Display links'), + '#default_value' => $conf['links'], + ); + $form['comments'] = array( + '#type' => 'checkbox', + '#title' => t('Display comments'), + '#default_value' => $conf['comments'], + ); } } if ($allow['items_per_page']) { @@ -579,7 +597,7 @@ function views_content_views_panes_content_type_edit_form($form, &$form_state) { */ function views_content_views_panes_content_type_edit_form_submit(&$form, &$form_state) { // Copy everything from our defaults. - $keys = array('link_to_view', 'more_link', 'feed_icons', 'use_pager', 'set_view_mode', + $keys = array('link_to_view', 'more_link', 'feed_icons', 'use_pager', 'view_mode', 'links', 'comments', 'pager_id', 'items_per_page', 'offset', 'path_override', 'path', 'arguments', 'fields_override', 'exposed'); foreach ($keys as $key) { diff --git a/views_content/plugins/views/views_content_plugin_display_panel_pane.inc b/views_content/plugins/views/views_content_plugin_display_panel_pane.inc index 8164c27..1757d15 100644 --- a/views_content/plugins/views/views_content_plugin_display_panel_pane.inc +++ b/views_content/plugins/views/views_content_plugin_display_panel_pane.inc @@ -26,7 +26,7 @@ class views_content_plugin_display_panel_pane extends views_plugin_display { $options['allow'] = array( 'contains' => array( 'use_pager' => array('default' => FALSE), - 'set_view_mode' => array('default' => FALSE), + 'set_view_mode' => array('default' => FALSE), 'items_per_page' => array('default' => FALSE), 'offset' => array('default' => FALSE), 'link_to_view' => array('default' => FALSE),