Pesquisa
Itens ativos
Posts mais lidos hoje
Login do usuário
Assine o RSS do Drupal-BR
Paginação Default
O meu problema é o seguinte, preciso customizar a forma como mostro a paginação no node default, eu preciso deixar ele mostrar somente proximo e anterior, não quero q mostre o numero das outras paginas nem o primeiro e o ultimo, estudei bastante e achei uma solução nem um pouco aconselhavel.
Usando os comandos:
<?php print_r(theme('pager_previous', 'Anterior', 12, 0)); ?>
<?php print_r(theme('pager_next', 'Próximo', 12, 0)); ?>
Eu consigo mostrar o anterior e o proximo, porem eu não consigo desabilitar para não aparecer a paginação default, a maneira que encontrei de fazer isso foi entrando no modulo node.module e comentando a linha 1746 ($output .= theme('pager', NULL, variable_get('default_nodes_main', 10));) que é a linha responsável por fazer a chamada da paginação default, como mecher no modulo não é uma coisa muito aconselhavel, venho a vocês perguntar primeiro se conhecem alguma configuração ou paremetrização que eu consiga desabilitar essa paginação default, caso não exista uma maneira de fazer isso, vou enviar essa sugestao para o drupal.org criar uma paremetrização para isso.
Fico no aguardo.
Valew
Roberson Faria
- Se logue ou se registre para poder enviar comentários
- 361 leituras




Roberson,
Toda função no Drupal que começa com theme_ pode ser personalizada. Quando uma função é chamada theme('nomedafuncao'...) é porque ele está chamando a versão "tematizada" daquela função. No caso, você quer personalizar a função pager.
Como você falou, mexer no módulo nem deve ser considerado uma opção, a não ser que seja um bug.
Para isso, cole o seguinte código no arquivo template.php do tema que você está utilizando:
global $pager_page_array, $pager_total;
// Calculate various markers within this pager piece:
// Middle is used to "center" pages around the current page.
$pager_middle = ceil($quantity / 2);
// current is the page we are currently paged to
$pager_current = $pager_page_array[$element] + 1;
// first is the first page listed by this pager piece (re quantity)
$pager_first = $pager_current - $pager_middle + 1;
// last is the last page listed by this pager piece (re quantity)
$pager_last = $pager_current + $quantity - $pager_middle;
// max is the maximum page number
$pager_max = $pager_total[$element];
// End of marker calculations.
// Prepare for generation loop.
$i = $pager_first;
if ($pager_last > $pager_max) {
// Adjust "center" if at end of query.
$i = $i + ($pager_max - $pager_last);
$pager_last = $pager_max;
}
if ($i <= 0) {
// Adjust "center" if at start of query.
$pager_last = $pager_last + (1 - $i);
$i = 1;
}
// End of generation loop preparation.
$li_first = theme('pager_first', (isset($tags[0]) ? $tags[0] : t('« first')), $limit, $element, $parameters);
$li_previous = theme('pager_previous', (isset($tags[1]) ? $tags[1] : t('‹ previous')), $limit, $element, 1, $parameters);
$li_next = theme('pager_next', (isset($tags[3]) ? $tags[3] : t('next ›')), $limit, $element, 1, $parameters);
$li_last = theme('pager_last', (isset($tags[4]) ? $tags[4] : t('last »')), $limit, $element, $parameters);
if ($pager_total[$element] > 1) {
if ($li_previous) {
$items[] = array(
'class' => 'pager-previous',
'data' => $li_previous,
);
}
// End generation.
if ($li_next) {
$items[] = array(
'class' => 'pager-next',
'data' => $li_next,
);
}
return theme('item_list', $items, NULL, 'ul', array('class' => 'pager'));
}
}
Essa função eu já alterei para ficar como você quer (apenas com próximo e anterior). Se precisar ver como ela é originalmente acesse http://api.drupal.org/api/function/theme_pager/6
Abraço,
--
Rafael Ferreira Silva
http://www.rafaelsilva.net
Valeu rafael era exatamente isso mesmo q eu precisava, funcionou certinho, estudei a função e consegui compreender o q ela faz, valew mais uma q apredi hehehe
Como eu posso chamar essa função dentro do meu arquivo node.tpl.php para paginar minhas páginas de noticias?
eu ainda nao entendi como funciona a páginação no drupal...alguem pode me ajudar?
---------------------
André Luiz de Noronha
Acho que vc está meio perdido luiz... não se implementa paginação neste arquivo node.tpl.php pois isso é template..
a paginação é feita quando vc programa um módulo específico.. veja aqui: http://blog.inuar.com/paginacao-no-drupal
Nei Rauni Santos
nrauni@yahoo.com.br
Nei Rauni Santos
nrauni@yahoo.com.br
certo...eu fiquei meio desesperado mesmo querendo chamar funções dentro de templates...
mas eu precisava muito de uma paginação como a dessa matéria: http://www.webmd.com/skin-beauty/features/your-12-most-embarrassing-beau...
---------------------
André Luiz de Noronha
Finalmente foi desenvolvido um módulo para a páginação que eu tanto queria...
http://drupalmodules.com/module/pagination-node
Valeu comunidade!!
---------------------
André Luiz de Noronha
---------------------
André Luiz de Noronha