Depuis la version 1.6.0, le service Flux RSS ou Atom permet d'ajouter plusieurs flux RSS dans le même service, contrairement aux versions antérieures du plugin qui ne permettaient d'insérer qu'un seul flux RSS.
Le passage à la version 1.5.0 du plugin nécessite donc la migration des services existants.
Rendez-vous sur la console du repository (http://[url_cms]/_repository) et exécutez le script suivant:
Migration des services Flux RSS v1.5.0 ou antérieurs
Oups ! La copie dans le presse papier a échouée. Ouvrez le code et copier-le manuellement.var qm = session.getWorkspace().getQueryManager();
var migrated = 0;
var query = qm.createQuery("//element(*, ametys:zoneItem)[@ametys-internal:type='SERVICE' and @ametys-internal:service='org.ametys.plugins.syndication.service.RSS']", javax.jcr.query.Query.XPATH);
var nodes = query.execute().getNodes();
while (nodes.hasNext())
{
var node = nodes.next();
var paramsNode = node.getNode('ametys:service_parameters');
if (!paramsNode.hasNode('ametys:feeds'))
{
var feedsNode = paramsNode.addNode('ametys:feeds', 'ametys:compositeMetadata');
var entryNode = feedsNode.addNode('ametys:1', 'ametys:compositeMetadata');
if (paramsNode.hasProperty('ametys:url'))
{
var url = paramsNode.getProperty('ametys:url').getString();
entryNode.setProperty('ametys:url', url);
paramsNode.getProperty('ametys:url').remove();
}
if (paramsNode.hasProperty('ametys:length'))
{
var length = paramsNode.getProperty('ametys:length').getString();
entryNode.setProperty('ametys:length', length);
}
paramsNode.setProperty('ametys:link', '');
paramsNode.setProperty('ametys:link-title', '');
paramsNode.setProperty('ametys:nb-feed-max', '');
paramsNode.setProperty('ametys:nb-feed-user', '');
paramsNode.setProperty('ametys:cache', '3');
entryNode.setProperty('ametys:title', '');
entryNode.setProperty('ametys:limited', 'false');
entryNode.setProperty('ametys:fo-user', '');
entryNode.setProperty('ametys:fo-group', '');
entryNode.setProperty('ametys:cache', '3');
migrated++;
}
}
session.save();
println(migrated + ' service(s) have been migrated.');
var qm = session.getWorkspace().getQueryManager();
var migrated = 0;
var query = qm.createQuery("//element(*, ametys:zoneItem)[@ametys-internal:type='SERVICE' and @ametys-internal:service='org.ametys.plugins.syndication.service.RSS']", javax.jcr.query.Query.XPATH);
var nodes = query.execute().getNodes();
while (nodes.hasNext())
{
var node = nodes.next();
var paramsNode = node.getNode('ametys:service_parameters');
if (!paramsNode.hasNode('ametys:feeds'))
{
var feedsNode = paramsNode.addNode('ametys:feeds', 'ametys:compositeMetadata');
var entryNode = feedsNode.addNode('ametys:1', 'ametys:compositeMetadata');
if (paramsNode.hasProperty('ametys:url'))
{
var url = paramsNode.getProperty('ametys:url').getString();
entryNode.setProperty('ametys:url', url);
paramsNode.getProperty('ametys:url').remove();
}
if (paramsNode.hasProperty('ametys:length'))
{
var length = paramsNode.getProperty('ametys:length').getString();
entryNode.setProperty('ametys:length', length);
}
paramsNode.setProperty('ametys:link', '');
paramsNode.setProperty('ametys:link-title', '');
paramsNode.setProperty('ametys:nb-feed-max', '');
paramsNode.setProperty('ametys:nb-feed-user', '');
paramsNode.setProperty('ametys:cache', '3');
entryNode.setProperty('ametys:title', '');
entryNode.setProperty('ametys:limited', 'false');
entryNode.setProperty('ametys:fo-user', '');
entryNode.setProperty('ametys:fo-group', '');
entryNode.setProperty('ametys:cache', '3');
migrated++;
}
}
session.save();
println(migrated + ' service(s) have been migrated.');
Voir le code
var qm = session.getWorkspace().getQueryManager();
var migrated = 0;
var query = qm.createQuery("//element(*, ametys:zoneItem)[@ametys-internal:type='SERVICE' and @ametys-internal:service='org.ametys.plugins.syndication.service.RSS']", javax.jcr.query.Query.XPATH);
var nodes = query.execute().getNodes();
while (nodes.hasNext())
{
var node = nodes.next();
var paramsNode = node.getNode('ametys:service_parameters');
if (!paramsNode.hasNode('ametys:feeds'))
{
var feedsNode = paramsNode.addNode('ametys:feeds', 'ametys:compositeMetadata');
var entryNode = feedsNode.addNode('ametys:1', 'ametys:compositeMetadata');
if (paramsNode.hasProperty('ametys:url'))
{
var url = paramsNode.getProperty('ametys:url').getString();
entryNode.setProperty('ametys:url', url);
paramsNode.getProperty('ametys:url').remove();
}
if (paramsNode.hasProperty('ametys:length'))
{
var length = paramsNode.getProperty('ametys:length').getString();
entryNode.setProperty('ametys:length', length);
}
paramsNode.setProperty('ametys:link', '');
paramsNode.setProperty('ametys:link-title', '');
paramsNode.setProperty('ametys:nb-feed-max', '');
paramsNode.setProperty('ametys:nb-feed-user', '');
paramsNode.setProperty('ametys:cache', '3');
entryNode.setProperty('ametys:title', '');
entryNode.setProperty('ametys:limited', 'false');
entryNode.setProperty('ametys:fo-user', '');
entryNode.setProperty('ametys:fo-group', '');
entryNode.setProperty('ametys:cache', '3');
migrated++;
}
}
session.save();
println(migrated + ' service(s) have been migrated.');