• Cadastro
  • Fóruns
  • Manual
  • Projetos
  • Seminário
  • Tradução
  • Tutoriais
Início

Treinamento Drupal 31 de Janeiro em São Paulo

Pesquisa

Google

Itens ativos

  • Aplicação que grava informações em um banco de dados
  • Upload de imagens em massa
  • Treinamento Drupal
  • Foto do usuário no topo do blog
  • Tamanho do backup do banco de dados
  • Site fora do ar Personalizado
  • É possível fazer isso com o Drupal?
  • Erro de e-mails no Drupal Brasil
  • Formulario personalizado
  • Views e rss
mais

Posts mais lidos hoje

  • ajuda instalar
  • Comunix
  • Tutorial de instalação - Drupal 6.0
  • Videos
  • Galeria de imagens
  • Drupal em português do Brasil (instalação)
  • Download do Drupal Corrompido
  • Foto do usuário no topo do blog
  • Site Institucional TEKNISA
  • Multi Fórum

Login do usuário

  • Criar uma conta
  • Recuperar senha

Parceiros

Assine o RSS do Drupal-BR

RSS dos itens mais ativos

RSS do conteúdo

RSS dos comentários

Início » Fórum » Suporte » Módulos

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

‹ Paginação Ubercart ›
Enviado por roberson.faria em 26/08/2008 - 14:51
  • Módulos
  • 6.x
  • Se logue ou se registre para poder enviar comentários
  • 361 leituras
Em 27/08/2008 - 15:36 rafael disse:

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:

function phptemplate_pager($tags = array(), $limit = 10, $element = 0, $parameters = array(), $quantity = 9) {
  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

  • Se logue ou se registre para poder enviar comentários
Em 27/08/2008 - 18:38 roberson.faria disse:

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

  • Se logue ou se registre para poder enviar comentários
Em 07/10/2008 - 16:49 a.luiz.n disse:

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

  • Se logue ou se registre para poder enviar comentários
Em 08/10/2008 - 03:34 nrauni disse:

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

  • Se logue ou se registre para poder enviar comentários
Em 08/10/2008 - 15:36 a.luiz.n disse:

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

  • Se logue ou se registre para poder enviar comentários
Em 22/10/2008 - 14:49 a.luiz.n disse:

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

  • Se logue ou se registre para poder enviar comentários
Designimage

Este site é feito, orgulhosamente, com Drupal.