Klasa AbstractPaginator

namespace Kei\Webas\Dedicated

Abstrakcyjna klasa rozszerzająca możliwości wszystkich obiektów o nazwie Index. Wykorzystywana w obiekcie InfoTable.


Dostępne metody klasy

paginate()
return InfoTable

Bezparametrowana metoda wykonująca, filtrująca oraz grupująca wyniki zapytania w obiekcie InfoTable - zwraca ten obiekt

setPaginator($p1,$p2)
return $this

Ustawia aktualny stan paginacji prezentowanych wyników w obiekcie InfoTable. Zwraca obiekt klasy dziedziczącej po tej klasie abstrakcyjnej.

setSearch($p1,$p2)
return $this

Metoda pozwalająca na sprecyzowanie słów kluczowych dla wyszukiwania w tabeli danych. Wyszukiwanie wykonywane jest po stronie panelu Webas. Zwraca obiekt klasy dziedziczącej po tej klasie abstrakcyjnej.

countAllResults()
return int

Bezparametrowana metoda zwracająca liczbę wszystkich znalezionych wierszy w tabeli obiektu (bez zastosowania filtrowania) InfoTable. Można wykonać zamiast metody paginate().

getCurrentPage()
return int

Bezparametrowana metoda zwracająca aktualny numer strony ustawiony za pomocą metody setPaginator().

getRowsOnPage()
return int

Bezparametrowana metoda zwracająca aktualną liczbę wyników na stronę. Wartość ustawiana za pomocą metody setPaginator()


Przykłady wykorzystania metod tej klasy w innych instancjach klas dziedziczących

W poniższym przykładzie pominięto autoryzację do serwera. Obiekt Client znajduje się w zmiennej $webas. Więcej o autoryzacji przeczytasz w dziale jak rozpocząć ?

Nie zawijaj wierszy<?php
// Autoryzacja...

// Filtrowanie wyników dla tabeli kont FTP. Zasadza działania jest taka sama
// jak gdyby w panelu Webas, w wyszukiwarce wprowadzono ciąg "added" (bez cudzysłowia)
// a z pola selectbox po prawej wybrano opcję "bez limitów" i kliknięto przycisk "szukaj"
// (wykonanie metody "paginate")
$tb1 = $webas->Ftp()->Index()->setSearch("added", ['profile' => "bez-limitow"])->paginate();
\Kei\Library\Out::pd($tb1);

// Resetujemy pole input przez co wyszukujemy w całej tabeli
$tb2 = $webas->DnsRecord()->Index()->setSearch("")->paginate();
\Kei\Library\Out::pd($tb2);

// Możemy też wykorzystywać metody statyczne ::buildSearchParams() charakterystyczne
// dla każdej klasy Index osobno aby przyspieszyć filtrowanie w szczególności jeśli
// nie wiemy jakie pola filtrujące obsługuje strona w panelu Webas.
$tb3 = $webas->EmailAccount()->Index()->setSearch("", \Kei\Webas\Dedicated\EmailAccount\Index::buildSearchParams("master-test.v12345.tld.pl"))->paginate();
\Kei\Library\Out::pd($tb3);

// Możemy też wykonać metodę setSearch oraz tuż za nią (lub przed nią - kolejność nie
// ma znaczenia) metodę setPaginator. W tym momencie uzyskamy wyniki z drugiej strony
// przy wyświetlaniu 5 wyników na stronie oraz przy opcjach szukania pomiędzy datami
// od 2016-01-01 do 2016-03-28
$tb4 = $webas->StatFtpSummary()->Index()->
    setSearch("", \Kei\Webas\Dedicated\StatFtpSummary\Index::buildSearchParams("2016-01-01", "2016-03-28"))->
    setPaginator(2, 5)->
    paginate();
\Kei\Library\Out::pd($tb4);

// UWAGA! ZAMIAST METODY paginate MOŻEMY POSŁUŻYĆ SIĘ METODAMI WYLICZENIOWYMI
// countAllResults, getCurrentPage, getRowsOnPage

// Ile mamy kont FTP spełniających podane kryteria (o ile są zdefiniowane) ?
\Kei\Library\Out::pd($webas->Ftp()->Index()->countAllResults());

\Kei\Library\Out::pd($webas->Ftp()->Index()->setSearch("adm")->countAllResults());

Klasa AbstractPaginator · NiceAPI dla PHP 5.6