Pregunta:
Me gustaría crear un buscapersonas en la tabla cuando haya una cantidad fija de filas.
El método sugerido en Internet crea una tabla y obtiene datos mediante la consulta SQL, pero quiero crear una tabla a partir de los datos de la matriz.
visitedgroups = array('1','2','3','4');//It is an array of node id which are group entity
$header = array(
array('data' => t('Group Name')),
array('data' => t('Group Since')),
array('data' => t('Join')),
);
$rows = array();
foreach ($visitedgroups as $groupid) {
$groupnode = node_load($groupid);
$createdtime = format_interval((time() - $groupnode->created) , 2) . t(' ago');
$joinlink = l('Join Group', 'group/node/'. $groupnode->nid.'/subscribe');
$rows[] = array( l($groupnode->title, 'node/'. $groupnode->nid),
t($createdtime),
$joinlink,
);
}
$output .= t('Recently visited groups by you, in which you are not member.');
$output .= theme('table', array('header' => $header, 'rows' => $rows, array('class' => array('group-visited-table')))).theme('pager');
El código anterior genera la tabla y funciona bien. Pero quiero agregar buscapersonas en la tabla. De las referencias en Internet, encontré que la gente agrega,
$ consulta = $ consulta-> extender ('TablaSort') -> extender ('PagerDefault') -> límite (10);
antes de $ query-> execute (), pero no tengo consulta.
Entonces, ¿cómo puedo aplicar el buscapersonas en este escenario?
Respuesta:
Prueba la siguiente función:
/**
* An generic array pager for Drupal.
* For Drupal 5 and 6, the default limit is 10. For Drupal 7 it is 9.
*/
function pager_array_splice($data, $limit = 9, $element = 0) {
global $pager_page_array, $pager_total, $pager_total_items;
$page = isset($_GET['page']) ? $_GET['page'] : '';
// Convert comma-separated $page to an array, used by other functions.
$pager_page_array = explode(',', $page);
// We calculate the total of pages as ceil(items / limit).
$pager_total_items[$element] = count($data);
$pager_total[$element] = ceil($pager_total_items[$element] / $limit);
$pager_page_array[$element] = max(0, min((int)$pager_page_array[$element], ((int)$pager_total[$element]) - 1));
return array_slice($data, $pager_page_array[$element] * $limit, $limit, TRUE);
}
$output = pager_array_splice($yourarray, 5); // 5 is per page values
Consulte Paginación de datos que no son SQL para obtener más detalles.