TemplateItem template = Context.Database.Templates["{1C041906-1194-4498-81B2-E7399ECC4908}"];
Item newTemplateItem = null;
foreach (Item descendant in mainEventItem.Axes.GetDescendants())
{
if (descendant.Template == null)
{
newSheet.Cell(newRowCount, 0).Value
= descendant.Paths.FullPath;
newSheet.Cell(newRowCount, 1).Value
= "missing template";
newRowCount++;
}
else
{
switch (descendant.Template.InnerItem.Paths.FullPath)
{
case "/sitecore/templates/Components/Events/Event":
newTemplateItem = Context.Database.GetItem("/sitecore/templates/Project/Corporate/Content
Types/Events/Event");
template = Context.Database.Templates[newTemplateItem.ID];
using (new SecurityDisabler())
{
descendant.ChangeTemplate(template);
}
NOTE: if item is unpublishable and I am in live mode (just master) then it skips those items. Use power shell to delete those.
cd 'master:/sitecore/content/Corporate/Home/Learn/Resources Library'
Get-ChildItem -Recurse . | ForEach-Object {
$isPublishable = $_.Publishing.IsPublishable([System.DateTime]::Now, $true)
if (!$isPublishable) {
#Get-Item $_.ID | Remove-Item -Recurse
Write-Host -f Red $_.Paths.ContentPath $_.ID is unpublishable
}
}
No comments:
Post a Comment