Gael's profileGael Duhamel - SharePoin...PhotosBlogListsMore ![]() | Help |
|
May 31 [SharePoint] SPBuiltInFieldId ou la classe qui vous rend serviceDans le cadre d'un développement d'une feature, je suis tombé complètement par hasard sur une classe des plus sympathique! Il s'agit de la classe SPBuiltInFieldId. Cette classe vous permet de récupérer les Ids de tous les champs de base de SharePoint. Jugez-en plutot par ce petit screenshot: Par contre, chose des plus étranges, cette classe n'est pas du tout documenté Tags: May 27 [SharePoint] Custom Field - Variation labels sur CodePlexJe viens de poster sur CodePlex un nouveau projet de type champ personnalisé. Ce champ permet d'afficher la liste des « variation labels » définit pour votre site web. Bien qu'il soit très facile de faire cela via le model objet de SharePoint (voir l'exemple à la fin de ce billet), il est parfois utile d'avoir un champ personnalisé car celui-ci vous laisse plus de souplesse quant à son utilisation (novice ou non). Pour commencer, vous devez installer la solution et activer la feature (un guide d'installation et configuration est disponible dans l'onglet release du projet)
Une fois cela fait, vous pouvez maintenant ajouter votre nouveau type de colonne dans votre liste :
En mode ajout/modification, une liste déroulante vous permet de sélectionner une des variations installées sur votre serveur de publication MOSS.
Ci-dessous, la liste des variations installées (comme preuve de ma bonne fois
Pour ajouter ce type de colonne à une liste via un peu de lignes de code, vous pouvez faire comme ceci: String languageId = spList.Fields.AddFieldAsXml(String.Format("<Field Type=\"VariationLabelsFieldType\" DisplayName=\"{0}\" Name=\"{0}\" Required=\"TRUE\" />", SPGael.SharedConstants.LANGUAGECOLUMNNAME)); Pour ajouter un lookup colonne basé sur votre liste de variation, vous pouvez faire comme ceci : using (SPSite spSite = new SPSite(SPContext.Current.Site.ID)) Rendez-vous donc sur http://www.codeplex.com/VariationLabelsCsFld pour télécharger, tester et me remonter les éventuels bogues, évolutions, ou autres… Tags: May 21 [Windows Live] Bon anniversaireCela fait maintenant 11 ans que je suis sur Hotmail... Une éternité dans notre monde informatique ou tout évolue tellement vite. Rendez-vous compte, à mes débuts, les modems atteignaient la vitesse stupéfiante de 14400kbs, le javascript en était à ses débuts et la bataille faisait rage entre Internet Explorer 4.0 et Netscape Communicator... Tags: May 18 [SharePoint] MOSS ROBOTS meta tagJe suis en train de travailler sur un site internet sous MOSS et j’ai pas mal de travail à faire sur le rendu d’une page MOSS, qui n’est absolument pas accessible. Avant de commencer un projet (aussi bien en développement qu’en conseil), j’aime toujours relire les guidances ou autres proof of concepts, afin d’être certains de choisir la bonne solution. Cela me prend souvent beaucoup de temps, mais je pense qu’en prenant soin de lire ce que les autres acteurs on pu faire, on gagne un temps précieux à ne pas commettre les mêmes erreurs. Donc pour en revenir au sujet, je lisais ce qu’il se faisait en termes de modification du rendu de control SharePoint. Ce que j’ai constaté, c’est qu’en majorité, la plupart des articles propose de réécrire son propre custom control afin d’être sur de bien maitriser le rendu. Dans un de ses excellents articles, Stefan Goßner (je vous recommande la lecture de son blog, qui est une véritable mine d’or) proposait de changer le rendu du tag « RobotsMetaTag » par un custom control : Adjusting the MOSS ROBOTS meta tag for 3rd party search engines. Ma question a été, pourquoi ne pas utiliser à la place un control adapter ? Cette solution me paraissait plus « propre », car l’on continue à se baser sur le contrôle de base. Stefan a eu la gentillesse de me répondre et d’approuver ma solution Tags: [SharePoint] Ajouter une langue dans la liste des variations d’un site de publication MOSS (maj le 19 mai 2008)Comme vous le savez, toutes les langues ne possèdent pas encore de localisation propre. Ces langues sont souvent celles dite « minoritaire » comme le sont le flamand, le catalan, le gaélique, le basque, etc… Microsoft, prend toutefois soin à en répertorier le maximum et de créer pour ces langues un LocaleID (pour en avoir une liste : http://www.microsoft.com/globaldev/reference/lcid-all.mspx) en attendant de leur offrir une vrai « culture » (vous pouvez en trouver une liste ici : http://msdn.microsoft.com/en-us/library/system.globalization.cultureinfo.aspx) et donc le module linguistique pour SharePoint (les langues disponibles sont ici: http://www.microsoft.com/downloads/details.aspx?displaylang=fr&FamilyID=36ee1bf0-652c-4e38-b247-f29b3eefa048) qui vous permettra de voir votre SharePoint « parler » flamand Dans mon cas « client », je dois réaliser un site internet public Irlandais basé sur MOSS. Comme vous ne le savez peut-être pas, mais ici en Irlande, tout site public doit être disponible en gaélique et en anglais. Bien qu’il existe une culture pour l’Irlande qui est « En-Ie » (et un LCID 6153), celle-ci ne fait que « gérer » du formatage comme pour le calendrier (jj/mm/aaaa) ou la devise (€) basé sur la langue anglaise. Donc, comme vu un peu plus haut, le gaélique ne possède pas de « culture » (au sens informatique du terme bien sur ^^) et donc encore moins de module linguistique. Ce qui fait donc, qu’il n’est pas « possible » de le trouver par défaut dans la liste des variations disponibles. Pour y remédier, il vous suffit:
N’oubliez pas le IISRESET pour prendre en compte votre modification et constater le résultat : Attention: si votre langue ne possède pas sa propre ressource, MOSS ne pourra pas vous rediriger par défaut sur celle-ci. En effet, la redirection ce base sur le HTTP_ACCEPT_LANGUAGE. Tags: May 15 [Linq] Grouper les items renvoyés par un query sur une listeAuparavant, lorsque je voulais regrouper mes valeurs issues d’un query sur une liste. Je devais faire tout un tas de manipulations, comme : // Ma liste SPList spList = null; try { spList = SPContext.Current.Site.RootWeb.Lists["MaListe"]; } catch { } // si null, exception if (spList == null) throw new NullReferenceException("La liste n'existe pas"); // Recuperation du nom interne de la colonne if (!spList.Fields.ContainsField("Categorie")) throw new NullReferenceException("La colonne categorie n'existe pas"); String categoryColumnName = spList.Fields["Categorie"].InternalName; // Recuperation des categories distinctes triees SPQuery spQuery = new SPQuery(); spQuery.Query = String.Format("<OrderBy><FieldRef Name='{0}' /></OrderBy>", categoryColumnName); // Chargement du Xml XDocument xml = XDocument.Parse(spList.GetItems(spQuery).Xml); // Ajout du namesplace pour recuperer mes valeurs XNamespace z = "#RowsetSchema"; // IMPORTANT: n'oubliez pas de typer votre regroupement var groupedCategories = from allcategories in xml.Descendants(z + "row") group allcategories by (string)allcategories.Attribute("ows_Categorie") into distinctCategories select distinctCategories; // Ensuite il nous suffit de recuperer le resultat // Ici en l'ajoutant a un control de type Checkbox list foreach (var cat in groupedCategories) { this.cblCategories.Items.Add(new ListItem((string)cat.Key)); } Simple non? Pour allez un peu plus loin, ou si vous débutez comme moi, allez jeter un oeil sur le blog de Wriju. Il y a d'excellentes choses à lire. Tags: |
|
|