package
0.0.0-20180225195639-b173b6ed556d
Repository: https://github.com/alexandergrom/componenta.git
Documentation: pkg.go.dev

# README

Componenta / Page

Набросок пакета расчета пагинации

package main

import (
    "github.com/AlexanderGrom/componenta/page"
)

func main() {
    p := page.New(&page.Param{
        TotalItem:   200,   // Общее кол-во элементов
        ViewItem:    10,    // Кол-во элементов которые нужно показать на одной странице
        ViewPage:    5,     // Кол-во показываемых страниц к пагинации
        CurrentPage: 1,     // Номер текущей страницы
        CurrentURI:  "/test/?one=1&two=2", // Текущий URI страницы
    }).Path("page") // page это префикс сигмента с номером страницы /test/page5/?one=1&two=2
    
    fmt.Printf("%v\n", p)
    
    /*
    //Path("page") вернет структуру *page.Result c данными о текущей странице
    
    type Result struct {
        List       []map[string]string // элементы пагинации number, url.
        Start      int // число записей, которые нужно пропустить при выборке.
        Step       int // число записей, которые нужно выбрать для текущей странице.
        Total      int // общее кол-во доступных страниц.
        Prev       int // номер предыдущей страницы.
        Current    int // номер текущей страницы.
        Next       int // номер следующей страницы.
        Exists     bool // если Param.CurrentPage это положительное число.
        PrevURI    string // uri предыдущей страницы.
        CurrentURI string // uri текущей страницы.
        NextURI    string // uri следующей страницы.
        FirstURI   string // uri первой страницы.
        LastURI    string // uri последней страницы.
    }
    */
    
    // Так же можно размещать номер страницы в разделе Query
    // p := page.New(&Param{/*...*/}).Query("page") // page это параметр со значеним номера страницы /test?one=1&two=2&page=5
}