Ordenar el contenido por Votos

00:00
 

Vamos a ver como por medio de los módulos Fivestar y VotingAPI podemos ordenar el contenido según los votos en Drupal.
De esta manera el contenido se ordenara dependiendo de la cantidad de votos.

Tenemos que activar los módulos Fivestar y VotingAPI para poder comenzar.

Luego recuerda añadir tu campo de votos al contenido que te interese.

Creando la vista

Ahora que ya tenemos todo encaminado es momento de crear una nueva vista.

En la solapa "Relaciones" voy a añadir "Contenido: Vote results".

En "Filtros de Datos" selecciono dentro de "Tipo del valor", Porcentaje.
En "Etiqueta de voto" "vote" y en "Función de agrupación" selecciono "votación promedio".

Ahora al regresar a "Campos" puedo añadir "Resultados de votos:valor".
Me queda "(Resultados de votos) Resultados de votos: Valor(Ranking)".
Dejo crear una etiqueta, colocar dos puntos después de la etiqueta.
Separados de miles "coma", clic en guardar.
También añado el campo en mi caso.

Tengo que modificar en "Criterios de clasificación" para que ordene estos nuevos parámetros.
Por tanto añado "Resultados de votos: valor".

Y en la nueva pestaña dentro de "Relaciones" selecciono "orden descendente" para que los que contienen más votos estén primeros.

Es importante también eliminar dentro de "Criterios de clasificación" la fecha, de lo contrario no funcionaria bien.

Selecciono el menú y guardo.

Vista Final

Este es el código final de mi vista la cual puedes importar para estudiarla.

$view = new view();
$view->name = 'ranking';
$view->description = '';
$view->tag = 'default';
$view->base_table = 'node';
$view->human_name = 'Ranking';
$view->core = 7;
$view->api_version = '3.0';
$view->disabled = FALSE; /* Edit this to true to make a default view disabled initially */

/* Display: Master */
$handler = $view->new_display('default', 'Master', 'default');
$handler->display->display_options['title'] = 'Ranking';
$handler->display->display_options['use_more_always'] = FALSE;
$handler->display->display_options['use_more_text'] = 'más';
$handler->display->display_options['access']['type'] = 'perm';
$handler->display->display_options['cache']['type'] = 'none';
$handler->display->display_options['query']['type'] = 'views_query';
$handler->display->display_options['exposed_form']['type'] = 'basic';
$handler->display->display_options['exposed_form']['options']['submit_button'] = 'Aplicar';
$handler->display->display_options['exposed_form']['options']['reset_button_label'] = 'Reiniciar';
$handler->display->display_options['exposed_form']['options']['exposed_sorts_label'] = 'Ordenar por';
$handler->display->display_options['pager']['type'] = 'full';
$handler->display->display_options['pager']['options']['items_per_page'] = '10';
$handler->display->display_options['pager']['options']['expose']['items_per_page_label'] = 'Elementos por página';
$handler->display->display_options['pager']['options']['expose']['items_per_page_options_all_label'] = '- Todo -';
$handler->display->display_options['pager']['options']['expose']['offset_label'] = 'Desplazamiento';
$handler->display->display_options['pager']['options']['tags']['first'] = '« primero';
$handler->display->display_options['pager']['options']['tags']['previous'] = '‹ anterior';
$handler->display->display_options['pager']['options']['tags']['next'] = 'siguiente ›';
$handler->display->display_options['pager']['options']['tags']['last'] = 'última »';
$handler->display->display_options['style_plugin'] = 'table';
$handler->display->display_options['style_options']['columns'] = array(
  'title' => 'title',
  'body' => 'body',
  'value' => 'value',
);
$handler->display->display_options['style_options']['default'] = '-1';
$handler->display->display_options['style_options']['info'] = array(
  'title' => array(
    'sortable' => 0,
    'default_sort_order' => 'asc',
    'align' => '',
    'separator' => '',
    'empty_column' => 0,
  ),
  'body' => array(
    'sortable' => 0,
    'default_sort_order' => 'asc',
    'align' => '',
    'separator' => '',
    'empty_column' => 0,
  ),
  'value' => array(
    'sortable' => 0,
    'default_sort_order' => 'asc',
    'align' => '',
    'separator' => '',
    'empty_column' => 0,
  ),
);
/* Relación: Contenido: Vote results */
$handler->display->display_options['relationships']['votingapi_cache']['id'] = 'votingapi_cache';
$handler->display->display_options['relationships']['votingapi_cache']['table'] = 'node';
$handler->display->display_options['relationships']['votingapi_cache']['field'] = 'votingapi_cache';
$handler->display->display_options['relationships']['votingapi_cache']['label'] = 'Resultados de votos';
$handler->display->display_options['relationships']['votingapi_cache']['votingapi'] = array(
  'value_type' => 'percent',
  'tag' => 'vote',
  'function' => 'average',
);
/* Campo: Contenido: Título */
$handler->display->display_options['fields']['title']['id'] = 'title';
$handler->display->display_options['fields']['title']['table'] = 'node';
$handler->display->display_options['fields']['title']['field'] = 'title';
$handler->display->display_options['fields']['title']['label'] = '';
$handler->display->display_options['fields']['title']['alter']['word_boundary'] = FALSE;
$handler->display->display_options['fields']['title']['alter']['ellipsis'] = FALSE;
/* Campo: Contenido: Body */
$handler->display->display_options['fields']['body']['id'] = 'body';
$handler->display->display_options['fields']['body']['table'] = 'field_data_body';
$handler->display->display_options['fields']['body']['field'] = 'body';
$handler->display->display_options['fields']['body']['label'] = '';
$handler->display->display_options['fields']['body']['element_label_colon'] = FALSE;
$handler->display->display_options['fields']['body']['type'] = 'text_summary_or_trimmed';
$handler->display->display_options['fields']['body']['settings'] = array(
  'trim_length' => '300',
);
/* Campo: Resultados de votos: Valor */
$handler->display->display_options['fields']['value']['id'] = 'value';
$handler->display->display_options['fields']['value']['table'] = 'votingapi_cache';
$handler->display->display_options['fields']['value']['field'] = 'value';
$handler->display->display_options['fields']['value']['relationship'] = 'votingapi_cache';
$handler->display->display_options['fields']['value']['precision'] = '0';
/* Criterio de ordenación: Resultados de votos: Tipo del valor */
$handler->display->display_options['sorts']['value_type']['id'] = 'value_type';
$handler->display->display_options['sorts']['value_type']['table'] = 'votingapi_cache';
$handler->display->display_options['sorts']['value_type']['field'] = 'value_type';
$handler->display->display_options['sorts']['value_type']['relationship'] = 'votingapi_cache';
$handler->display->display_options['sorts']['value_type']['order'] = 'DESC';
/* Criterio de filtrado: Contenido: Publicado */
$handler->display->display_options['filters']['status']['id'] = 'status';
$handler->display->display_options['filters']['status']['table'] = 'node';
$handler->display->display_options['filters']['status']['field'] = 'status';
$handler->display->display_options['filters']['status']['value'] = 1;
$handler->display->display_options['filters']['status']['group'] = 1;
$handler->display->display_options['filters']['status']['expose']['operator'] = FALSE;
/* Criterio de filtrado: Contenido: Tipo */
$handler->display->display_options['filters']['type']['id'] = 'type';
$handler->display->display_options['filters']['type']['table'] = 'node';
$handler->display->display_options['filters']['type']['field'] = 'type';
$handler->display->display_options['filters']['type']['value'] = array(
  'article' => 'article',
);

/* Display: Page */
$handler = $view->new_display('page', 'Page', 'page');
$handler->display->display_options['path'] = 'ranking';
$handler->display->display_options['menu']['type'] = 'normal';
$handler->display->display_options['menu']['title'] = 'Ranking';
$handler->display->display_options['menu']['weight'] = '10';
$handler->display->display_options['menu']['name'] = 'main-menu';
$handler->display->display_options['menu']['context'] = 0;
$handler->display->display_options['menu']['context_only_inline'] = 0;
$translatables['ranking'] = array(
  t('Master'),
  t('Ranking'),
  t('más'),
  t('Aplicar'),
  t('Reiniciar'),
  t('Ordenar por'),
  t('Asc'),
  t('Desc'),
  t('Elementos por página'),
  t('- Todo -'),
  t('Desplazamiento'),
  t('« primero'),
  t('‹ anterior'),
  t('siguiente ›'),
  t('última »'),
  t('Resultados de votos'),
  t('Valor'),
  t('.'),
  t(','),
  t('Page'),
);



Tópico
 
Sistema Operativo
 
Plataforma
 

Premium

Landing Page con Bootstrap

Landing Page con Bootstrap y Gulp

En Youtube

Suscríbete a mi canal

Suscríbete a las noticias

* requerido

Inicio de sesión

Recursos