Newsgroup: it.comp.lang.javascript
Titolo: OT forse, Firefox-XUL-js

Ciao,
ho postato questo messaggio su di un mailing list su XUL ma poi mi sono 
reso conto che era poco trafficata...
Ho appena cominciato con XUL e vorrei qualche info per
realizzare una (credo piccola) extension.
Ho realizzato l'Hello World del tutorial di Mozilla ma in effetti
avrei bisogno di qualcos'altro.
Su di un sito che gestisco ci sono vari .xml+rss. Al momento, ne
permetto l'importazione in Firefox, creando in sostanza una struttura
realizzata in questo modo (il file è un file html):
<cut>
<DL><p>
<DT><A HREF="
http://myurl
" LAST_MODIFIED="1142680469"
FEEDURL="lastupdate.xml" ID="rdf:#$FvPhC3">Last Update</A>
<DT><A HREF="
http://myurl
" LAST_MODIFIED="1142680470" FEEDURL="http://
myurl/art1.xml" ID="rdf:#$FvPhC3">Art1</A>
<DT><A HREF="
http://myurl
" LAST_MODIFIED="1142680471" FEEDURL="http://
myurl/art2.xml" ID="rdf:#$FvPhC4">Art2</A>
<DT><A HREF="
http://myurl
" LAST_MODIFIED="1142680472" FEEDURL="http://
myurl/bible.xml" ID="rdf:#$FvPhC5">Bible</A>
<DT><A HREF="
http://myurl
" LAST_MODIFIED="1142680473" FEEDURL="http://
myurl/intercity.xml" ID="rdf:#$FvPhC6">Intercity</A>
<DT><A HREF="
http://myurl
" LAST_MODIFIED="1142680474" FEEDURL="http://
myurl/justintime.xml" ID="rdf:#$FvPhC7">Just in Time</A>
<DT>
...
</DL>
</cut>
L'utente del sito segue le istruzioni e in pochi passi installa un
segnalibro "dinamico", che si aggiorna tutte le volte che si apre
Firefox. E' una soluzione che così com'è "già va bene", ma se io
voglio aggiungere una categoria ("Art3", ad esempio) devo andare ad
editare questo documento HTML (e chi ne ha scaricato una precedente
versione non si ritroverà la nuova voce di menu).
Dunque, vorrei creare una extension che:
- crea una voce di menu fissa nei Segnalibri;
- passando su questa voce si apre un sottomenu che contiene tutti i
feed come succede adesso ma con la differenza che le voci di questo
sottomenu non sono hardcoded ma vengono caricate dinamicamente dal
server;
Non so da dove cominciare: mi dareste una mano ad orientarmi? Va bene
anche se avete qualche esempio da studiare.
In mattinata sono arrivato a questo:
<?xml version="1.0"?>
<overlay id="sample"
 
xmlns="
http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul
">
  <statusbar id="status-bar">
  <menupopup id="menu_BookmarksPopup">
     <menu id="new-menu" label="Extension Test">
           <menupopup id="new-popup">
             <menuitem label="Window" value="
http://myurl/window.xml
"/>
             <menuitem label="Message"/>
           </menupopup>
         </menu>
</menupopup>
</overlay>
Mi crea un menu nei Bookamarks (ok), con un sottomenu (ok) non dinamico 
(ko). Non capisco neanche come:
- far sì che il menuitem contenga un livemark;
- come interverrebbe js;
Scusate l'off-topic e la niubbità   :-)
Grazie.

 (ko). 
Velocemente...
Inizia da qui:
http://www.xulplanet.com/tutorials/xultu/
In particolare:
http://www.xulplanet.com/tutorials/xultu/templates.html
Qui trovi qualche esempio:
http://www.xulplanet.com/tutorials/xulqa/
http://www.xulplanet.com/tutorials/xulqa/q_tmpl_child-recurse-menulists.html
Ovviamente l'RDF per il tuo menu deve essere remoto e non locale.
'bye

 'bye
Ciao, grazie per le preziose info!   :-)
Se per caso ho altri dubbi, posso postare ancora in questo NG?
Non riesco a trovare un newsgroup italiano esclusivamente dedicato alla 
materia...

Ciao Agostino,
ho provato ad utilizzare le risorse postate da te ma mi sono già perso   :-(
Al momento, cerco di ricavare i dati in locale (dunque il file RDF si 
trova sulla mia macchina):
sotto C:, come da tutorial, ho una cartella extension contenente una 
cartella myExtension che ha al suo interno:
- una cartella chrome;
- install.rdf;
- chrome.manifest;
All'interno di chrome c'è una cartella content che ha al suo interno:
- sample.xul;
- animals.rdf;
Come primo tentativo, dunque al di là di quella che può essere la 
questione livemark (al momento messa da parte per arrivarci un passo 
alla volta, sperando di non essere già fuori strada), ho messo su questo 
ma non va (cioè la parte relativa alla status bar va, è il menu che non va):
questo il "mio" sample.xul:
<?xml version="1.0"?>
<overlay id="sample"
 
xmlns="
http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul
">
  <statusbar id="status-bar">
   <statusbarpanel id="my-panel" label="Hello, World"/>
  </statusbar>
  <menupopup id="menu_BookmarksPopup">
     <menu datasources="chrome://content/animals.rdf" ref="animals" 
id="new-menu" label="My Test">
           <menupopup id="new-popup">
		<template>
		<menuitem uri="rdf:*" label="rdf:rdf#name"/>
		</template>
           </menupopup>
         </menu>
</menupopup>
</overlay>
Invece, animal.rdf è quello fornito dal tutorial:
<?xml version="1.0"?>
<RDF:RDF xmlns:RDF="
http://www.w3.org/1999/02/22-rdf-syntax-ns#
"
          xmlns:ANIMALS="
http://www.some-fictitious-zoo.com/rdf#
">
    <RDF:Description 
RDF:about="
http://www.some-fictitious-zoo.com/arachnids
">
      <ANIMALS:name>Arachnids</ANIMALS:name>
    </RDF:Description>
        <RDF:Description 
RDF:about="
http://www.some-fictitious-zoo.com/arachnids/tarantula
" 
ANIMALS:specimens="0">
          <ANIMALS:name>Tarantula</ANIMALS:name>
          <ANIMALS:species>Avicularia avicularia</ANIMALS:species>
        </RDF:Description>
    <RDF:Description RDF:about="
http://www.some-fictitious-zoo.com/birds
">
      <ANIMALS:name>Birds</ANIMALS:name>
    </RDF:Description>
        <RDF:Description 
RDF:about="
http://www.some-fictitious-zoo.com/birds/emu
" 
ANIMALS:specimens="12">
          <ANIMALS:name>Emu</ANIMALS:name>
          <ANIMALS:species>Dromaius novaehollandiae</ANIMALS:species>
        </RDF:Description>
        <RDF:Description 
RDF:about="
http://www.some-fictitious-zoo.com/birds/barnowl
" 
ANIMALS:specimens="4">
          <ANIMALS:name>Barn Owl</ANIMALS:name>
          <ANIMALS:species>Tyto alba</ANIMALS:species>
        </RDF:Description>
        <RDF:Description 
RDF:about="
http://www.some-fictitious-zoo.com/birds/raven
" 
ANIMALS:specimens="0">
          <ANIMALS:name>Raven</ANIMALS:name>
          <ANIMALS:species>Corvus corax</ANIMALS:species>
        </RDF:Description>
    <RDF:Description RDF:about="
http://www.some-fictitious-zoo.com/fish
">
      <ANIMALS:name>Fish</ANIMALS:name>
    </RDF:Description>
        <RDF:Description 
RDF:about="
http://www.some-fictitious-zoo.com/fish/cod
" 
ANIMALS:specimens="0">
          <ANIMALS:name>Cod</ANIMALS:name>
          <ANIMALS:species>Gadus morhua</ANIMALS:species>
        </RDF:Description>
        <RDF:Description 
RDF:about="
http://www.some-fictitious-zoo.com/fish/swordfish
" 
ANIMALS:specimens="3">
          <ANIMALS:name>Swordfish</ANIMALS:name>
          <ANIMALS:species>Xiphias gladius</ANIMALS:species>
        </RDF:Description>
    <RDF:Description RDF:about="
http://www.some-fictitious-zoo.com/mammals
">
      <ANIMALS:name>Mammals</ANIMALS:name>
    </RDF:Description>
        <RDF:Description 
RDF:about="
http://www.some-fictitious-zoo.com/mammals/lion
" 
ANIMALS:specimens="4">
          <ANIMALS:name>Lion</ANIMALS:name>
          <ANIMALS:species>Panthera leo</ANIMALS:species>
        </RDF:Description>
        <RDF:Description 
RDF:about="
http://www.some-fictitious-zoo.com/mammals/hippopotamus
" 
ANIMALS:specimens="2">
          <ANIMALS:name>Hippopotamus</ANIMALS:name>
          <ANIMALS:species>Hippopotamus amphibius</ANIMALS:species>
        </RDF:Description>
        <RDF:Description 
RDF:about="
http://www.some-fictitious-zoo.com/mammals/africanelephant
" 
ANIMALS:specimens="4">
          <ANIMALS:name>African Elephant</ANIMALS:name>
          <ANIMALS:species>Loxodonta africana</ANIMALS:species>
        </RDF:Description>
        <RDF:Description 
RDF:about="
http://www.some-fictitious-zoo.com/mammals/llama
" 
ANIMALS:specimens="3">
          <ANIMALS:name>Llama</ANIMALS:name>
          <ANIMALS:species>Lama glama</ANIMALS:species>
        </RDF:Description>
        <RDF:Description 
RDF:about="
http://www.some-fictitious-zoo.com/mammals/polarbear
" 
ANIMALS:specimens="0">
          <ANIMALS:name>Polar Bear</ANIMALS:name>
          <ANIMALS:species>Thalarctos maritimus</ANIMALS:species>
        </RDF:Description>
        <RDF:Description 
RDF:about="
http://www.some-fictitious-zoo.com/mammals/aardvark
" 
ANIMALS:specimens="2">
          <ANIMALS:name>Aardvark</ANIMALS:name>
          <ANIMALS:species>Orycteropus afer</ANIMALS:species>
        </RDF:Description>
        <RDF:Description 
RDF:about="
http://www.some-fictitious-zoo.com/mammals/ninebandedarmadillo
" 
ANIMALS:specimens="0">
          <ANIMALS:name>Nine-banded Armadillo</ANIMALS:name>
          <ANIMALS:species>Dasypus novemcinctus</ANIMALS:species>
        </RDF:Description>
    <RDF:Description 
RDF:about="
http://www.some-fictitious-zoo.com/reptiles
">
      <ANIMALS:name>Reptiles</ANIMALS:name>
    </RDF:Description>
        <RDF:Description 
RDF:about="
http://www.some-fictitious-zoo.com/reptiles/anaconda
" 
ANIMALS:specimens="1">
          <ANIMALS:name>Anaconda</ANIMALS:name>
          <ANIMALS:species>Eunectes murinus</ANIMALS:species>
        </RDF:Description>
        <RDF:Description 
RDF:about="
http://www.some-fictitious-zoo.com/reptiles/chameleon
" 
ANIMALS:specimens="2">
          <ANIMALS:name>Chameleon</ANIMALS:name>
          <ANIMALS:species>Chamaeleo chamaelon</ANIMALS:species>
        </RDF:Description>
   <RDF:Seq RDF:about="
http://www.some-fictitious-zoo.com/all-animals
" 
ANIMALS:name="Zoo Animals">
     <RDF:li>
       <RDF:Seq RDF:about="
http://www.some-fictitious-zoo.com/arachnids
">
         <RDF:li 
RDF:resource="
http://www.some-fictitious-zoo.com/arachnids/tarantula
"/>
       </RDF:Seq>
     </RDF:li>
     <RDF:li>
       <RDF:Seq RDF:about="
http://www.some-fictitious-zoo.com/birds
">
         <RDF:li 
RDF:resource="
http://www.some-fictitious-zoo.com/birds/emu
"/>
         <RDF:li 
RDF:resource="
http://www.some-fictitious-zoo.com/birds/barnowl
"/>
         <RDF:li 
RDF:resource="
http://www.some-fictitious-zoo.com/birds/raven
"/>
       </RDF:Seq>
     </RDF:li>
     <RDF:li>
       <RDF:Seq RDF:about="
http://www.some-fictitious-zoo.com/fish
">
         <RDF:li 
RDF:resource="
http://www.some-fictitious-zoo.com/fish/cod
"/>
         <RDF:li 
RDF:resource="
http://www.some-fictitious-zoo.com/fish/swordfish
"/>
       </RDF:Seq>
     </RDF:li>
     <RDF:li>
       <RDF:Seq RDF:about="
http://www.some-fictitious-zoo.com/mammals
">
         <RDF:li 
RDF:resource="
http://www.some-fictitious-zoo.com/mammals/lion
"/>
         <RDF:li 
RDF:resource="
http://www.some-fictitious-zoo.com/mammals/hippopotamus
"/>
         <RDF:li 
RDF:resource="
http://www.some-fictitious-zoo.com/mammals/africanelephant
"/>
         <RDF:li 
RDF:resource="
http://www.some-fictitious-zoo.com/mammals/llama
"/>
         <RDF:li 
RDF:resource="
http://www.some-fictitious-zoo.com/mammals/polarbear
"/>
         <RDF:li 
RDF:resource="
http://www.some-fictitious-zoo.com/mammals/aardvark
"/>
         <RDF:li 
RDF:resource="
http://www.some-fictitious-zoo.com/mammals/ninebandedarmadillo
"/>
       </RDF:Seq>
     </RDF:li>
     <RDF:li>
       <RDF:Seq RDF:about="
http://www.some-fictitious-zoo.com/reptiles
">
         <RDF:li 
RDF:resource="
http://www.some-fictitious-zoo.com/reptiles/anaconda
"/>
         <RDF:li 
RDF:resource="
http://www.some-fictitious-zoo.com/reptiles/chameleon
"/>
       </RDF:Seq>
     </RDF:li>
   </RDF:Seq>
   <RDF:Seq RDF:about="
http://www.some-fictitious-zoo.com/humans
" 
ANIMALS:name="Humans">
     <RDF:li 
RDF:resource="
http://www.some-fictitious-zoo.com/humans/sarah
"/>
     <RDF:li 
RDF:resource="
http://www.some-fictitious-zoo.com/humans/robert
"/>
   </RDF:Seq>
   <RDF:Seq RDF:about="
http://www.some-fictitious-zoo.com/sarahs-pets
" 
ANIMALS:name="Sarah's Pets">
     <RDF:li RDF:resource="
http://www.some-fictitious-zoo.com/birds/emu
"/>
     <RDF:li 
RDF:resource="
http://www.some-fictitious-zoo.com/arachnids/tarantula
"/>
   </RDF:Seq>
   <RDF:Seq RDF:about="
http://www.some-fictitious-zoo.com/roberts-pets
" 
ANIMALS:name="Robert's Pets">
     <RDF:li 
RDF:resource="
http://www.some-fictitious-zoo.com/reptiles/chameleon
"/>
     <RDF:li 
RDF:resource="
http://www.some-fictitious-zoo.com/arachnids/tarantula
"/>
   </RDF:Seq>
   <RDF:Description 
RDF:about="
http://www.some-fictitious-zoo.com/humans/sarah
" 
ANIMALS:name="Sarah">
     <ANIMALS:pets 
resource="
http://www.some-fictitious-zoo.com/sarahs-pets
"/>
     <ANIMALS:favoriteAnimal 
resource="
http://www.some-fictitious-zoo.com/birds/emu
"/>
     <ANIMALS:favoriteAnimal 
resource="
http://www.some-fictitious-zoo.com/mammals/polarbear
"/>
     <ANIMALS:favoriteAnimal 
resource="
http://www.some-fictitious-zoo.com/arachnids/tarantula
"/>
     <ANIMALS:description>
       Sarah became caretaker of the Fictitious Zoo's emu exhibit in 
2001. With so
       many emus living there, she has a lot to do!
     </ANIMALS:description>
   </RDF:Description>
   <RDF:Description 
RDF:about="
http://www.some-fictitious-zoo.com/humans/robert
" 
ANIMALS:name="Robert">
     <ANIMALS:pets 
resource="
http://www.some-fictitious-zoo.com/roberts-pets
"/>
     <ANIMALS:favoriteAnimal 
resource="
http://www.some-fictitious-zoo.com/arachnids/tarantula
"/>
     <ANIMALS:favoriteAnimal 
resource="
http://www.some-fictitious-zoo.com/reptiles/anaconda
"/>
     <ANIMALS:favoriteAnimal 
resource="
http://www.some-fictitious-zoo.com/reptiles/chameleon
"/>
     <ANIMALS:favoriteAnimal 
resource="
http://www.some-fictitious-zoo.com/mammals/africanelephant
"/>
     <ANIMALS:description>
       Robert helps visitors to the Fictitious Zoo's reptile pavilion learn
       more about some of the more unusual creatures that live there.
     </ANIMALS:description>
   </RDF:Description>
</RDF:RDF>
Sto sbagliando totalmente oppure sono sulla strada buona?
C'è da considerare anche che poi ci devono essere dei livemark dove io 
metto le labels (ma se non riesco nemmeno a mettere delle labels...)
Grazie e perdona il disturbo!

 ho provato ad utilizzare le risorse postate da te ma mi sono già perso   :-(
Suggerirei a entrambi di spostare il thread su 
mozilla.dev.general.it
,
dove avevi già scritto mi pare. Non tanto per l'OT, quanto perché quel
gruppo è nato da poco proprio per questo genere di discussioni. Se non
si inizia a popolarlo un po', rimarrà sempre poco trafficato. :)
P.S.
In generale, si tende a non pubblicare in un post il contenuto di file
troppo lunghi; ma a metterlo online e scrivere solo il link. Oppure se
la conversazione è con un utente specifico, si inviano i suddetti file
via e-mail.
-- 
~ "D'una città non godi le sette o le settantasette meraviglie,
ma la risposta che dà a una tua domanda." (Italo Calvino)

 
Mi scuso per la lunghezza del file: non riuscendo a ritrovare l'URL 
(quel file č su un sito Mozilla), ho pensato che a causa del Carnevale 
il traffico su questo ng sarebbe stato piů basso e cosě l'ho postato per 
intero (facendo danni, come sempre).  :-D   Sě, avevo postato su 
mozilla.dev
 ma il precedente post era del 28 gennaio, chi mai sarebbe 
venuto a salvarmi?    :-)   Comunque, tengo d'occhio anche qul thread. 
Grazie!!

>
mozilla.dev.general.it
Ho risposto nell'altro ng
'bye