2010-03-09 1 views
0

Je rencontre actuellement des problèmes pour essayer de styler l'éditeur de texte riche en HTML dans notre définition de site MOSS 2007.L'éditeur de texte enrichi de SharePoint 2007 affiche le logo de l'entreprise à partir de la page maître. Comment puis-je supprimer ce logo?

J'ai défini une ligne d'entreprise logo sur une page maître personnalisée dans la balise body comme suit:

<%@Master language="C#"%> 
<%@ Register Tagprefix="SharePoint" Namespace="Microsoft.SharePoint.WebControls" Assembly="Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %> <%@ Register Tagprefix="Utilities" Namespace="Microsoft.SharePoint.Utilities" Assembly="Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %> <%@ Import Namespace="Microsoft.SharePoint" %> 
<%@ Import Namespace="Microsoft.SharePoint.ApplicationPages" %> 
<%@ Register Tagprefix="WebPartPages" Namespace="Microsoft.SharePoint.WebPartPages" Assembly="Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %> 
<%@ Register TagPrefix="wssuc" TagName="Welcome" src="~/_controltemplates/Welcome.ascx" %> 
<%@ Register TagPrefix="wssuc" TagName="DesignModeConsole" src="~/_controltemplates/DesignModeConsole.ascx" %> 
<HTML id="HTML1" dir="<%$Resources:wss,multipages_direction_dir_value%>" runat="server" xmlns:o="urn:schemas-microsoft-com:office:office"> 
<HEAD id="HEAD1" runat="server"> 
    <META Name="GENERATOR" Content="Microsoft SharePoint"> 
    <META Name="progid" Content="SharePoint.WebPartPage.Document"> 
    <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8"> 
    <META HTTP-EQUIV="Expires" content="0"> 
    <SharePoint:RobotsMetaTag ID="RobotsMetaTag1" runat="server"/> 
    <Title ID=onetidTitle><asp:ContentPlaceHolder id=PlaceHolderPageTitle runat="server"/></Title> 
    <SharePoint:CssLink ID="CssLink1" runat="server"/> 
    <SharePoint:Theme ID="Theme1" runat="server"/> 
    <SharePoint:ScriptLink ID="ScriptLink1" language="javascript" name="core.js" Defer="true" runat="server" /> 
    <SharePoint:CustomJSUrl ID="CustomJSUrl1" runat="server" /> 
    <SharePoint:SoapDiscoveryLink ID="SoapDiscoveryLink1" runat="server" /> 
    <asp:ContentPlaceHolder id="PlaceHolderAdditionalPageHead" runat="server"/> 
    <SharePoint:DelegateControl ID="DelegateControl1" runat="server" ControlId="AdditionalPageHead" AllowMultipleControls="true"/> 

    <style> 
body 
{ 
    background-image:url(/_layouts/images/corp/corpLogo.gif); 
    background-repeat:no-repeat; 
} 
</style> 
</HEAD> 

...

Déployés en fonction, cette page maître fonctionne très bien pour tous de nos pages standard et des sites - le logo apparaît dans le coin supérieur gauche (et le code applique également un schéma de couleurs en utilisant une feuille de style définie séparément). Cependant, lorsque nous essayons de modifier un contenu à l'aide d'un CEWP, l'éditeur de texte riche également affiche ce logo dans le coin supérieur gauche, masquant partiellement le texte que l'utilisateur doit modifier.

J'ai essayé de modifier le style dans la page maître pour masquer ce logo mais je ne trouve pas de moyen de le faire. J'ai également examiné la modification de la

C: \ Program Files \ Common Files \ Microsoft Shared \ extensions serveur web \ 12 \ TEMPLATE \ LAYOUTS \ 1033 \ htmleditor.js

et l'éditeur de texte riche réel lui-même à

C: \ Program Files \ Common Files \ Microsoft Shared \ extensions serveur web \ 12 \ TEMPLATE \ LAYOUTS \ RTE2PUEditor.aspx

mais cela n'a pas conduit à un succès (et je vraiment plutôt ne pas le faire de toute façon !!).

Quelqu'un peut-il me diriger dans la bonne direction? Je voudrais une marque personnalisée (logo, CSS etc.) s'appliquant à toutes les pages, mais pas à l'éditeur de texte riche pop-up. Est-ce possible? Si c'est le cas, comment?

Répondre

2

La méthode RTE2_GenerateLaunchArguments dans HtmlEditor.js copys tous les styles et feuilles de style sur la page:

var styleRules=new Array(); 
var styleRulesUrl=new Array(); 
for (var i=0; i<document.styleSheets.length; i++) 
{ 
    var styleSheet_href=document.styleSheets[i].href; 
    if (styleSheet_href !="") 
    { 
     styleRulesUrl[styleRulesUrl.length]=styleSheet_href; 
    } 
    else 
    { 
     var rules=document.styleSheets[i].rules; 
     for (var j=0; j<rules.length; j++) 
     { 
      styleRules[styleRules.length]=rules[j]; 
     } 
    } 
} 

Ces valeurs sont ensuite transmis et appliqué à la RTE2PUEditor.aspx de dialogue modale. Il semble que le plus rapide travail autour d'utiliser le formulaire au lieu de la balise body:

form#aspnetForm 
{ 
    background-image:url(/_layouts/images/corp/corpLogo.gif); 
    background-repeat:no-repeat; 
} 

L'ID de la forme sur RTE2PUEditor.aspx est RTE2PUEditorForm, alors que la plupart des autres pages (en particulier ceux qui utilisent votre page principale) utilisez aspnetForm. Cela dit, vous voudrez peut-être examiner la possibilité de définir le logo du site au lieu d'utiliser le code CSS. Vous pouvez définir le logo manuellement en accédant à Paramètres du site> Titre, Description et icône> URL et description du logo et en modifiant l'URL. Vous pouvez également définir le code à l'aide de la propriété SPWeb.SiteLogoUrl. Notez que cela nécessite que le contrôle SiteLogoImage soit présent sur votre page maître personnalisée.

+0

Merci pour votre réponse rapide Rich. Je vais regarder ces options à mon retour au travail et poster ici.Andrew –

+0

Riche - le forme # aspnetForm { image de fond: url (/ _ layouts/images/corp/corpLogo.gif); Background-repeat: pas de répétition; } a bien fonctionné pour moi. Merci beaucoup pour la réponse rapide et m'aider ici. Andrew –

Questions connexes