seo vanity Jahia 7.3 Jahia 8

What is the property corresponding to vanity URL?

Question

What is the property corresponding to vanity URL?

Answer

This is the property j:url of a jnt:vanityUrl content type.

The content could be retrieved with the JCR SQL-2 select as below:

SELECT * FROM [jnt:vanityUrl] WHERE ISDESCENDANTNODE('/sites/mySite')

Here is a Groovy script showing the access to this property:

import org.jahia.api.Constants
import org.jahia.tools.patches.LoggerWrapper
import org.jahia.services.content.JCRCallback
import org.jahia.services.content.JCRNodeWrapper
import org.jahia.services.content.JCRSessionWrapper
import org.jahia.services.content.JCRTemplate
import org.jahia.services.content.JCRPublicationService

import javax.jcr.NodeIterator
import javax.jcr.RepositoryException
import javax.jcr.query.Query

final LoggerWrapper logger = log

final String nodeTypeName = "jnt:vanityUrl"
final String jUrl = "j:url"


JCRTemplate.getInstance().doExecuteWithSystemSession(null, Constants.EDIT_WORKSPACE, new JCRCallback() {
    @Override
    Object doInJCR(JCRSessionWrapper session) throws RepositoryException {

        final String stmt = "SELECT * FROM [" + nodeTypeName + "] WHERE ISDESCENDANTNODE(&#quot;/sites/mySiteunine&#quot;)"
        final NodeIterator iteratorSites = session.getWorkspace().getQueryManager().createQuery(stmt, Query.JCR_SQL2).execute().getNodes()
        while (iteratorSites.hasNext()) {
            JCRNodeWrapper node = iteratorSites.nextNode() as JCRNodeWrapper
            urlFound = node.getPropertyAsString(jUrl)
            log.info("SEO URL: "+urlFound)
        }
        return null
    }
})