Nombre d'enregistrements :

[PHP]
$sql1 = 'SELECT COUNT(id) as total FROM matable';
$request = $this->layer->selectOne($sql1);

Cette ligne de code effectue la requête dans votre base de donnée pour retourner le résultat du COUNT.
Il faut ensuite savoir combien on veux en afficher par page.
Voir la documentation sur la sélection unique dans une base de donnée

Construire une pagination

[PHP]
    $max = 10
    $pagination = new magixcjquery_pager_pagination();
    $pagination->pageOffset($max,$_GET['page']);
    $setConfig = array(
        'url'=>'http://www.mydomain/mypage/',
        'getPage'=> $_GET['page'],
        'pageName'=>'page'
    );
    $pagerdata = $pagination->setPagerData(
        $request['total'],$max,$setConfig
    );
    $block = '<div class="pagination">';
    $block .= $pagerdata;
    $block .= '</div>';
    print $block

Construire une pagination avec des options

Les possibilités de personnalisation sont très large avec setPagerData, que ce soit dans les class CSS ou les éléments à afficher.
Je vais créer une page dans la documentation à titre officiel pour détailler les éléments de paramétrage de la fonction.

[PHP]
$max = 10
    $pagination = new magixcjquery_pager_pagination();
    $pagination->pageOffset($max,$_GET['page']);
    $setConfig = array(
        'url'=>'http://www.mydomain/mypage/',
        'getPage'=> $_GET['page'],
        'seo'=>'dash',
        'pageName'=>'page',
        'pageNumber'=> true,
        'pageNumberLight'=>false,
        'arrow'=>true,
        'arrowthick'=>true
    );
    $setArrow = array('left'=>'Précédent','right'=>'Suivant');
    $css_param = array(
         'class_number'=>'',
         'class_arrow_left'=>'left-arrow',
         'class_arrow_right'=>'right-arrow'
     );
    $pagerdata = $pagination->setPagerData(
        $request['total'],$max,$setConfig,$setArrow,$css_param
    );
    $block = '<div class="pagination">';
    $block .= $pagerdata;
    $block .= '</div>';
    print $block

Note : setPagerData est disponible depuis magixcjquery 3.7