page

package
v0.0.0-...-b173b6e Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 25, 2018 License: MIT Imports: 6 Imported by: 0

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
}

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Page

type Page struct {
	// contains filtered or unexported fields
}

Page

func New

func New(param *Param) *Page

Конструктор

p := New(&Param{
       TotalItem:   200,
       ViewItem:    10,
       ViewPage:    5,
       CurrentPage: 1,
       CurrentURI:  "/test/best/?one=1&two=2",
   }).Path("page")

func (*Page) Path

func (self *Page) Path(name string) *Result

func (*Page) Query

func (self *Page) Query(name string) *Result

type Param

type Param struct {
	TotalItem   int
	ViewItem    int
	ViewPage    int
	CurrentPage int
	CurrentURI  string
	LimitPage   int
}

Параметры пагинации

type Result

type Result struct {
	List       []map[string]string
	Start      int
	Step       int
	Total      int
	Prev       int
	Current    int
	Next       int
	Exists     bool
	PrevURI    string
	CurrentURI string
	NextURI    string
	FirstURI   string
	LastURI    string
}

Результат

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL