jeudi 16 avril 2009
mercredi 28 novembre 2007
Utilisation des scriptes coté serveur dans les sites SharePoint 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
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
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
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
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)
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
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.