Pannello di Controllo Moderatore ]

[Risolto] Nome dell'add-on invariabile

Discussioni sull'uso di estensioni esterne con OpenOffice

[Risolto] Nome dell'add-on invariabile

Messaggioda giuserpe » sabato 24 novembre 2018, 11:02

Ciao,
da quando ho introdotto l'uso di Python nello sviluppo di LeenO (http://www.leeno.org) sono costretto a pubblicare l'estensione con il nome di LeenO.oxt perdendo, così, le informazioni relative al numero di versione nel nome del file.
Richiamo gli script dal menu Addons.xcu in questa forma:
Codice: Seleziona tutto   Espandi visualeStringi visuale
<value>vnd.sun.star.script:LeenO.oxt|pyLeenO|pyleeno.py$DlgMain?language=Python&amp;location=user:uno_packages</value>

in cui LeenO.oxt|pyLeenO|pyleeno.py indica il percorso di ricerca relativo di installazione e DlgMain è lo script da avviare. Cambiando il nome del file da installare in LeenO-3.19.1.oxt l'istallazione va a buon fine, ma tutti gli script Python vanno in errore in quanto il percorso di ricerca risulta irraggiungibile. Mentre le funzioni scritte in Basic non hanno problemi.
Per risolvere dovrei cambiare il percorso di ricerca che indico in Addon.xcu e dovrei farlo ad ogni nuova pubblicazione di LeenO.
Ho sbirciato in altri add-on scritti in Python ed ho notato che nel menù i comandi sono richiamati, ad esempio, in questa forma:
Codice: Seleziona tutto   Espandi visualeStringi visuale
<value>service:apso.python.script.organizer.impl?execute</value>

e continuano a funzionare correttamente anche cambiando il nome del file di installazione da apso.oxt a ciccio_apso.oxt.
Intuisco che in questo caso lo script è trattato come servizio.
Com'è possibile farlo?
Ultima modifica di charlie il sabato 12 gennaio 2019, 19:46, modificato 3 volte in totale.
Motivazione: Aggiunta spunta verde
LibreOffice 6.* su Windows e Linux
Avatar utente
giuserpe
 
Messaggi: 105
Iscritto il: mercoledì 23 aprile 2014, 12:53

Re: Nome dell'add-on invariabile

Messaggioda hubert lambert » mercoledì 9 gennaio 2019, 23:55

Ciao Giuserpe,

Per utilizzare una url col protocol "service:", quello servizio deve implementare l'interfaccia XJobExecutor.
L'url del tipo "service:implementation.name?argument" chiamerà il suo singolo metodo "trigger", passando in argomento il valore dato dopo il "?", qui "argument" (vedi l'esempio )
Spero di essere stato chiaro... ;) .

Cordiali saluti.
OpenOffice 4.1.2/4.1.4 | LibreOffice 5.4.4/6.0
Win7 + LinuxMint
hubert lambert
Volontario
Volontario
 
Messaggi: 144
Iscritto il: venerdì 9 giugno 2017, 13:48

Re: Nome dell'add-on invariabile

Messaggioda giuserpe » sabato 12 gennaio 2019, 13:15

Grazie Hubert,
avevo abbandonato l'idea perché ho trovato in giro esempi con codice Python contenente un unico script, mentre LeenO ne contiene centinaia. Vedrò cosa riesco a ricavarci e se riesco ad estendere la soluzione al mio caso.

Saluti.
LibreOffice 6.* su Windows e Linux
Avatar utente
giuserpe
 
Messaggi: 105
Iscritto il: mercoledì 23 aprile 2014, 12:53

Re: [Risolto] Nome dell'add-on invariabile

Messaggioda hubert lambert » domenica 13 gennaio 2019, 14:11

Normalmente, il metodo unico "trigger" riceve tutte le url e, secondo l'argomento, lancia la funzione corrispondente.
Se l'argomento è il nome di quella funzione, sarà più semplice ancora, con una singola riga:
Codice: Seleziona tutto   Espandi visualeStringi visuale
def trigger(self, argomento):
    globals()[argomento]()
OpenOffice 4.1.2/4.1.4 | LibreOffice 5.4.4/6.0
Win7 + LinuxMint
hubert lambert
Volontario
Volontario
 
Messaggi: 144
Iscritto il: venerdì 9 giugno 2017, 13:48


Torna a Estensioni

Chi c’è in linea

Visitano il forum: Nessuno e 1 ospite