mercredi 28 novembre 2007

Utilisation des scriptes coté serveur dans les sites SharePoint 2007

Suite à des besoins d’utilisation des événements des contrôles serveur dans les sites ECM 2007 en va voire comment autoriser et utiliser ces événements dans les pages des sites ECM 2007.

Pour des raisons de sécurité, SharePoint 2007 refuse l’ajoute des scriptes cotés serveur dans les pages SharePoint 2007 pour cela avant de commence la création de scripte vous devez d’abord autoriser l’utilisation de ces scriptes, pour faire veuillez suivre les étapes suivants :
I – Autorisation
1 –Ouvrir le web. Config de votre site SharePoint
2- affecté la valeur Full pour le paramètre level de labalise trust
Ex : <trust originurl="" level="Full">
3- ajouter la balise PageParserPath avec ces paramètres dans la balise PageParserPaths
Ex :
<pageparserpaths>
<pageparserpath includesubfolders="true" allowserversidescript="true" compilationmode="Always" virtualpath="/*">
</pageparserpaths>

Cet exemple de code autorise le scripte coté serveur dans toute le site, vous pouvez spécifier l’emplacement de la page ou d’un dossier à autorisé dans le paramètre VirtualPath
REMARQUE : la balise PageParserPaths est une balise fils de la balise SafeMode

II – Utilisation

1 – Ouvrir votre page SharePoint ou modèle de page avec SharePoint Designer
2- Ajouter la balise <script type="text/c#" runat="server"></script> dans votre page SharePoint puis ajouter du code
Ex :
<script type="text/c#" runat="server">
protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
{Response.Redirect(DropDownList1.SelectedValue); }

</script>

mardi 20 novembre 2007

Personnaliser l’erreur du SharePoint 2007

Une fois une erreur se produit dans les sites ECM 2007, Par défaut SharePoint ressort un message d’erreur générale qui rendre un peu difficile de trouver le type et l’emplacement d’erreur, pour cela j’ai créé cette article pour vous montrez comment personnalisé l’erreur SharePoint 2007. il suffit de suivre les étapes suivants :

1- Ouvrir le web. Config du site
2- Dans la balise SafeMode balise enfant du balise SharePoint vous changer les valeurs des paramètres CallStack="false" par CallStack="true" et AllowPageLevelTrace="false" par AllowPageLevelTrace="true"
3- Aussi changez le parametre mode de la balise customErrors en l’affectons la valeur Off

jeudi 15 novembre 2007

Creation d’un flash Web Part

Dans cet article nous allons créer un webpart flash pour l’integrer et le gérer facilement dans un site ECM 2007, ce webpart contient des paramètres flashUrl, flashWidth et flashHeight

Code Source

using System;
using System.ComponentModel;
using System.Runtime.InteropServices;
using System.Web.UI;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.WebControls;
using System.Xml.Serialization;
using Microsoft.SharePoint;
using Microsoft.SharePoint.WebControls;
using Microsoft.SharePoint.WebPartPages;
using Microsoft.SharePoint.Utilities;
using System.Web.UI.HtmlControls;

namespace FlashWebPart
{
[Guid("f04fa49d-1342-4c7d-904a-c43ebc942190")]
[XmlRoot(Namespace = "FlashWebPart")]
public class FlashWebPart : Microsoft.SharePoint.WebPartPages.WebPart
{
public FlashWebPart()
{
this.ExportMode = WebPartExportMode.All;
}
protected int flashWidth = 400;
protected int flashHeight = 300;
protected string flashUrl = "";


[Browsable(true),
Category("Flash Info"),
DefaultValue(400),
WebPartStorage(Storage.Shared),
FriendlyName("Width"),
Description("Width of the web part")]
public int FlashWidth
{
get
{
return this.flashWidth;
}
set
{
this.flashWidth = value;
}
}
[Browsable(true),
Category("Flash Info"),
DefaultValue(300),
WebPartStorage(Storage.Shared),
FriendlyName("Height"),
Description("Height of the web part")]
public int FlashHeight
{
get
{
return this.flashHeight;
}
set
{
this.flashHeight = value;
}
}
[Browsable(true),
Category("Flash Info"),
DefaultValue(""),
WebPartStorage(Storage.Shared),
FriendlyName("URL"),
Description("URL of the web part")]
public string FlashURL
{
get
{
return this.flashUrl;
}
set
{
this.flashUrl = value;
}
}
protected override void Render(HtmlTextWriter writer)
{
string outHTML = "";




writer.Write(outHTML);
}
}
}

Menu programmatique avec un style personnalisé sous ECM 2007

Dans cet article en va procéder la création d’un web part menu dynamique programmatique sous ECM 2007 en appliquant un style personnalisé facilement
La procédure c’est de boucler sur les collections du site, les sous site et les pages puis en va récupérer les titre et les liens soit des sites soit des pages et les mettre dans MyLiteral qui contient tout le contenu html de mon menu et à base de ces éléments le web part génère le menu
source Code du WebPart


using System;
using System.Collections.Generic;
using System.Text;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.ComponentModel;
using Microsoft.SharePoint.Navigation;
using Microsoft.SharePoint.Publishing.Navigation;
using Microsoft.SharePoint;
using Microsoft.SharePoint.WebPartPages;
using Microsoft.SharePoint.Administration;
namespace Menu
{
public class Menu : WebPart
{
string MyUrl = "";
int i = 0;
private const string defaultText = "TemsamaniMenu";
private string sitename = defaultText;
[Browsable(true), Category("MenuTems"), DefaultValue(defaultText), WebPartStorage(Storage.Personal),
FriendlyName("SiteName"), Description("SiteName Property")]
public string SiteName
{
get
{
return sitename;
}
set
{
sitename = value;
}
}
protected override void CreateChildControls()
{

LiteralControl myLiteral = new LiteralControl();

myLiteral.Text = "Fill SiteName Property";
// L'url des images utiliser dans ce menu
MyUrl = "/Style Library/imgs/";
//Délcaration des sources des donneés ce base sur le site map
SiteMapDataSource siteMap = new SiteMapDataSource();
SiteMapNodeCollection baseCollection;
SiteMapNodeCollection childCollection;
//CurrentNode c.à.d Le menu va commencé à partir du site courant
sitename = "CurrentNode";
if (sitename != "TemsamaniMenu")
{
myLiteral.Text = "";
if (sitename == "CurrentNode")
{
if (SiteMap.CurrentNode.GetType().ToString() == "Microsoft.SharePoint.Publishing.Navigation.PortalListItemSiteMapNode")
{
baseCollection = new SiteMapNodeCollection(SiteMap.CurrentNode.ParentNode);
childCollection = SiteMap.CurrentNode.ParentNode.ChildNodes;
}
else
{
baseCollection = new SiteMapNodeCollection(SiteMap.CurrentNode);
childCollection = SiteMap.CurrentNode.ChildNodes;
}
}
else
{
baseCollection = new SiteMapNodeCollection(SiteMap.RootNode);
childCollection = SiteMap.RootNode.ChildNodes;
}

baseCollection.AddRange(childCollection);
//Bouclé sur les collection du site
foreach (SiteMapNode node in baseCollection)
{
// Verifier si ces elements sont des pages ou des sous sites
if (node.GetType().ToString() == "Microsoft.SharePoint.Publishing.Navigation.PortalWebSiteMapNode")
{
//Appliqué un style personnalisé
OpenTableLevel1(node.Title, node.Url, ref myLiteral);
//---------------------------------------------------------------------------------
SiteMapNodeCollection ChildebaseCollection = new SiteMapNodeCollection(node);
SiteMapNodeCollection Childe = node.ChildNodes;
ChildebaseCollection.AddRange(Childe);
OpenTableLevel2(ref myLiteral);
//Bouclé sur les sous collection du site
foreach (SiteMapNode node1 in ChildebaseCollection)
{
if (node1.GetType().ToString() == "Microsoft.SharePoint.Publishing.Navigation.PortalListItemSiteMapNode")
{
//Appliqué un style personnalisé
CreateRow(node1.Title, node1.Url, ref myLiteral);
InsertSeparator(ref myLiteral);

}
}
//Appliqué un style personnalisé
CloseTableLevel2(ref myLiteral);

//---------------------------------------------------------------------------------
//Appliqué un style personnalisé
CloseTableLevel1(ref myLiteral);


}
}
}
//Ajouter le Conteneur html a la page
Controls.Add(myLiteral);


}
public override void RenderControl(HtmlTextWriter writer)
{
RenderChildren(writer);
}

Création du modèle de page (Page Layout)

La mise en page est un modèle de type de contenu système créé par la fonction Ressources de publication. La colonne Modèles de la mise en page sera ajoutée à toutes les mises en page.

Etapes
1. Création des colonnes de site
2. Création du Types de contenu de site
3. Création de la mise en page avec SharePoint designer
4. Utilisation de la mise en page


1. Création des colonnes de site

Dans cette étape vous allez créer des colonnes utilisé dans votre modèle c.à.d. les zone du contenu utilisé dans ce modèle, ces colonnes peuvent être des zones images, lien, texte, …
TO DO : Afficher les paramètres du site dans la partie « galeries » cliqué sur « colonnes du site » pour gérer les colonnes (création, modification et suppression)



2. Création du Types de contenu de site


Type de contenu représente le type de contenu utilisé, dans notre cas en va choisir Type de contenu de publication avec le parent page
Après la création du type de contenu vous devez affecter les colonnes les quelles vous avez créé dans la premier etape, TO DO une fois votre type de contenu est sélectionné cliqué sur « Ajouter à partir de colonnes de site existantes » en bas de la page



3. Création de la mise en page avec SharePoint designer


Ouvrir votre site dans le SharePoint Designer dans le menu « File » cliqué sur « new » puis choisir l’onglet « SharePoint Content », sélectionné « SharePoint Publishing » et cliqué sur « Page Layout »




Le type de contenu que vous avez créé dans la deuxième étape sera afficher dans la liste des « Content Type Group » il suffit de le s sélectionné et saisir l’url et le titre de la page et cliqué sur OK


En fin vous trouverez les colonnes de votre contenu dans votre barre d’outil il suffit de les placé dans votre mise en page



4. Utilisation de la mise en page


Ce modèle est ajouter automatiquement dans la liste des modèles de page il suffit de crée des pages basé sur ce modèle.

Gestion du contenu de l'entreprise

Au cours des dernières années, les entreprises ont accumulé un volume important de contenu non structuré composé de documents, de messages électroniques, de vidéos, de messages instantanés, de pages Web, entre autres. Cette masse de contenu non géré et quasi chaotique est un frein pour les entreprises ; il les empêche de pleinement exploiter ces ressources pour mieux partager des connaissances, améliorer les communications avec les clients et optimiser les processus. La gestion du contenu d'entreprise (ECM, Enterprise Content Management) de Microsoft est un composant clé de l'infrastructure d'une organisation et peut l'aider à relever ces défis.
Reposant sur une plate-forme bien intégrée, cette solution permet à chaque travailleur de l'information de tirer parti de la gestion de contenu grâce à son intégration à des outils conviviaux comme Microsoft Office System. Une solution Microsoft ECM peut aider les entreprises dans divers domaines.
Pour plus de détail merci de visiter le site