Forum user profil

  • pseudo: axel.pesme@softeam.fr
  • name:  
  • company:
  • username:
  • Anmeldedatum:
  • Anzahl der Einträge: 4

List of messages

With jcr:sql, how to filter a node on a property choicelist multiple weakreference

Hello,

I have this three nodes in my definitions.cnd

[slamnt:country] > jnt:content, slammix:slam
 - name (string) mandatory internationalized
 - code (string, choicelist[resourceBundle]) = 'ch' mandatory < 'fr', 'lu', 'ch', 'de', 'at'
[slamnt:fund] > jnt:content, slammix:slam
 - name (string) mandatory
 - country (weakreference, choicelist[nodes='$currentSite/contents/country//*;slamnt:country']) multiple
[slamnt:listFund] > jnt:content, slammix:slam
+ * (slamnt:fund)

so in a slamnt:fund, I select in the country choicelist for example : "fr lu ch"
and in another slamnt:fund, I select : "de"

later in my listFund.jsp, i have a jcr:sql with that query :

<c:set var="queryStatement" value="select * from [slamnt:fund] as fund where ISDESCENDANTNODE(fund,'${currentNode.path}') order by fund.name asc"/>
<jcr:sql var="result" sql="${queryStatement}"/>

this is working fine. But, i want to filter the fund with their country. Somewhere else in my site, i have choosen the country "fr".
how can I select only the funds which have a slamnt:country fr selected in the country choicelist ?
i have tested :

<c:set var="queryStatement" value="select * from [slamnt:fund] as fund where ISDESCENDANTNODE(fund,'${currentNode.path}') and fund.country = \"fr\" order by fund.name asc"/>

but it's not working, I have also try several alternatives like :

fund.country.code = "fr"
contains (fund.country, "fr")
fund.country = '${countrySelected}'
fund.country like '%${countrySelected}%'

but none is working.

How can i do this ?

2018/05/31 15:58

Rules : boucler sur toutes les langues d'un noeud pour executer une rule

Bonjour,

je souhaiterai boucler sur toutes les langues d'un noeud pour modifier le mapping URL pour toutes les langues en une seule passe lorsqu'une propriété est modifiée,

accessoirement, l'url est préfixée par une proprieté du parent qui est internationalisée

que dois-je ajouter à cette rule pour boucler sur les langues ?

when

          A property has been set on a node
                      - the node has the type totont:toto

then

          Remove URL mappings for node node and language node.getLanguage()

          Add URL mapping node.getParent().getParent().getParent().getProperty('seoUrlRoot').getStringValue() + "/" + node.getNode().getPropertyAsString('jcr:uuid') for node node and language node.getLanguage()


 

 

 

 

 

2016/04/29 15:03

Re : Re : automatiser la publication d'un node (avec une rule ?)

Merci, ça fonctionne nickel

2016/04/14 12:45

automatiser la publication d'un node (avec une rule ?)

Bonjour,

j'utilise l'api rest pour aller modifier une propriété d'un noeud dans le workspace default

et je voudrais lancer un publish ensuite. j'ai pensé utiliser une rule

package com.blabla.rules

// list any import classes here.
import org.jahia.services.content.rules.*
import org.jahia.services.content.JCRContentUtils
import org.jahia.modules.seo.rules.SeoService
import org.slf4j.Logger
import org.drools.core.spi.KnowledgeHelper

expander rules.dsl

// declare any global variables here
global Logger logger
global SeoService seoService
global JCRContentUtils jcrUtils
global Service service
global KnowledgeHelper drools

rule "Auto publish on importMorningstarLastUpdate modified"

    when
        Not in operation import
        A property importMorningstarLastUpdate has been set on a node
            - the node has the type slamnt:listProduct
    then
        service.publishNode(node, drools)
        // Publish node

end

mais ça ne fonctionne pas, j'obtiens l'exception suivante :

2016-04-14 12:29:08,000: ERROR [http-nio-8080-exec-2] org.jahia.services.content.rules.RulesListener: Errors when compiling rules in URL [bundle://127.164:0/META-INF/rules.drl] : [2] Unable to expand:         service.publishNode(node, drools)

si je remplace

        service.publishNode(node, drools)

par

        Publish node

ça ne fonctionne pas mieux.

Si ce n'est pas possible en utilisant une rule, est-ce possible d'automatiser la publication à une heure précise tous les jours via un autre moyen ?

2016/04/14 10:46