Bienvenue à Blogs CodeS-SourceS Identification | Inscription | Aide

Julien Chable

He blogs, you blog, I blog ...

Archives

[SharePoint 2010] Développer un site Internet SharePoint 2010 de A à Z ou presque !

La plupart des systèmes de WCM disponibles gratuitement sur Internet suffisent bien souvent à créer un site ou un blog. Mais entre nous, un site ‘Propulsé par SharePoint 2010’ est quand même beaucoup plus flexible, extensible et puissant que n’importe laquelle des autres plateformes de gestion de contenu (fonctionnalités par défaut). Bref on aime SharePoint alors il n’y a aucune raison de ne pas faire son site Internet (‘facing site’) avec !

Je ne vais pas vous présenter toutes les étapes de création d’un facing site SharePoint, de nombreux bloggeurs ont déjà d’excellents contenus. Je vais simplement tenter de vous donner quelques unes des astuces que j’ai glané il y a quelques temps lorsque je travaillais sur mon premier  ‘Facing Site’ avec SPS 2010.

Le livre de Randy Drisgill (sans oublier les autres auteurs de qualité), annoncé pour cette fin d'année/début d’année 2011, devrait apporter une bonne synthèse de tout cela.

Première étape : activer l’accès anonyme sur vos sites

Vous trouverez sur Internet beaucoup de liens traitant du sujet. En voici un au hasard.

Bien débuter avec sa Master Page

La première étape est bien évidemment de créer le “look and feel” global avec la master page. Au programme donc, HTML, ASP.NET, CSS et JS/JQuery. Pour cela, je ne peux que vous conseiller de démarrer avec les Starter Master Page (anciennement connu sous le nom de minimal master page sous SP2007) : http://startermasterpages.codeplex.com/

Concernant les pages layout, planifiez bien et couchez vos gabarits sur papier avant de les réaliser (on ne met pas la charrue avant les boeufs) car à coup sûr vous aurez besoin de plusieurs gabarits de page :
- Accueil du site
- Page d’article (plusieurs variantes bien souvent)
- Page spécifique (contact, à propos de, etc)

Une solution, surtout avec SharePoint 2010 et ses zones de texte riche qui permettent d’insérer des webparts, est de trouver une disposition générale qui permet de répondre à un maximum de cas sans avoir à créer une multitude de pages layout systématiquement.

Un autre point pour un site Internet est de penser à placer, si besoin, des content place holder supplémentaire dans la master page qui pourront ensuite être utilisés dans le gabarit de page par une zone de webparts par exemple. Cela permet de créer des pages avec des zones contextuelles en fonction de la page affichée (possibilité de travailler avec la query string) dans la zone normalement dévolue à la master page. Par exemple, insérer dans la zone réservée au menu (à gauche ou à droite de votre page) une webpart avec les partenariats ou certifications en cours sur la page de produit ‘mobilier de bureau’ et une autre webpart avec ceux et celles sur la page de produit ‘matériel de sécurité’. La webpart peut être différente d’une page à une autre, voire absente, et “intégrer” dans la master page.

Pour cette tâche, les outils Developer Tools ou FireBug seront vos alliés les plus précieux !

Cacher le ruban et le champ de connexion

Pour un utilisateur anonyme, avoir un ruban vide de tout élément (sauf de l’icône ‘Parcourir’) n’est pas très ergonomique et utile (surtout si vous replacez un contrôle de fil d’Ariane comme celui de 2007). L’idée est donc de le cacher pour les utilisateurs anonymes, mais uniquement pour cette population ci et non pour les personnes qui auront à créer et éditer le contenu !

Pour cela, je laisse Nicolas vous donner quelques explications sur l’aspect technique de la manipulation. Pour ma part, je reste attaché à l’utilisation du delegate control pour le ruban à plus d’un titre :
- On ne touche que peu à la master page initialement créée (le codeur ne touche pas au travail du designer),
- Si vous avez besoin de changer le comportement de l’affichage, vous bénéficiez du mécanisme de ‘mise à jour’ du delegate control. De plus, le codeur peut s’en donner à coeur joie sans impacter le travail du designer. Par exemple, vous souhaitez affiner les conditions d’affichage du ruban dynamiquement en fonction de plusieurs critères, des droits géré par un autre système (AD LDS, etc) ou encore en fonction de l’emplacement de la page. Même si cela ne remplace bien évidemment pas une gestion de la sécurité ou une personnalisation des fournisseurs de sécurité, nous parlons bien d’esthétique.

Pour les utilisateur anonymes, le champ de connexion (contrôle qui affiche votre nom et le menu utilisateur lorsque vous êtes authentifié) peut ne pas avoir de signification pour un site public non Extranet. Utilisez les contrôles SPSecurityTrimmedControl ou le couple LoginView/LoggedInTemplateTemplate pour gérer son affichage.

Recherche

Par défaut si un utilisateur anonyme souhaite effectuer une recherche, il tombera sur votre page d’authentification (FBA) ou la boite de dialogue d’authentification (Windows). Pas vraiment sympathique comme situation …

Cette situation a déjà été traité avec WSS 3 (http://sharingpoint.blogspot.com/2007/05/anonymous-search-results-in-wss-v3.html).

Cela provient du fait que la page de résultats de recherche standard hérité d’une page qui nécessite une authentification (classe LayoutsPageBase). Voici la solution que j’ai mise en oeuvre pour palier à cette problématique :

  1. Copiez (ne modifiez pas l’original) la page de résultat OSSSearchResults.aspx situé dans le répertoire LAYOUTS du ‘14’
  2. Supprimez la propriété Inherits=”…” de la directive @Page
  3. Spécifiez cette page de résultat dans Paramètres de collection de sites > Paramètre de recherche > Page des résultats de recherche de la collection de sites
  4. Testez avec une nouvelle recherche, à partir de maintenant vos utilisateurs anonymes ne seront plus systématiquement assailli par l’authentification.

Une autre solution est d’utiliser une page que vous avez déjà créé et d’y placer les webparts de recherche nécessaire (n’oubliez pas d’activer la fonctionnalité pour afficher les webparts de recherche).

Pour créer une master page propre à votre page de recherche issue de la page maître globale, Randy Drisgill nous donne quelques conseils. Quand cela est possible, je préfère personnellement utiliser un centre de recherche pour gérer la recherche. Néanmoins, il vous faudra dupliquer la navigation globale entre autre ou utiliser une astuce décrite dans le récent post de Renaud traitant du sujet. Comme l’explique notre TheMit national, nous avons plusieurs possibilités offertes à nous pour gérer la recherche. Je vous laisse consulter son article.

Vérifiez que les résultats soient bien les mêmes entre ceux de l’administrateur et ceux pour un utilisateur anonyme. En cas de différence anormale, vérifiez le compte utilisés pour le crawling de votre recherche et vérifiez que vous avez correctement configuré la disponibilité des contenus.

Divers

Quelquefois, un développeur fini son travail à des horaires tardives dans la soirée. En fin de semaine, la fatigue arrive et notre raisonnement n’est plus des plus vifs, c’est pourquoi voici quelques éléments sur lesquels je suis restés quelques minutes à buter :

- Lorsque vous créez un sous-site de publication, celui-ci n’apparaît pas automatiquement dans la barre de navigation globale. Cela provient du fait que la page d’accueil du sous-site n’est pas approuvée par défaut. Approuvez la page d’accueil (ainsi que toutes les pages que vous souhaitez publier bien évidemment !) et le lien vers le sous-site fera son apparition dans la barre de navigation globale.

- Supprimez les sites ‘MySite’

- Supprimez les liste par défaut inutile et les vues publiques par défaut

- Une TOP feature pour votre site est la détection des navigateurs non supportés (par exemple IE 6 !). Un script disponible sur Google code et expliquer par Randy Drisgill devrait vous aider à mettre cela en oeuvre rapidement. Ce sera toujours mieux que la boîte de dialogue du contrôle <WarnOnUnsupportedBrowsers>.

- Le truc qui fait la différence, et que de nombreux sites en production ne le font pas systématiquement, est de supprimer l’avertissement de contrôle Active X.

Et j’en passe.

Mobile

Pourquoi ne pas faire bénéficier vos lecteurs ou clients de l’accès mobile à votre site ? Randy nous explique comment faire.

Voilà a peu près tout ce que j’ai eu besoin de réaliser pour monter un site SharePoint sur Internet (mais toujours pas en ligne, vous savez, il manque le plus important : le contenu ! Quand les développeurs font leur travail, les autres regardent …). Cela n’est pas forcément exhaustif …

Ce post vous a plu ? Ajoutez le dans vos favoris pour ne pas perdre de temps à le retrouver le jour où vous en aurez besoin :
Posted: jeudi 4 novembre 2010 23:28 par neodante
Classé sous :

Commentaires

Jean-Baptiste Pressac a dit :

Bonjour,

Merci pour cette synthèse fort utile. J'aurais une question cependant au sujet de l'architecture de l'information : Comment est-il possible d'organiser les pages par "rubriques" comme sur un site classique (Actualités, A propos, Présentation de l'entreprise ...). Faut-il créer des pages et les organiser par taxonomie comme dans Drupal, ou peut-on les classer dans des "rubriques" (comme dans SPIP, si vous connaissez). On m'avait aussi suggéré de créer des sous-sites par rubriques, mais ça ne me semble pas être une solution viable s'il faut créer des sous-sites pour chaque "rubrique" ou sous-rubrique du site.

# février 24, 2011 12:00

neodante a dit :

Bonjour,

En effet, le principe est celui-ci (sous-sites). Néanmoins combiné avec l'utilisation des gabarits de pages (et donc de type de contenu), la notion de rubriques prend toute sa dimension, soit en tant que type de contenu ou en tant que propriété de la page.

Julien

# mars 1, 2011 03:19
Les commentaires anonymes sont désactivés

Les 10 derniers blogs postés

- SharePoint 2013: Préparation de la migration - Création des site Templates dans 2010 et 2013 par Blog Technique de Romelard Fabrice le 08-20-2014, 16:31

- [ #Yammer ] How to change interface language ? Comment changer la langue de l’interface ? par Le blog de Patrick [MVP SharePoint] le 08-20-2014, 14:21

- Onedrive Sync Engine Host : CPU à 100% par Le petit blog de Pierre / Pierre's little blog le 08-06-2014, 22:22

- SharePoint : Bug sur la gestion des permissions et la synchronisation Office par Blog Technique de Romelard Fabrice le 07-10-2014, 11:35

- SharePoint 2007 : La gestion des permissions pour les Workflows par Blog Technique de Romelard Fabrice le 07-08-2014, 11:27

- TypeMock: mock everything! par Fathi Bellahcene le 07-07-2014, 17:06

- Coding is like Read par Aurélien GALTIER le 07-01-2014, 15:30

- Mes vidéos autour des nouveautés VS 2013 par Fathi Bellahcene le 06-30-2014, 20:52

- Recherche un passionné .NET par Tkfé le 06-16-2014, 12:22

- [CodePlex] Projet KISS Workflow Foundation lancé par Blog de Jérémy Jeanson le 06-08-2014, 22:25