Joomla.it Forum

Non solo Joomla... => Sviluppo => : sairan 02 Feb 2012, 13:29:56

: Utilizzo delle libreria javascript mootree.js in un componente joomla 1.7
: sairan 02 Feb 2012, 13:29:56
Utilizzando la libreria mootree dovrei realizzare, lato backend, un componente con funzione di navigazione ad albero che, selezionando il link del generico ramo di navigazione, dovrebbe attivare una view passando come parametro l'id del ramo stesso.
Nella funzione che genera l'albero ho utilizzato la seguente sezione javascript per l'attivazione della view associata al link:
$document->addScriptDeclaration("
    window.onload = function() {
        tree = new MooTreeControl({
                div: 'docfolder-tree',
                mode: 'folders',
                theme:'../../folder.gif',
                grid: true,
                onSelect: function(node, state) {
                    var url='\"'+node.data.url+'\"; target=\"' +node.data.target+'\"';       
                    window.alert('location.href: '+url);
                    if (node.data.url) location.href=+url;
                }
        },{
                text: 'Root Node',
                open: true
        });
        tree.adopt('sourceTree');
        return false;   
    }   
");

nonostante l'url sia corretto, l'attivazione dello stesso non esegue la view specificata ma visualizza la home page del sito lato client e presenta nella barra indirizzo del browser "http://localhost/JoomlaCtrh1525/jupgrade/administrator/NaN".
Ho provato la funzionalità senza far generare l'albero con mootree e funziona correttamente.
Sembra che il passaggio attraverso javascript faccia perdere i riferimenti in joomla.

Qualche suggerimento?

Grazie
: Re:Utilizzo delle libreria javascript mootree.js in un componente joomla 1.7
: webbati 07 Feb 2012, 02:10:16
così a colpo d'occhio delle 2 di notte direi che qua:

:
if (node.data.url) location.href=+url;

non ci va il '+'
: Re:Utilizzo delle libreria javascript mootree.js in un componente joomla 1.7
: sairan 08 Feb 2012, 22:23:26
Si,  è proprio di troppo!

Grazie per il contributo.