tal condition al posto giusto

5 messages Options
Embed this post
Permalink
faber

tal condition al posto giusto

Reply Threaded More More options
Print post
Permalink
Vorrei che il "mio" codice di sottonavigazione mostrasse solo gli elementi che hanno la proprietà secnav (la setto da ZMI).
Mi sembra che la condizione così espressa

tal:condition="exists:navbarobject/secnav" 

possa andare bene.

Eppure funziona solo se si inserisce nel tag <a>, verso la fine del codice.
Così facendo, però, vengono creati i pallini dell'elenco puntato anche per gli elementi senza la proprietà secnav (ovviamente senza essere affiancati dall'ancora e da link)

Ove potrei piazzare la condizione affinchè non vengano creati i tag <li> per gli elementi senza la proprietà secnav?

PS: ho provato a mettere la condizione in un tal:block sopra il tag <li> ma non funge. E non funge nemmeno metterà nel tag <li>, forse il posto più avvio.

Ecco il codice del sottomenu.


<p class="hiddenStructure">Sottomenu principale</p> <ul id="portal-subnavbar" tal:define="navbardata view/contentlist; navbarobjects python: navbardata['contents']; navbarselected python: navbardata['selected'];" tal:condition="python: navbardata['contents'] != []"> <li tal:repeat="navbarobject navbarobjects" tal:attributes="class python: navbarobject == navbarselected and 'selected' or 'plain';"> <a href="#" tal:attributes="href navbarobject/absolute_url; title navbarobject/secnav|navbarobject/title_or_id;" tal:content="navbarobject/secnav|navbarobject/title_or_id">Navbar</a> </li> </ul>






--
Faber
--------------------
"Life is what happens to you while you're busy making other plans" - J. Lennon

_______________________________________________
Plone-IT mailing list
[hidden email]
http://lists.plone.org/mailman/listinfo/plone-it
http://www.nabble.com/Plone---Italy-f21728.html
SauZheR at gOOgle

Re: tal condition al posto giusto

Reply Threaded More More options
Print post
Permalink
Il navigation e' costruito in maniera tale da filtrare i contenuti
gia' per stato di workflow e/o portal_type.

Sicuro che non puoi rivedere le tue esigenze? Eviteresti di mettere
mano al codice del navigation che e' tutt'altro che semplice.

bye

Il giorno 24 agosto 2009 15.56, Fabrizio Rota<[hidden email]>
ha scritto:

> Vorrei che il "mio" codice di sottonavigazione mostrasse solo gli elementi
> che hanno la proprietà secnav (la setto da ZMI).
> Mi sembra che la condizione così espressa
> tal:condition="exists:navbarobject/secnav"
> possa andare bene.
> Eppure funziona solo se si inserisce nel tag <a>, verso la fine del codice.
> Così facendo, però, vengono creati i pallini dell'elenco puntato anche per
> gli elementi senza la proprietà secnav (ovviamente senza essere affiancati
> dall'ancora e da link)
> Ove potrei piazzare la condizione affinchè non vengano creati i tag <li> per
> gli elementi senza la proprietà secnav?
> PS: ho provato a mettere la condizione in un tal:block sopra il tag <li> ma
> non funge. E non funge nemmeno metterà nel tag <li>, forse il posto più
> avvio.
> Ecco il codice del sottomenu.
>
> <p class="hiddenStructure">Sottomenu principale</p> <ul
> id="portal-subnavbar" tal:define="navbardata view/contentlist; navbarobjects
> python: navbardata['contents']; navbarselected python:
> navbardata['selected'];" tal:condition="python: navbardata['contents'] !=
> []"> <li tal:repeat="navbarobject navbarobjects" tal:attributes="class
> python: navbarobject == navbarselected and 'selected' or 'plain';"> <a
> href="#" tal:attributes="href navbarobject/absolute_url; title
> navbarobject/secnav|navbarobject/title_or_id;"
> tal:content="navbarobject/secnav|navbarobject/title_or_id">Navbar</a> </li>
> </ul>
>
>
>
>
>
> --
> Faber
> --------------------
> "Life is what happens to you while you're busy making other plans" - J.
> Lennon
>
> _______________________________________________
> Plone-IT mailing list
> [hidden email]
> http://lists.plone.org/mailman/listinfo/plone-it
> http://www.nabble.com/Plone---Italy-f21728.html
>



--
  bye
SauZheR
************************************
l'iterazione è umana...
la ricorsione, Divina!
************************************
reply to: sauzher AT gmail DOT com

_______________________________________________
Plone-IT mailing list
[hidden email]
http://lists.plone.org/mailman/listinfo/plone-it
http://www.nabble.com/Plone---Italy-f21728.html
faber

Re: tal condition al posto giusto

Reply Threaded More More options
Print post
Permalink
Non sto modificando la navigazione principale ma una navigazione orizzontale secondaria.
La navigazione secondaria che uso (subnavbar di neteasy) fa spuntare indiscriminatamente ogni cosa ci sia al secondo livello mettendo sulla tab di sottonavigazione  il nome dell'oggetto (che può essere molto lungo).

Per evitare di popolare con troppi elementi bisogna nascondere l'elemento alla navigazione, ma questo non mi piace, perchè poi l'oggetto non sbuca nei portlet di navigazione laterali, nella mappa del sito ecc.
La condizione 

 tal:condition="exists:navbarobject/secnav"

doveva serviva proprio a far sbucare nella barra secondaria  solo gli oggetti per i quali avevo aggiunto la proprietà "secnav" da ZMI, ignorando gli altri.

La cosa, in parte, funziona, solo che me la accetta solo se posta nella parte più annidata del ciclo, quella che definisce le ancore, per cui le ancore non vengono davvero generate ma i punti elenco si.

Nell'esempio che segue il "filtro" su secnav ha permesso la creazione del primo punto elenco con ancora, ma non ha potuto evitare la creazione dei due punti elenco successivi, seppur "vuoti".

<ul>
<li> <a href....... elemento con secnav impostato> elemento 1</a> </li>
<li> </ll>
<li></li>
</ul>



Per la questione dei nomi lunghi, ho fatto in modo che nella barra di navigazione secondaria venga mostrato il contenuto del parametro "secnav" al posto del solito "title or id", come si evince dal codice


<a href="#" tal:attributes="href navbarobject/absolute_url;
title navbarobject/secnav;"
 tal:content="navbarobject/secnav">Navbar</a>

Rileggendomi, mi rendo conto che la mia spiegazione non è un esempio luminoso di chiarezza.......
Se servono delucidazioni......

faber

Il giorno 24 agosto 2009 18.52, SauZheR <[hidden email]> ha scritto:
Il navigation e' costruito in maniera tale da filtrare i contenuti
gia' per stato di workflow e/o portal_type.

Sicuro che non puoi rivedere le tue esigenze? Eviteresti di mettere
mano al codice del navigation che e' tutt'altro che semplice.

bye

Il giorno 24 agosto 2009 15.56, Fabrizio Rota<[hidden email]>
ha scritto:
> Vorrei che il "mio" codice di sottonavigazione mostrasse solo gli elementi
> che hanno la proprietà secnav (la setto da ZMI).
> Mi sembra che la condizione così espressa
> tal:condition="exists:navbarobject/secnav"
> possa andare bene.
> Eppure funziona solo se si inserisce nel tag <a>, verso la fine del codice.
> Così facendo, però, vengono creati i pallini dell'elenco puntato anche per
> gli elementi senza la proprietà secnav (ovviamente senza essere affiancati
> dall'ancora e da link)
> Ove potrei piazzare la condizione affinchè non vengano creati i tag <li> per
> gli elementi senza la proprietà secnav?
> PS: ho provato a mettere la condizione in un tal:block sopra il tag <li> ma
> non funge. E non funge nemmeno metterà nel tag <li>, forse il posto più
> avvio.
> Ecco il codice del sottomenu.
>
> <p class="hiddenStructure">Sottomenu principale</p> <ul
> id="portal-subnavbar" tal:define="navbardata view/contentlist; navbarobjects
> python: navbardata['contents']; navbarselected python:
> navbardata['selected'];" tal:condition="python: navbardata['contents'] !=
> []"> <li tal:repeat="navbarobject navbarobjects" tal:attributes="class
> python: navbarobject == navbarselected and 'selected' or 'plain';"> <a
> href="#" tal:attributes="href navbarobject/absolute_url; title
> navbarobject/secnav|navbarobject/title_or_id;"
> tal:content="navbarobject/secnav|navbarobject/title_or_id">Navbar</a> </li>
> </ul>
>
>
>
>
>
> --
> Faber
> --------------------
> "Life is what happens to you while you're busy making other plans" - J.
> Lennon
>
> _______________________________________________
> Plone-IT mailing list
> [hidden email]
> http://lists.plone.org/mailman/listinfo/plone-it
> http://www.nabble.com/Plone---Italy-f21728.html
>



--
 bye
SauZheR
************************************
l'iterazione è umana...
la ricorsione, Divina!
************************************
reply to: sauzher AT gmail DOT com

_______________________________________________
Plone-IT mailing list
[hidden email]
http://lists.plone.org/mailman/listinfo/plone-it
http://www.nabble.com/Plone---Italy-f21728.html



--
Fabrizio
--------------------
"Life is what happens to you while you're busy making other plans" - J. Lennon

_______________________________________________
Plone-IT mailing list
[hidden email]
http://lists.plone.org/mailman/listinfo/plone-it
http://www.nabble.com/Plone---Italy-f21728.html
SauZheR at gOOgle

Re: tal condition al posto giusto

Reply Threaded More More options
Print post
Permalink
io non conosco il codice originario. Pero' quando dici "me la accetta
solo nella parte piu' annidata del ciclo" mi vien da pensare.

A ripetersi sono i tag <li> quindi grosso modo ci sono 2 casi:

1) il tal repeat e' direttamente nel tag <li>: <li tal:repeat="item
items"> <a tal:content="item/proprieta... /></li>

2) il tal repeat e' esterno
<tal:block repeat="item items">
  <li...><a.../></li>
</tal:block>

il motivo per cui non ti "accetta" la codition probabilmente e' che il
ciclo e' implementato come nel primo caso e, vedi zopebook reference
ZPT, c'e' un ordine preciso con cui vengono eseguite le istruzioni
tal:
   1.  define
   2. condition
   3. repeat
   4. content or replace
   5. attributes
   6. omit-tag

se scrivi <li tal:repeat="item items"
tal:condition="tuacondizione">... viene eseguita prima la condition e
poi la repeat. Poiche' la tua condizione si basa sul contenuto del
ciclo (la variabile item) non puoi porre la condizione nello stesso
tag. Devi riscrivere il codice come nell'esempio 2 facendo salire di
un livello il ciclo con un qualsiasi tag trasparente (<tal:ciclo
repeat....> ad esempio)
e poi disponendo la condizione sulla variabile ciclanda (nel mio caso
item) nei tag annidati (primo <li>)

Credo che cosi' risolvi.

alessandro.


Il giorno 24 agosto 2009 19.23, Fabrizio Rota<[hidden email]>
ha scritto:

> Non sto modificando la navigazione principale ma una navigazione orizzontale
> secondaria.
> La navigazione secondaria che uso (subnavbar di neteasy) fa spuntare
> indiscriminatamente ogni cosa ci sia al secondo livello mettendo sulla tab
> di sottonavigazione  il nome dell'oggetto (che può essere molto lungo).
> Per evitare di popolare con troppi elementi bisogna nascondere l'elemento
> alla navigazione, ma questo non mi piace, perchè poi l'oggetto non sbuca nei
> portlet di navigazione laterali, nella mappa del sito ecc.
> La condizione
>  tal:condition="exists:navbarobject/secnav"
> doveva serviva proprio a far sbucare nella barra secondaria  solo gli
> oggetti per i quali avevo aggiunto la proprietà "secnav" da ZMI, ignorando
> gli altri.
> La cosa, in parte, funziona, solo che me la accetta solo se posta nella
> parte più annidata del ciclo, quella che definisce le ancore, per cui le
> ancore non vengono davvero generate ma i punti elenco si.
> Nell'esempio che segue il "filtro" su secnav ha permesso la creazione del
> primo punto elenco con ancora, ma non ha potuto evitare la creazione dei due
> punti elenco successivi, seppur "vuoti".
> <ul>
> <li> <a href....... elemento con secnav impostato> elemento 1</a> </li>
> <li> </ll>
> <li></li>
> </ul>
>
>
> Per la questione dei nomi lunghi, ho fatto in modo che nella barra di
> navigazione secondaria venga mostrato il contenuto del parametro "secnav" al
> posto del solito "title or id", come si evince dal codice
>
> <a href="#" tal:attributes="href navbarobject/absolute_url;
> title navbarobject/secnav;"
>  tal:content="navbarobject/secnav">Navbar</a>
>
> Rileggendomi, mi rendo conto che la mia spiegazione non è un esempio
> luminoso di chiarezza.......
> Se servono delucidazioni......
> faber
> Il giorno 24 agosto 2009 18.52, SauZheR <[hidden email]> ha scritto:
>>
>> Il navigation e' costruito in maniera tale da filtrare i contenuti
>> gia' per stato di workflow e/o portal_type.
>>
>> Sicuro che non puoi rivedere le tue esigenze? Eviteresti di mettere
>> mano al codice del navigation che e' tutt'altro che semplice.
>>
>> bye
>>
>> Il giorno 24 agosto 2009 15.56, Fabrizio Rota<[hidden email]>
>> ha scritto:
>> > Vorrei che il "mio" codice di sottonavigazione mostrasse solo gli
>> > elementi
>> > che hanno la proprietà secnav (la setto da ZMI).
>> > Mi sembra che la condizione così espressa
>> > tal:condition="exists:navbarobject/secnav"
>> > possa andare bene.
>> > Eppure funziona solo se si inserisce nel tag <a>, verso la fine del
>> > codice.
>> > Così facendo, però, vengono creati i pallini dell'elenco puntato anche
>> > per
>> > gli elementi senza la proprietà secnav (ovviamente senza essere
>> > affiancati
>> > dall'ancora e da link)
>> > Ove potrei piazzare la condizione affinchè non vengano creati i tag <li>
>> > per
>> > gli elementi senza la proprietà secnav?
>> > PS: ho provato a mettere la condizione in un tal:block sopra il tag <li>
>> > ma
>> > non funge. E non funge nemmeno metterà nel tag <li>, forse il posto più
>> > avvio.
>> > Ecco il codice del sottomenu.
>> >
>> > <p class="hiddenStructure">Sottomenu principale</p> <ul
>> > id="portal-subnavbar" tal:define="navbardata view/contentlist;
>> > navbarobjects
>> > python: navbardata['contents']; navbarselected python:
>> > navbardata['selected'];" tal:condition="python: navbardata['contents']
>> > !=
>> > []"> <li tal:repeat="navbarobject navbarobjects" tal:attributes="class
>> > python: navbarobject == navbarselected and 'selected' or 'plain';"> <a
>> > href="#" tal:attributes="href navbarobject/absolute_url; title
>> > navbarobject/secnav|navbarobject/title_or_id;"
>> > tal:content="navbarobject/secnav|navbarobject/title_or_id">Navbar</a>
>> > </li>
>> > </ul>
>> >
>> >
>> >
>> >
>> >
>> > --
>> > Faber
>> > --------------------
>> > "Life is what happens to you while you're busy making other plans" - J.
>> > Lennon
>> >
>> > _______________________________________________
>> > Plone-IT mailing list
>> > [hidden email]
>> > http://lists.plone.org/mailman/listinfo/plone-it
>> > http://www.nabble.com/Plone---Italy-f21728.html
>> >
>>
>>
>>
>> --
>>  bye
>> SauZheR
>> ************************************
>> l'iterazione è umana...
>> la ricorsione, Divina!
>> ************************************
>> reply to: sauzher AT gmail DOT com
>>
>> _______________________________________________
>> Plone-IT mailing list
>> [hidden email]
>> http://lists.plone.org/mailman/listinfo/plone-it
>> http://www.nabble.com/Plone---Italy-f21728.html
>
>
>
> --
> Fabrizio
> --------------------
> "Life is what happens to you while you're busy making other plans" - J.
> Lennon
>
> _______________________________________________
> Plone-IT mailing list
> [hidden email]
> http://lists.plone.org/mailman/listinfo/plone-it
> http://www.nabble.com/Plone---Italy-f21728.html
>



--
  bye
SauZheR
************************************
l'iterazione è umana...
la ricorsione, Divina!
************************************
reply to: sauzher AT gmail DOT com

_______________________________________________
Plone-IT mailing list
[hidden email]
http://lists.plone.org/mailman/listinfo/plone-it
http://www.nabble.com/Plone---Italy-f21728.html
faber

Re: tal condition al posto giusto

Reply Threaded More More options
Print post
Permalink

Credo che cosi' risolvi.

alessandro.

SIIIIII!!!!!!!!!! Grazie per i consigli meticolosi!
Ora funziona molto bene: la barra di navigazione secondaria si popola SOLO con gli elementi che DICO IO!!!!
Così posso finalmente decidere che la barra di navigazione secondaria sia al servizio SOLO delle cartelle che ho deciso di mettere nella barra principale.

G R A Z I E


faber 

_______________________________________________
Plone-IT mailing list
[hidden email]
http://lists.plone.org/mailman/listinfo/plone-it
http://www.nabble.com/Plone---Italy-f21728.html