Alphapager advanced

Total 53 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
21MayallJohn1933/11/292024/07/22
22MayallRik1958/03/072014/06/09
23McCarthyCormac1933/07/202023/06/13
24McCartneyPaul1942/06/18
25McEwanIan1948/06/21
26McLarenMalcolm1946/01/222010/04/08
27MeierDieter1945/03/04
28MeijerIscha1943/02/141995/02/14
29MelvilleHerman1819/08/191891/09/28
30MendelejevDmitri1834/02/081907/02/02
31MendesSam1965/08/01
32MenuhinYehudi1916/04/221999/03/12
33MercuryFreddy1946/09/051991/11/24
34MillerArthur1915/10/172005/02/10
35MillerHenry1891/12/261980/06/17
36MitchellDavid1969/01/12
37MondriaanPiet1872/03/071944/02/01
38MonkThelonious1917/10/101982/02/17
39MonroeMarilyn1926/06/011962/08/05
40MoogRobert1934/05/232005/08/21
41MoonKeith1946/08/231978/09/07
42MooreHenry1898/07/301981/08/31
43MoorePatrick1923/03/042012/12/09
44MooreRoger1927/10/142017/05/23
45MoraviaAlberto1907/11/281990/09/26
46MorriconeEnnio1928/11/102020/07/06
47MorrisonJim1943/12/081971/07/03
48MorrisonVan1945/08/31
49MozartWolfgang Amadeus1756/01/271791/12/05
50MurakamiHaruki1949/01/12
51MurphyCillian1976/05/25
52MusilRobert1880/11/061942/04/15
53MuybridgeEadweard1830/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.