Русскоязычный форум, посвященный фреймворку Kohana

Все о фреймворке Kohana. Обсуждение уроков, документации.
Текущее время: 13 ноя 2018, 10:38

Часовой пояс: UTC + 4 часа [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 8 ] 
Автор Сообщение
 Заголовок сообщения: Альтернативный вид пагинатора
СообщениеДобавлено: 07 фев 2013, 14:22 
Не в сети
Новичок
Аватара пользователя

Зарегистрирован: 02 окт 2012, 21:09
Сообщения: 29
Стандартные виды пагинатора мне не подходили, так что сделал свой:
Пример:
Первая Назад ... 8 9 10 11 12 13 ... Вперед Последняя
Код вида simple.php
Код:
<?php
// Максимальное количество отображаемых номеров страниц пагинатора
$pages_limit = 6;
// Последний номер страницы пагинатора
$to_page = max($current_page, min($total_pages, $pages_limit));
if ($to_page == $current_page && $total_pages > $to_page) {
    $to_page++;
}
// Первый номер страницы пагинатора
$from_page = max($to_page - $pages_limit + 1, 1);
// Предшествующий номер страницы  пагинатора
$before_page = $from_page > 1 ? $from_page - 1 : FALSE;
// Последующий номер страницы  пагинатора
$after_page = $total_pages > $to_page ? $to_page + 1 : FALSE;
?>
<!--START PAGINATION-->
<p class="pagination">

    <?php if ($first_page !== FALSE): ?>
        <a href="<?php echo HTML::chars($page->url($first_page)) ?>" rel="first"><?php echo __('Первая') ?></a>
    <?php else: ?>
        <?php echo __('Первая') ?>
    <?php endif ?>

    <?php if ($previous_page !== FALSE): ?>
        <a href="<?php echo HTML::chars($page->url($previous_page)) ?>" rel="prev"><?php echo __('Назад') ?></a>
    <?php else: ?>
        <?php echo __('Назад') ?>
    <?php endif ?>

    <?php if ($before_page !== FALSE): ?>
        <a href="<?php echo HTML::chars($page->url($before_page)) ?>" rel="before"><?php echo '...' ?></a>
    <?php endif ?>

    <?php foreach (range($from_page, $to_page) as $number): ?>

        <?php if ($number == $current_page): ?>
            <strong><?php echo $number ?></strong>
        <?php else: ?>
            <a href="<?php echo HTML::chars($page->url($number)) ?>"><?php echo $number ?></a>
        <?php endif ?>

    <?php endforeach ?>

    <?php if ($after_page !== FALSE): ?>
        <a href="<?php echo HTML::chars($page->url($after_page)) ?>" rel="after"><?php echo '...' ?></a>
    <?php endif ?>       

    <?php if ($next_page !== FALSE): ?>
        <a href="<?php echo HTML::chars($page->url($next_page)) ?>" rel="next"><?php echo __('Вперед') ?></a>
    <?php else: ?>
        <?php echo __('Вперед') ?>
    <?php endif ?>

    <?php if ($last_page !== FALSE): ?>
        <a href="<?php echo HTML::chars($page->url($last_page)) ?>" rel="last"><?php echo __('Последняя') ?></a>
    <?php else: ?>
        <?php echo __('Последняя') ?>
    <?php endif ?>

</p>
<!--END PAGINATION-->


Копируем в папку modules/pagination/view/
Устанавливаем в конфиге application/config/pagination.php:
Код:
<?php

defined('SYSPATH') or die('No direct script access.');

return array(
    // Application defaults
    'default' => array(
        'current_page' => array('source' => 'route', 'key' => 'page'), // source: "query_string" or "route"
        'total_items' => 0,
        'items_per_page' => 50,
        'view' => 'pagination/simple',
        'auto_hide' => TRUE,
        'first_page_in_url' => FALSE,
    ),
);


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Альтернативный вид пагинатора
СообщениеДобавлено: 09 фев 2013, 00:43 
Не в сети
Бывалый

Зарегистрирован: 09 авг 2012, 13:17
Сообщения: 43
спасибо за пример ,пригодится.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Альтернативный вид пагинатора
СообщениеДобавлено: 09 фев 2013, 01:20 
Не в сети
Новичок
Аватара пользователя

Зарегистрирован: 02 окт 2012, 21:09
Сообщения: 29
Как по мне, он самый удобный.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Альтернативный вид пагинатора
СообщениеДобавлено: 09 фев 2013, 20:58 
Не в сети
Администратор
Аватара пользователя

Зарегистрирован: 24 июл 2012, 18:00
Сообщения: 701
Откуда: Murom, Russia
а зачем тогда
Код:
 <?php echo __('Последняя') ?>

пишите проще
Код:
Последняя

если не хотите как положено
Код:
 <?php echo __('Last') ?>


смысл какой?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Альтернативный вид пагинатора
СообщениеДобавлено: 09 фев 2013, 23:26 
Не в сети
Бывалый
Аватара пользователя

Зарегистрирован: 05 июн 2012, 03:08
Сообщения: 213
> смысл какой?
Ну если интерфейс изначально русский, то те, кто будут переводить на английский создадут en.php и туда напишут 'Последняя' => 'Last'

_________________
http://de-en.info (работает на Kohana 3.3)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Альтернативный вид пагинатора
СообщениеДобавлено: 10 фев 2013, 06:14 
Не в сети
Администратор
Аватара пользователя

Зарегистрирован: 24 июл 2012, 18:00
Сообщения: 701
Откуда: Murom, Russia
Ага, интересно и много будет прецедентов? :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Альтернативный вид пагинатора
СообщениеДобавлено: 10 фев 2013, 23:11 
Не в сети
Новичок
Аватара пользователя

Зарегистрирован: 02 окт 2012, 21:09
Сообщения: 29
Захотел - написал, кто захочет тот подправит.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Альтернативный вид пагинатора
СообщениеДобавлено: 12 фев 2013, 18:30 
Не в сети
Администратор
Аватара пользователя

Зарегистрирован: 24 июл 2012, 18:00
Сообщения: 701
Откуда: Murom, Russia
escalade писал(а):
Захотел - написал, кто захочет тот подправит.


Стало лень - написал как смог, кто захочет тот подправит.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 8 ] 

Часовой пояс: UTC + 4 часа [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Все о фреймворке Kohana  | 
Powered by phpBB® Forum Software © phpBB Group