Interface de script du portail et associations de contenu
L'interface de scriptage du portail permet de créer des scripts afin d'automatiser la gestion des associations de contenu. Lorsque vous utilisez le bean ContentMapping avec l'interface de scriptage du portail, vous pouvez ajouter, modifier et supprimer les associations de contenu.
Extraction des associations de contenu
Pour extraire des informations d'association de contenu, utilisez la méthode select afin de spécifier l'ID objet de la page de contenu Web. Vous pouvez dériver l'ID objet d'une ressource à partir d'un autre bean et utiliser cela comme entrée pour la méthode select. Par exemple, une page de contenu Web peut avoir le nom unique my.test.page. La méthode find du bean Content permet de déterminer l'ID objet de la page my.test.page.
- Exemple Jacl :
$set the_page [$Content find page uniquename "my.test.page"] $ContentMapping select $the_page- Exemple Jython :
the_page = Content.find('page','uniquename','my.test.page') ContentMapping.select(the_page)
Une fois que vous possédez l'ID objet de la page de contenu Web, vous pouvez utiliser la méthode list et les méthodes get pour accéder aux associations de contenu. La méthode list renvoie la liste des ID d'association de contenu. Les ID peuvent identifier l'ID de ressource d'un dossier ou le chemin de contenu du dossier, selon la façon dont la page est mappée. Vous pouvez utiliser les ID d'association de contenu renvoyés par la méthode list comme arguments pour la méthode get.
- Exemple Jacl :
$set the_page [$Content find page uniquename "my.test.page"] $ContentMapping select $the_page foreach mid [$ContentMapping list mappings] { puts " Mapping $mid info:" puts " content id: [$ContentMapping get content-id $mid]" puts " default? [$ContentMapping get isdefault $mid]" puts " scope: [$ContentMapping get scope $mid]" }- Exemple Jython :
var the_page = Content.find('page','uniquename','my.test.page') ContentMapping.select(the_page) for mid in ContentMapping.list('mappings').split(): print " Mapping "+mid+" info:" print " content id: "+ContentMapping.get('content-id', mid) print " default? "+ContentMapping.get('isdefault', mid) print " scope: "+ContentMapping.get('scope', mid)
La méthode get peut renvoyer l'association par défaut pour la page de contenu Web sélectionnée. La méthode list peut extraire la liste des portées qui sont définies pour les associations de la page de contenu Web.
- Exemple Jacl :
$set the_page [$Content find page uniquename "my.test.page"] $ContentMapping select $the_page puts "available scopes: [$ContentMapping list scopes]" puts "default mapping: [$ContentMapping get defaultmapping]" puts "portal resource OID: [$ContentMapping get oid]"- Exemple Jython :
var the_page = Content.find('page','uniquename','my.test.page') ContentMapping.select(the_page) print "available scopes: "+ContentMapping.list('scopes') print "default mapping: "+ContentMapping.get('defaultmapping') print "portal resource OID: "+ContentMapping.get('oid')
Ajout d'associations de contenu
Utilisez la méthode add pour ajouter de nouvelles associations de contenu à une page de contenu Web. Vous pouvez attribuer une association de contenu en spécifiant le chemin de contenu du dossier ou l'ID du dossier. Si vous identifiez le dossier en fonction du chemin de contenu, l'association est transformée en interne pour désigner l'ID du dossier. Ainsi, si vous renommez le dossier ultérieurement, l'association continue de désigner le même dossier.
- Exemple Jacl :
$ContentMapping select [$ContentNode find page uniquename "my.sample.page"] $ContentMapping add content-path "/test1/mapping" set the_content_id .... ## obtain ID of content to be mapped $ContentMapping add id $the_content_id- Exemple Jython :
ContentMapping.select(Content.find('all','un','my.sample.page')) ContentMapping.add('content-path','/test1/mapping') var the_content_id = ... ## obtain ID of content to be mapped ContentMapping.add('id',the_content_id)
Suppression des associations de contenu
- supprimer
- Supprime une association de contenu individuelle, spécifiée par l'ID de ressource du dossier ou le chemin de contenu du dossier.
- supprimer
- Supprime toutes les associations de contenu pour la page de contenu Web.
Les exemples suivants illustrent la suppression des associations de contenu pour deux pages de contenu Web. Les associations de contenu de la première page sont supprimées individuellement à l'aide de la méthode remove et celles de la seconde page sont supprimées à l'aide de la méthode delete.
- Exemple Jacl :
$set the_first_page [$Content find page uniquename "my.test.page"] $ContentMapping select $the_first_page foreach mid [$ContentMapping list mappings] { $ContentMapping remove $mid } $set another_page [$Content find page uniquename "my.second.test.page"] $ContentMapping select $another_page $ContentMapping delete- Exemple Jython :
var the_page = Content.find('page','uniquename','my.test.page') ContentMapping.select(the_first_page) for mid in ContentMapping.list('mappings').split(): ContentMapping.remove(mid) var another_page = Content.find('page','uniquename','my.second.test.page') ContentMapping.select(another_page) ContentMapping.delete()
Modification des associations de contenu
- Indicateur par défaut
- Mode de délégation
- Portée du mappage
Lorsque vous appelez la méthode set, indiquez l'ID de l'association de contenu à mettre à jour.
my.test.page. Plusieurs paramètres sont spécifiés pour la première association de contenu :- L'indicateur par défaut est défini pour que cette association de contenu soit l'association de contenu par défaut pour la page de contenu Web.
- La portée de l'association est
_scp_. - Le contrôle d'accès reposant sur les pages est désactivé car le mode de délégation est associé à la valeur false.
- Exemple Jacl :
$ContentMapping select [$ContentNode find page uniquename "my.sample.page"] set first_m_id [lindex [$ContentMapping list mappings] 0] $ContentMapping set scope $first_m_id "_scp_" $ContentMapping set default $first_m_id true $ContentMapping set delegation $first_m_id false set second_m_id [lindex [$ContentMapping list mappings] 1] $ContentMapping set scope $second_m_id ""- Exemple Jython :
ContentMapping.select(Content.find('all','un','my.sample.page')) var first_m_id = ContentMapping.list('mappings').split()[0] ContentMapping.set('scope',first_m_id,'_scp_') ContentMapping.set('default',first_m_id,'true') ContentMapping.set('delegation',first_m_id,'false') var second_m_id = ContentMapping.list('mappings').split()[1] ContentMapping.set('scope',second_m_id,'')