Benutzersegmentierung in SharePoint 2013
-
Anzeigen von verschiedene Banner auf einer Seite je nach des Endbenutzers Geschlecht -
Je nach Gebietsschema des Endbenutzers bietet verschiedene Rabatt anzeigen -
Anzeigen von verschiedenen Artikel auf einer Seite je nach des Endbenutzers verweisende Link (der Website, die auf der Seite an den Endbenutzer gebracht).
-
SharePoint Server 2013 -
Visual Studio 2012
Hinweis
|
|---|
|
|
static void CreateNavigationTermSet(string siteUrl) { using (SPSite site = new SPSite(siteUrl)) { using (SPWeb web = site.OpenWeb()) { TaxonomySession taxonomySession = new TaxonomySession(site); taxonomySession.UpdateCache(); TermStore termStore = taxonomySession.DefaultSiteCollectionTermStore; // Create a TermSet object in a default site collection term group. Group siteCollectionGroup = termStore.GetSiteCollectionGroup(site, createIfMissing: true); TermSet termSet = siteCollectionGroup.CreateTermSet("Navigation Demo", Guid.NewGuid(), lcid: 1033); // Obtain navigation term set. NavigationTermSet navigationTermSet = NavigationTermSet.GetAsResolvedByWeb(termSet, web, "GlobalNavigationTaxonomyProvider"); // Create a term that points to a SharePoint page set at the term set level of hierarchy. NavigationTerm term1 = navigationTermSet.CreateTerm("Term 1", NavigationLinkType.FriendlyUrl, Guid.NewGuid()); // Create a term that points to an already existing URL outside of SharePoint. NavigationTerm term2 = navigationTermSet.CreateTerm("Term 2", NavigationLinkType.SimpleLink, Guid.NewGuid()); term2.SimpleLinkUrl = "http://www.bing.com/"; // Create a term that points to an existing SharePoint page. NavigationTerm term3 = navigationTermSet.CreateTerm("Term 3", NavigationLinkType.FriendlyUrl, Guid.NewGuid()); // Save all changes to the term store. termStore.CommitAll(); } } }
Hinweis
|
|---|
|
|
Beispiel 1: Fügen Sie und Benutzersegmente zur SharePoint Server 2013 -Website hinzu
protected override void OnLoad(EventArgs e) { if (this.AppManager != null) { if (this.AppManager.QueryGroups.ContainsKey(this.QueryGroupName) && this.AppManager.QueryGroups[this.QueryGroupName].DataProvider != null) { this.AppManager.QueryGroups[this.QueryGroupName].DataProvider.BeforeSerializeToClient += new BeforeSerializeToClientEventHandler(AddMycustomProperties); } } base.OnLoad(e); }
private void AddMycustomProperties(object sender, BeforeSerializeToClientEventArgs e) { DataProviderScriptWebPart dp = sender as DataProviderScriptWebPart; string gender = (string)Page.Session["DataProvider.Gender"]; // Depends on what your DataProvider is: Facebook, LinkedIn, etc. if (dp != null && gender != null) { try { // Set property to male or female GUID. if (gender.CompareTo("female") == 0) { dp.Properties["TermSetName"] = new String[] { "TermUniqueIdentifier" }; // E.g. 47ba9139-a4c5-4ff0-8f9a-2864be32da92 } else if(gender.CompareTo("male") == 0) { dp.Properties["UserSegmentTerms"] = new String[] { "TermUniqueIdentifier" }; // E.g. f5bf2195-2170-4b11-a018-a688a285e579 } } catch (ArgumentException exp) { // Do something with the exception. } } }
Beispiel 2: Erstellen von Benutzersegmente basierend auf den Typ des Webbrowsers Ihre Endbenutzer wann verwendet wird
protected override void OnLoad(EventArgs e) { if (this.AppManager != null) { if (this.AppManager.QueryGroups.ContainsKey(this.QueryGroupName) && this.AppManager.QueryGroups[this.QueryGroupName].DataProvider != null) { this.AppManager.QueryGroups[this.QueryGroupName].DataProvider.BeforeSerializeToClient += new BeforeSerializeToClientEventHandler(AddMycustomProperties); } } base.OnLoad(e); }
private void AddMycustomProperties(object sender, BeforeSerializeToClientEventArgs e) { DataProviderScriptWebPart dataProvider = sender as DataProviderScriptWebPart; SPSite site = SPContext.Current.Site; TaxonomySession session = new TaxonomySession(site); TermStore defaultSiteCollectionStore = session.DefaultSiteCollectionTermStore; List<string> userSegmentTerms = new List<string>(); var userAgentparts = Page.Request.UserAgent.Split(new char[] { ';', '(', ')' }); foreach (var part in userAgentparts) { var entry = part.Trim(); var terms = termStore.GetTermsWithCustomProperty("UserAgent", entry, false); if (terms.Count > 0) { userSegmentTerms.Add(terms[0].Id.ToString()); } } dataProvider.Properties["UserSegmentTerms"] = userSegmentTerms.ToArray(); }
Um eine Abfrageregel erstellen, die für einen bestimmten Benutzer-Segment aktiviert werden soll
-
Wählen Sie in der Veröffentlichungs-Websitesammlung in den WebsiteeinstellungenWebsitesammlungsverwaltung aus, und wählen Sie dann die Regeln des Suchdienstes-Abfrage. -
Wählen Sie eine Quelle Ergebnis, und wählen Sie dann auf Neue Abfrage-Regel. -
Geben Sie einen Namen ein, in das Feld Name der Regel . Klicken Sie dann auf um Kontextzu erweitern. -
Klicken Sie im Abschnitt Abfrage erfolgt über diese Benutzersegmente wählen Sie eine dieser Benutzer Segmente, und klicken Sie dann auf Benutzersegment hinzufügen. -
Geben Sie im Feld Titel einen Namen für diese Benutzer Segment Abfrageregel. Wählen Sie die Add User Segment Begriff. -
Erweitern Sie im Dialogfeld Importieren aus Sicht zu speichern Sie den Verwalteten Metadatendienst. Suchen Sie unter Site Collectionnach den Ausdruckssatz, der die Benutzer Segmentierung Bedingungen enthält, die Sie unter Erstellen eines Ausdruckssatzeszuvor definiert haben. Wählen Sie das Benutzersegment für das Sie dieser Abfrageregel anwenden möchten. Klicken Sie dann auf Speichern. -
Nennen Sie Ihre Benutzer Segment n im Dialogfeld Benutzersegment hinzufügen . Sie haben nun eine Abfrageregel zu einem Benutzersegment zugeordnet, die wiederum einem Benutzer Segment Begriff zugeordnet ist. -
Wählen Sie unter AbfragebedingungenBedingung entfernen. Dies gibt an, dass die Abfrage in der ContentBySearchWebPart konfiguriert die Abfragebedingung fungiert. -
Legen Sie die entsprechenden Aktionen, die die Abfrageregel ausgeführt wird. Wählen Sie eine entsprechende Aktion, die Sie als Ergebnis einer - Regel für die Abfrage übernehmen möchten, klicken Sie im Abschnitt Aktionen . Sie können entweder Hochgestuft Ergebnis hinzufügen oder einen Block Ergebnis hinzufügenauswählen. -
Speichern Sie die Abfrageregel. -
Wiederholen Sie die Schritte 1 bis 10 für die anderen Benutzersegmenten, abhängig von der Aktionen, die Sie ausführen möchten.
So fügen Sie Ihr benutzerdefiniertes Webpart hinzu
-
Navigieren Sie zu einer Kategorieseite, wählen Sie Seite bearbeiten, und wählen Sie dann auf Seitenvorlage bearbeiten. -
Wählen Sie im oberen Bereich der Seite Webpart hinzufügen aus. Wählen Sie dann, das benutzerdefinierte WebPart aus dem Dropdownmenü in der oberen rechten Ecke des Webparts. -
Klicken Sie auf Webpart bearbeiten. -
Erweitern Sie im Abschnitt Einstellungen , und wählen Sie im Feld ErgebnistabelleSpecialTermResults. -
Speichern Sie Ihre Konfiguration.
Hinweis