Alphapager advanced

Total 52 items.
#Last NameFirst NameBornDied
1MaYo-Yo1955/10/07
2MacFarlaneSeth1973/10/26
3MacKayGeorge1992/03/13
4MacneePatrick1922/02/062015/06/25
5Madonna1959/08/16
6MailerNorman1923/01/312007/11/10
7MalevitsjKazimir1878/02/231935/05/15
8MalkovichJohn1953/12/09
9MandelaNelson1918/07/182013/12/05
10MandelbrotBenoît1924/11/202010/10/14
11MannThomas1875/06/061955/08/12
12ManzarekRay1939/02/122013/05/20
13MarleyBob1945/02/061981/05/11
14MárquezGabriel García1927/03/062014/04/17
15MartinDon1931/05/182000/01/06
16MartinGeorge1926/01/032016/03/08
17MarxGroucho1895/10/021977/08/18
18MastroianniMarcello1923/09/281996/12/19
19Mata Hari1876/08/071917/10/15
20MatisseHenri1869/12/311954/11/03
21MayallRik1958/03/072014/06/09
22McCarthyCormac1933/07/202023/06/13
23McCartneyPaul1942/06/18
24McEwanIan1948/06/21
25McLarenMalcolm1946/01/222010/04/08
26MeierDieter1945/03/04
27MeijerIscha1943/02/141995/02/14
28MelvilleHerman1819/08/191891/09/28
29MendelejevDmitri1834/02/081907/02/02
30MendesSam1965/08/01
31MenuhinYehudi1916/04/221999/03/12
32MercuryFreddy1946/09/051991/11/24
33MillerArthur1915/10/172005/02/10
34MillerHenry1891/12/261980/06/17
35MitchellDavid1969/01/12
36MondriaanPiet1872/03/071944/02/01
37MonkThelonious1917/10/101982/02/17
38MonroeMarilyn1926/06/011962/08/05
39MoogRobert1934/05/232005/08/21
40MoonKeith1946/08/231978/09/07
41MooreHenry1898/07/301981/08/31
42MoorePatrick1923/03/042012/12/09
43MooreRoger1927/10/142017/05/23
44MoraviaAlberto1907/11/281990/09/26
45MorriconeEnnio1928/11/102020/07/06
46MorrisonJim1943/12/081971/07/03
47MorrisonVan1945/08/31
48MozartWolfgang Amadeus1756/01/271791/12/05
49MurakamiHaruki1949/01/12
50MurphyCillian1976/05/25
51MusilRobert1880/11/061942/04/15
52MuybridgeEadweard1830/04/091904/05/08

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.