Je travaille sur la génération d'un rapport dans episerver sous la forme d'une tâche planifiée. Ce rapport est essentiellement utilisé pour obtenir tout le contenu (types de page, blocs, médias) dans Episerver.
Il existe de bons packages de nugets pour les utilisations de contenu, mais pour une raison quelconque et pour avoir plus de contrôle et de plans pour le peaufiner et l'étendre davantage, je crée un package personnalisé plutôt que d'utiliser les packages tiers disponibles.
Le travail planifié est un peu similaire à
https://www.codeart.dk/blog/2018/12/content-report-generator/. L'article m'a beaucoup aidé à faire fonctionner mon rapport avec quelques modifications selon mes besoins.
La seule chose que j'ai du mal ici est d'obtenir l'URL de l'endroit où se trouve le bloc. Maintenant, c'est un point de débat ici. Je suis conscient que les blocs partagés dans la nature peuvent être utilisés n'importe où sur un site, mais le fait est qu'ils sont toujours utilisés dans des pages ou, en fait, dans d'autres blocs qui sont à leur tour utilisés sur une page. disons ici, ils font directement ou indirectement partie d'une page. Existe-t-il donc un moyen d'obtenir l'URL de la page d'un bloc, quel que soit le nombre de pages dans lesquelles il se trouve. Chaque forum que j'ai consulté, il y a toujours l'URL de la page de Pagedata ou mediadata & rien sur blockdata.Même les packages de nuget tiers que j'ai recherchés n'ont pas d'URL de page pour les types de blocs.
Je comprends qu'il n'y a rien de prêt ici. Existe-t-il un moyen d'y parvenir, c'est-à-dire d'obtenir l'URL de la page d'un type de bloc spécifique qui peut être une liste d'URL de page si le bloc est utilisé dans plusieurs pages.
Toute contribution est appréciée.
Solution du problème
Avec IContentSoftLinkRepository
vous pouvez trouver où les blocs sont utilisés. Vous pouvez vérifier si le SoftLink pointe vers une page avec SoftLink.SoftLinkType == PageLinkReference
puis utiliser IUrlResolver
pour obtenir l'URL de la page.
Aucun commentaire:
Enregistrer un commentaire