seb a dit :
Est-ce que vous fournissez des templates de "groupes" afin d'arriver aisément à une sémantique URI valable ?
Le module s'installe avec une rêgle de réécriture par défaut pour le portail, similaire à celle utilisée dans l'exemple ci dessus. La doc reprend les groupes principaux disponibles dans l'extension standard.
Il est possible d'éditer cette rêgle et de définir des rêgles par page et par module. Pour ces derniers, les providers déclarés dans le fichier de config peuvent proposer une rêgle par défaut; on peut charger les rêgles par défaut des providers dont les modules sont installés sur l'instance.
seb a dit :
Dans le même ordre d'idée, un site peut avoir besoin de sa propre logique d'URL, non pas parce que cela améliore son "PageRank", mais parce que cela facilite directement l'utilisation du site par ses visiteurs ;
Le module est conçu pour répondre à ces deux attentes, sans a priori ni distinction.
seb a dit :
dans ce cas, est-ce que des objets liés à la page ou à tout autre objet déclaré dans le système de gestion de providers interne à votre module peut être accèdé et introduit dans l'URL via un "groupe" ? Par exemple :
J'ai un site sur lequel je créé une page par jour. Logiquement, et puisque c'est le principe de mon site, je souhaiterai avoir une URL de type : http://MonDomaine/DayByDay/2008-09-19.aspx
En utilisant l'API, il est possible de rajouter des extensions pour l'insertion de n'importe quel contenu.
L'extension peut être généraliste ou spécifiquement liée à un module; elle déclare le nom des groupes qu'elle prend en charge, et pour chacun d'eux les paramètres http dont elle a besoin, leur caractère obligatoire/facultatif et le fait qu'elle les "consomme" de façon exclusive ou non. Si un paramètre http n'est pas présent ou a déjà été consommé de façon exculsive par un autre groupe en amont, le présent groupe est ignoré (voir "QueryString" dans l'exemple ci-dessus)
Au moment de la réécriture, les paramètres demandés lui sont fournis, elle est ensuite seule responsable de ce qu'elle en fait. Une fonction paramétrable d'échappement des caractères invalides et de restriction en taille est néanmoins fournie pour plus de confort.
Pour reprendre la question, il s'agit donc pour l'instant de créer une extension réalisant l'extraction désirée.
seb a dit :
Mais d'où serait extrait cette date ? La date de création de page ? La date de publication de l'article NewsArticle ? Si cela est possible, quel est l'univers accessible ?
L'univers accessible est celui fournit par le contexte http et les paramètres déclarés par l'extension, qui elle seule se charge de les utiliser pour récupérer les objets dont elle a besoin.
S'il s'agit d'extraire la donnée du contenu d'un module, alors l'extension devrait être associée à ce module et déclarer les paramètres dont elle a besoin (ArticleId pour la date de publication de l'article)
seb a dit :
La SEO et son optimisation sont de larges domaines ; est-ce que vous avez sélectionné l'amélioration de l'URL car c'est l'aspect SEO qui fait le plus défaut à DotNetNuke, ou est-ce que vous avez pour ambition de fournir peu à peu des mises à jour globales permettant de traiter au fur et à mesure d'autres aspects de l'optimisation pour les moteurs de recherche ?
Le module s'appelle Friendlier Url Provider, comme son nom l'indique, il vise uniquement à traiter ce point.
En revanche, le module LuceneSearch dont nous n'allons pas tarder à publier une nouvelle version complètement remaniée apportera une brique plus fondamentale pour la mise en oeuvre SEO sous DNN.
On pourra par exemple imaginer grâce à la combinaison des deux la conception de TagClouds très pertinents, ou de Google SiteMaps complets.
L'intégration de ModuleLocalizer dont tu connais la teneur complêterait avantageusement le tableau, même si ce dernier est malheureusement resté pour l'instant dans nos cartons, faute d'application immédiate.
L'étape ultime sera l'intégration SemWeb + ModuleWorkflows pour une prise en charge full web sémantic fondée sur une structure Owl/Rdf. La encore, tu connais le panorama d'ensemble.