public void Publish(PublishMode mode, string languageName, List <string> publishingTargets, bool deep, string sourceDatabaseName = "master", string targetDatabaseName = "web", string rootItemPath = null) { //TODO : This option doesn't work yet using (new SecurityDisabler()) { var sourceDatabase = Database.GetDatabase(sourceDatabaseName); var targetDatabase = Database.GetDatabase(targetDatabaseName); var language = string.IsNullOrEmpty(languageName) ? null : LanguageManager.GetLanguage(languageName); var rootItem = rootItemPath == null ? null : sourceDatabase.SelectSingleItem(rootItemPath); Sitecore.Publishing.PublishOptions publishOptions = new Sitecore.Publishing.PublishOptions(sourceDatabase, targetDatabase, mode, language, System.DateTime.Now /*, publishingTargets*/); // Create a publisher with the publishoptions // The publishOptions determine the source and target database, // the publish mode and language, and the publish date var publisher = new Sitecore.Publishing.Publisher(publishOptions); // Choose where to publish from publisher.Options.RootItem = rootItem; // Publish children as well? publisher.Options.Deep = deep; // Do the publish! publisher.Publish(); } }
private void PublishItem(Item item) { using (new UserSwitcher("sitecore\\admin", true)) { // The publishOptions determine the source and target database, // the publish mode and language, and the publish date var publishOptions = new Sitecore.Publishing.PublishOptions(item.Database, Database.GetDatabase("web"), PublishMode.SingleItem, item.Language, DateTime.Now); // Create a publisher with the publishoptions var publisher = new Sitecore.Publishing.Publisher(publishOptions); // Choose where to publish from publisher.Options.RootItem = item; // Publish children as well? publisher.Options.Deep = true; // Do the publish! publisher.PublishAsync(); item.Publishing.ClearPublishingCache(); } }
public void PublihsingMethod(Item rootItem, Sitecore.Publishing.PublishMode publishMode, bool deepOption, bool relatedItem = false) { Sitecore.Publishing.PublishOptions publishOptions = new Sitecore.Publishing.PublishOptions(masterDb, targetDb, publishMode, rootItem.Language, System.DateTime.Now); Sitecore.Publishing.Publisher publisher = new Sitecore.Publishing.Publisher(publishOptions); publisher.Options.RootItem = rootItem; publisher.Options.Deep = deepOption; publisher.Options.PublishRelatedItems = relatedItem; publisher.Publish(); Sitecore.Diagnostics.Log.Audit("Blog - Published item - " + rootItem.Paths.FullPath + " (Publish Subitems: " + deepOption.ToString() + ")", this); }
public string Publish(IPublisherOptions options) { using (new UserSwitcher(@"sitecore\admin", false)) { Log.Info($"Publisher::Publish has been called and the user context is: [{Sitecore.Context.User.Name}]", this); var publisherOptions = SetDefaults(options); var sourceDatabase = Factory.GetDatabase(publisherOptions.SourceDatabaseName); var languages = LanguageManager.GetLanguages(sourceDatabase).AsEnumerable(); if (publisherOptions.LanguageNames != null && publisherOptions.LanguageNames.Length > 0) { languages = languages.Where(l => publisherOptions.LanguageNames.Contains(l.Name)); } var targets = PublishManager.GetPublishingTargets(sourceDatabase).AsEnumerable(); var targetDatabases = new List <Database>(); if (publisherOptions.TargetNames != null && publisherOptions.TargetNames.Length > 0) { targets = targets.Where(t => publisherOptions.TargetNames.Contains(t.Name)); } foreach (var target in targets) { targetDatabases.Add(Factory.GetDatabase(target["Target database"])); } var publishMode = ParsePublishMode(publisherOptions.PublishMode); var publishOptions = new PublishOptions( sourceDatabase, targetDatabases.First(), publishMode, languages.First(), DateTime.Now, publisherOptions.TargetNames.ToList()) { Deep = publisherOptions.Deep, RootItem = sourceDatabase.Items[publisherOptions.RootItem] }; var publisher = new Sitecore.Publishing.Publisher(publishOptions, languages); var job = publisher.PublishAsync(); return(job.Name); } }
public string Publish(IPublisherOptions options) { using (new SecurityDisabler()) { var publisherOptions = SetDefaults(options); var sourceDatabase = Factory.GetDatabase(publisherOptions.SourceDatabaseName); var languages = LanguageManager.GetLanguages(sourceDatabase).AsEnumerable(); if (publisherOptions.LanguageNames != null && publisherOptions.LanguageNames.Length > 0) { languages = languages.Where(l => publisherOptions.LanguageNames.Contains(l.Name)); } var targets = PublishManager.GetPublishingTargets(sourceDatabase).AsEnumerable(); var targetDatabases = new List <Database>(); if (publisherOptions.TargetNames != null && publisherOptions.TargetNames.Length > 0) { targets = targets.Where(t => publisherOptions.TargetNames.Contains(t.Name)); } foreach (var target in targets) { targetDatabases.Add(Factory.GetDatabase(target["Target database"])); } var publishMode = ParsePublishMode(publisherOptions.PublishMode); var publishOptions = new PublishOptions( sourceDatabase, targetDatabases.First(), publishMode, languages.First(), DateTime.Now, publisherOptions.TargetNames.ToList()) { Deep = publisherOptions.Deep, RootItem = sourceDatabase.Items[publisherOptions.RootItem] }; var publisher = new Sitecore.Publishing.Publisher(publishOptions, languages); var job = publisher.PublishAsync(); return(job.Name); } }
/// <summary> /// Publishes the item. /// </summary> /// <param name="targetItem">The target item.</param> public static void PublishItem(Item targetItem, bool childs = false) { DateTime publishDate = DateTime.Now; Sitecore.Data.Database master = GetContentDatabase(); var targetDBs = GetPublishingTargets(master); foreach (var db in targetDBs) { foreach (Sitecore.Globalization.Language language in master.Languages) { Sitecore.Publishing.PublishOptions publishOptions = new Sitecore.Publishing.PublishOptions(master, db, Sitecore.Publishing.PublishMode.SingleItem, language, publishDate); publishOptions.RootItem = targetItem; publishOptions.Deep = childs; Sitecore.Publishing.Publisher publisher = new Sitecore.Publishing.Publisher(publishOptions); publisher.Publish(); } } }
public string Publish(string sourceDatabaseName, string[] targetNames = null, string[] languageNames = null) { using (new SecurityDisabler()) { var sourceDatabase = Factory.GetDatabase(sourceDatabaseName); var languages = LanguageManager.GetLanguages(sourceDatabase).AsEnumerable(); if (languageNames != null && languageNames.Length > 0) { languages = languages.Where(l => languageNames.Contains(l.Name)); } var targets = PublishManager.GetPublishingTargets(sourceDatabase).AsEnumerable(); var targetDatabases = new List<Database>(); if (targetNames != null && targetNames.Length > 0) { targets = targets.Where(t => targetNames.Contains(t.Name)); } foreach (var target in targets) { targetDatabases.Add(Factory.GetDatabase(target["Target database"])); } var publishOptions = new PublishOptions( sourceDatabase, targetDatabases.First(), PublishMode.Smart, languages.First(), DateTime.Now, targetNames.ToList()) { Deep = true, RootItem = sourceDatabase.Items["/sitecore"] }; var publisher = new Sitecore.Publishing.Publisher(publishOptions, languages); var job = publisher.PublishAsync(); return job.Name; } }
public void CreateComment(string comment) { Database masterDb = Sitecore.Configuration.Factory.GetDatabase("master"); var dataSource = GetDataSourceItem(); dataSource = masterDb.GetItem(dataSource.ID); var commentsFolder = dataSource.Axes.GetDescendants().FirstOrDefault(x => x.TemplateName == "Comments Folder"); if (commentsFolder == null) { return; } TemplateItem template = masterDb.GetTemplate("{F0A8C4E9-FEE1-407E-99DB-A7F2D16024D1}"); var newComment = commentsFolder.Add(String.Format("Comment {0}", DateTime.Now.ToString("g")).SanitizeToItemName(), template); var user = Sitecore.Context.User; var username = user == null ? "anon" : user.Name; if (newComment == null) { return; } newComment.Editing.BeginEdit(); newComment.Fields["Comment"].Value = comment; newComment.Fields["Username"].Value = username; newComment.Editing.EndEdit(); Sitecore.Publishing.PublishOptions publishOptions = new Sitecore.Publishing.PublishOptions(newComment.Database, Database.GetDatabase("web"), Sitecore.Publishing.PublishMode.SingleItem, newComment.Language, System.DateTime.Now); // Create a publisher with the publishoptions Sitecore.Publishing.Publisher publisher = new Sitecore.Publishing.Publisher(publishOptions); publisher.Options.RootItem = newComment; publisher.Publish(); }
/// <summary> /// Publish the item and recursivley any ancestors that haven't yet been published /// </summary> /// <param name="item">The item to publish</param> public static void PublishItemAndRequiredAncestors(Item item, Database targetDatabase) { if (item != null) { var ancestorInTarget = targetDatabase.GetItem(item.ParentID); if (ancestorInTarget == null) { PublishItemAndRequiredAncestors(item.Parent, targetDatabase); } ancestorInTarget = targetDatabase.GetItem(item.ParentID); if (ancestorInTarget != null) { foreach (Sitecore.Globalization.Language language in item.Database.Languages) { Sitecore.Publishing.PublishOptions publishOptions = new Sitecore.Publishing.PublishOptions(item.Database, targetDatabase, Sitecore.Publishing.PublishMode.SingleItem, language, DateTime.Now); publishOptions.RootItem = item; publishOptions.Deep = false; Sitecore.Publishing.Publisher publisher = new Sitecore.Publishing.Publisher(publishOptions); publisher.Publish(); } } } }
public void Publish(PublishMode mode, string languageName, List<string> publishingTargets, bool deep, string sourceDatabaseName = "master", string targetDatabaseName = "web", string rootItemPath = null) { //TODO : This option doesn't work yet using (new SecurityDisabler()) { var sourceDatabase = Database.GetDatabase(sourceDatabaseName); var targetDatabase = Database.GetDatabase(targetDatabaseName); var language = string.IsNullOrEmpty(languageName) ? null : LanguageManager.GetLanguage(languageName); var rootItem = rootItemPath == null ? null : sourceDatabase.SelectSingleItem(rootItemPath); Sitecore.Publishing.PublishOptions publishOptions = new Sitecore.Publishing.PublishOptions(sourceDatabase, targetDatabase, mode, language, System.DateTime.Now/*, publishingTargets*/); // Create a publisher with the publishoptions // The publishOptions determine the source and target database, // the publish mode and language, and the publish date var publisher = new Sitecore.Publishing.Publisher(publishOptions); // Choose where to publish from publisher.Options.RootItem = rootItem; // Publish children as well? publisher.Options.Deep = deep; // Do the publish! publisher.Publish(); } }