Alphapager advanced

Total 52 items.
#Last NameFirst NameBornDied
1SacharovAndrej1921/05/211989/12/14
2SacksOliver1933/07/092015/08/30
3SaganCarl1934/11/091996/12/20
4SaganFrançoise1935/06/212004/09/24
5Saint PhalleNiki de1930/10/292002/05/21
6SalterJames1925/06/102015/06/19
7SantanaCarlos1947/07/20
8SartreJean-Paul1905/06/211980/04/15
9SatieErik1866/05/171925/07/01
10SchieleEgon1890/06/121918/10/31
11SchneiderFlorian1947/04/072020/04/21
12SchneiderMaria1952/03/272011/02/03
13SchneiderRomy1938/09/231982/05/29
14SchulzCharles M.1922/11/262000/02/12
15SchwarzeneggerArnold1947/07/30
16SchwittersKurt1887/06/201948/01/08
17SchygullaHanna1943/12/25
18ScolaEttore1931/05/102016/01/19
19ScorceseMartin1942/11/17
20ScottRidley1937/11/30
21SeegerPete1919/05/032014/01/27
22ShakespeareWilliam1564/04/131616/04/23
23ShteyngartGary1972/07/05
24SimenonGeorges1903/02/131989/09/04
25SimonPaul1941/10/13
26SimoneNina1933/02/212003/04/20
27SinatraFrank1915/12/121998/05/14
28SlickGrace1939/10/30
29SmithPatti1946/12/30
30SnowdenEdward1983/06/21
31SolondzTodd1959/10/15
32SpaceyKevin1959/07/26
33SpenceJoseph1910/08/031984/03/18
34SpielbergSteven1946/12/18
35SpinozaBaruch1632/11/241677/02/21
36SpringfieldDusty1939/04/161999/03/02
37SpringsteenBruce1949/09/23
38StarrRingo1940/07/07
39SteinGertrude1874/02/031946/07/27
40StephensonNeal1959/10/31
41StevensonRobert Louis1850/11/131894/12/03
42StewartPatrick1940/07/13
43Sting1951/10/02
44StipeMichael1960/01/04
45StoneMatt1971/05/27
46StoneOliver1946/09/15
47StrawinskyIgor1882/06/171971/04/06
48StroustrupBjarne1950/12/30
49SutherlandDonald1935/07/17
50SutherlandKiefer1966/12/21
51SydowMax von1929/04/102020/03/08
52SzabóIstván1938/02/18

Yii2 Alphapager lets you do alphabetic paging in the Yii framework 2.0. On this page it is shown with some special settings.

The relevant code involved is something like this:

<?php

use sjaakp\alphapager\ActiveDataProvider;
use sjaakp\alphapager\AlphaPager;

$query = Person::find()->orderBy('last_name, first_name');

$dataProvider = new ActiveDataProvider([
    'query' => $query,
    'alphaAttribute' => 'last_name',
    'alphaDigits' => 'compact',                // one button for digits '0' - '9'
    'alphaPages' => [
        'P' => [
               'label' => 'pq',                // label button 'P' with 'pq'
               'pattern' => [ '[PpQq]' ],      // regular expression: include words starting with 'Q' under 'P'
           ],
        'Q' => false,                          // suppress page 'Q'
        'Z' => [
               'label' => 'x-z',               // label button 'Z' with 'x-z'
               'pattern' => [ '[X-Zx-z]' ],    // regular expression: include words starting with 'X' or 'Y' under 'Z'
           ],
        'X' => false,                          // suppress page 'X'
        'Y' => false,                          // suppress page 'Y'
    ],
    'pagination' => false                      // switch off normal pagination
]);
?>

<?= AlphaPager::widget([
    'dataProvider' => $dataProvider,
    'preButtons' => [],                       // no 'all' button
    'lowerCase' => true                       // buttons in lower case
]) ?>

<?= GridView::widget([
    'dataProvider' => $dataProvider,
    'columns' => [
        ['class' => 'yii\grid\SerialColumn'],

        'last_name:ntext',
        'first_name:ntext',
        'born:date',
        'died:date',
    ],
]); ?>

A basic example is here.