3.5.4.3 Ajouter des liens de navigation

Nous concluons le pied de page avec les liens de navigation. À noter que ce qui va suivre peut également être programmé dans l'entête de votre site.

Comme on s'en doute, votre blog n'affiche pas toutes les publications d'un fil sur une seule page. VenC utilise un système de pagination que vous pouvez configurer ici. En conséquence, il faut que le visiteur de votre site puisse naviguer entre ces différentes pages.

Pour cela on uitilise trois motifs différents :

En reprenant l'exemple du chapitre précédent, nous aurions alors aux lignes 8 à 14 :

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
        <footer>
            .:GetBlogMetadataIfExists::loading_image::
                <img id="__VENC_LOADING__" src=".:GetRelativeRoot:./{value}" />
            :.
            .:IncludeFileIfExists::
                .:GetBlogMetadataIfNotNull::include_in_footer:.        
            :.
            .:GetPreviousPage::<a id="previous_link" href="{path}"></a>:.
            <ul id="navigation_pages_list">
                .:ForPages::5::<li class="page_list_item">
                    <a href="{path}">{page_number}</a>
                </li>:: . :.
            </ul>
            .:GetNextPage::<a id="next_link" href="{path}"></a>:.
        </footer>
    </body>
</html>

À noter que si la page courante est la première ou la dernière page, alors respectivement les motifs GetPreviousPage et GetNextPage seront ignorés et ne retourneront rien.

Notons également que si vous venez de commencer votre blog, il n'y aura probablement pas beaucoup de publications au début. Ces publications pourraient ne requérir qu'une seule page pour être toutes affichées, et il n'y aurait donc pas de liste de pages à afficher non plus.

Du coup tout ça c'est pas mal. Mais on peut encore faire mieux.

Le code ci-dessous actualise ce qui a été déjà fait pour illustrer ces remarques :

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
        <footer>
            .:GetBlogMetadataIfExists::loading_image::
                <img id="__VENC_LOADING__" src=".:GetRelativeRoot:./{value}" />
            :.
            .:IncludeFileIfExists::
                .:GetBlogMetadataIfNotNull::include_in_footer:.        
            :.
            .:GetPreviousPage::<a id="previous_link" href="{path}">.:IfInThread::←::{entry_title} ←:.</a>:.
            .:IfPages::
                <ul id="navigation_pages_list">
                    .:ForPages::5::<li class="page_list_item">
                        <a href="{path}">{page_number}</a>
                    </li>:: . :.
                </ul>
            :.
            .:GetNextPage::<a id="next_link" href="{path}">.:IfInThread::→::→ {entry_title}:.</a>:.
        </footer>
    </body>
</html>