2009-04-13 3 views
3

Bis zu diesem Punkt haben wir noch keine neue Masterpage für unsere Sharepoint-Site-Definition benötigt. Wir haben ein Thema, das einige unserer Kunden je nach Corporate SharePoint Branding verwenden werden.Sharepoint Branding die SiteLogoUrl nach Themen ändern, kein Thema angewandt Ereignis existiert

Derzeit wechsle ich die ‚SiteLogoUrl‘ in meinem ‚FeatureReceiver‘ auf der ‚FeatureActivated‘ Ereignis den folgenden Code verwenden.

public override void FeatureActivated(SPFeatureReceiverProperties properties) { 
     AddThemeToSpThemes(THEME_ID, THEME_NAME, THEME_DESC, THEME_IMAGE, THEME_IMAGE); 
     SPWeb site = properties.Feature.Parent as SPWeb; 
     if (site != null) { 
      site.AllowUnsafeUpdates = true; 
      site.SiteLogoUrl = site.Url + "images/thLogo.gif"; 
      site.Update(); 
     } 
    } 

FeatureActivated nicht das beste Ereignis auszulösen auf, würde ich ein Thema angewendet Veranstaltung bevorzugen, aber ich kann nicht scheinen, einen zu finden. Vielleicht nähere ich mich dem nicht richtig.

Antwort

1

Das Anwenden eines Themas hat kein Ereignis.

du rückwärts tun kann (obwohl die offensichtliche Art und Weise). Wie wäre es Ihre Funktion Empfänger mit activate the theme programmatisch, sowie die Einstellung Ihres Logos?

Hinweis: Sie können das aktuell angewendete Thema in der SPWeb-Eigenschaftstasche speichern - siehe this for an example, aber speichern Sie die aktuellen Masterseiten, bevor Sie sie ändern.

Es ist eine Überlegung wert, die Alternate CSS instead of Themes zu verwenden. Dies kann auch für Ihr SPWeb-Objekt (AlternateCssURL) festgelegt werden.

0

Der Code sollte gut funktionieren. Die FeatureActivated/FeatureDeactivating-Methoden sind die Orte, an denen Sie benutzerdefinierten Code hinzufügen können.

Aus Neugier, warum haben Sie gedacht, dass Sie nicht das richtige Ereignis verwenden? Es gibt nicht zu viele Ereignisse im Sharepoint, und die Funktionalität des Themas ist ziemlich begrenzt. Die CSS-Dateien sind umfangreich, aber die .net-Seite ist klein.

Meine Vermutung ist, dass Sie die SiteLogoUrl erzwingen möchten, auch wenn sich das Thema ändert (so können Ihre Kunden ein funky Thema für ihre Website wählen, während das Logo beibehalten).

Auch eine Masterpage ist kein Thema, weshalb ich nicht sicher bin, warum Sie gesagt haben: "Bis jetzt haben wir noch keine neue Masterpage für unsere SharePoint-Websitedefinition benötigt".

Prost,

Matt.

+0

Das Aktivieren einer Funktion und das Anwenden eines Themas sind zwei völlig verschiedene Dinge. Ich möchte das Bild ändern, wenn ein Thema angewendet wird. –