Fermer

janvier 3, 2024

Supprimez toutes les versions du langage Sitecore sauf une à l’aide de Powershell / Blogs / Perficient

Supprimez toutes les versions du langage Sitecore sauf une à l’aide de Powershell / Blogs / Perficient


Dans le CMS Sitecore, nous pouvons ajouter de nouvelles versions de n’importe quel élément, et nous pouvons ajouter autant de versions que nécessaire. Il existe 2 types de versions disponibles dans Sitecore

  1. Version numérotée – versions des éléments dans la même langue
  2. Version linguistique – versions d’un élément dans une langue différente

Problème

Dans certains cas, nous pouvons souhaiter supprimer les versions d’un élément ou d’un nœud entier dans toutes les langues, à l’exception d’une ou de quelques langues. Dans ce cas, il est difficile de les supprimer manuellement. Il n’existe que quelques options pour relever ce défi : soit supprimer les versions linguistiques des éléments une par une, soit utiliser le script PowerShell dans Sitecore.

L’extension Sitecore Powershell est un module qui fournit une interface de ligne de commande et un environnement de script pour fonctionner avec la plateforme Sitecore. À l’aide de l’extension Powershell, nous pouvons effectuer diverses opérations sur les éléments Sitecore, ainsi qu’autoriser l’accès aux API Sitecore. Il ressemble et fonctionne de la même manière que l’utilitaire Windows Powershell.

Voici le paramètre PowerShell essentiel que nous utilisons :

Supprimer-ItemVersion

Supprime la langue/version d’un élément unique ou d’une branche d’éléments Supprime la langue/version d’un élément unique ou d’une branche d’éléments.

  • Remove-ItemVersion -Language <String[]> [-Version <String[]>] [-ExcludeLanguage <String[]>] [-Path] <String> [-Recurse] [-MaxRecentVersions <Int32>]
    Remove-ItemVersion -Language <String[]> [-Version <String[]>] [-ExcludeLanguage <String[]>] -Id <String> [-Database <String>] [-Recurse] [-MaxRecentVersions <Int32>]
    Remove-ItemVersion [-Language <String[]>] [-Version <String[]>] [-ExcludeLanguage <String[]>] [-Item] <Item> [-Recurse] [-MaxRecentVersions <Int32>]

Solution

Suivez les étapes ci-dessous pour résoudre le problème. Voici mon exemple pour supprimer toutes les autres langues sauf l’anglais :

  1. Récupérer le chemin de l’élément sur lequel on souhaite effectuer une action
  2. Récupérez le code de version linguistique souhaité :
    1. Pour récupérer le code de langue, allez dans « /sitecore/system/Languages ​​»
    2. Accédez à une langue spécifique et prenez la valeur du champ « Code Iso Régional »
  3. Accédez à Powershell ISE depuis Sitecore Launchpad
  4. Ajoutez le script PowerShell mentionné ci-dessous et mettez à jour la variable $sourcepath et le code de langue en conséquence

Script PowerShell Sitecore

$props = @{
   InfoTitle = "Remove Versions"
    PageSize = 10000000
}
 
$sourcePath =  "{Please Add Content Path Here}"
 
function Remove-Versions {
 
    $items = Get-ChildItem -Path $sourcePath -Recurse
    $rootItem = Get-Item -Path $sourcePath
    $items = $items + $rootItem
 
    foreach ($item in $items)
    {
        foreach ($version in $item.Versions.GetVersions($true))
        {
            if ($version.Language -ne "{Please Add Language Code}")
            {
                Remove-ItemVersion $version
                Write-Host $version.ID " - " $version.Language "- deleted"
                $version;
            }
        }   
    }
}

$items = Remove-Versions
$items | Show-ListView @props -Property ItemPath, ID, @{Label="Language"; Expression={$_."Language"}} 
Close-Window

Voyons voir comment ça fonctionne

Supprimer toutes les langues sauf une à l'aide de PowerShell

Nous espérons que cela vous aidera ! Vérifier notre blog Sitecore pour des trucs et astuces plus utiles.






Source link

janvier 3, 2024