Alphapager advanced

Total 34 items.
#Last NameFirst NameBornDied
1TzaraTristan1896/04/041963/12/24
2TwainMark1835/11/301910/04/10
3TurnerTina1939/11/262023/05/24
4TuringAlan1912/06/231954/06/07
5TucholskyKurt1890/01/091935/12/21
6TrumboDalton1905/12/091976/09/10
7TrintignantJean-Louis1930/12/112022/06/17
8TrierLars von1956/04/30
9TravenB.1892/05/031969/03/27
10TownshendPete1945/05/19
11ToussaintAllen1938/01/142015/11/10
12TournierMichel1924/12/192016/01/18
13Toulouse-LautrecHenri de1864/11/241901/09/09
14ToporRoland1938/01/071997/04/16
15TooleJohn Kennedy1937/12/171969/03/26
16TolstojA.N.1882/12/291945/02/23
17TinguelyJean1925/05/221991/08/30
18ThunbergGreta2003/01/03
19ThompsonHunter S.1939/07/182005/02/20
20ThomasDylan1914/10/271953/11/09
21ThielemansToots1922/04/292016/08/22
22ThereminLéon1896/08/151993/11/03
23ThemersonStefan1910/01/251988/09/06
24TeslaNikola1856/07/101943/01/07
25TerayamaShuji1935/12/101983/05/04
26TellerEdward1908/01/152003/09/09
27TaylorCecil1929/03/252018/04/05
28TaylorElizabeth1932/02/272011/03/23
29TatumArt1909/10/131956/11/05
30TatlinVladimir1885/12/281953/05/31
31TarkowskiAndrej1932/04/041986/12/28
32TarantinoQuentin1963/03/27
33TappertHorst1923/05/262008/12/13
34TagoreRabindranath1861/05/061941/08/07

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.