Joomla.it Forum

Non solo Joomla... => Sviluppo => : map 01 Sep 2011, 12:20:18

: Componente Ajax Modulo
: map 01 Sep 2011, 12:20:18
Ciao a tutti,


Sto realizzando un modulo che tramite javascript carica in un div delle pagine.php contenute nella cartella tmpl.


Il modulo funziona, ma le pagine caricate non sono accettate da joomla perchè chiaramente non sono caricate tramite require_once !


Se non uso "defined( '_JEXEC' ) or die( 'Restricted access' ); " le pagine si caricano.


Per caricarle uso questo script



   window.addEvent('domready', function()
  {
   
   $$('.LoadMod').addEvent('click', function(event)
    {
      event.stop();
   $('multi_option').load(this.get('href'));
  });
   


  });


dove multi_option è il div in cui vengono caricate le pagine tramite questo link :




<a href="modules/mod_multi_menu/tmpl/top.php" onclick="" class="LoadMod">Logo e Titolo


Esiste un modo per integrare le pagine ?
: Re:Modulo e javascript
: mmleoni 02 Sep 2011, 08:39:15
ciao,
 cerca di spiegarti meglio. che tipo di pagine vuoi caricare? che cosa vuoi fare?

scusa, la frase "ma le pagine caricate non sono accettate da joomla perchè chiaramente non sono caricate tramite require_once" non ha significato: le pagine caricate debbono accedere al frame work di joomla?

ciao,
marco

: Re:Modulo e javascript
: map 02 Sep 2011, 11:03:54
So di non essermi spiegato bene, cerco di spiegare cosa vorrei fare. Ho realizzato un Modulo che oltre al template di default ha altre "viste quindi dei file.php " che dovrebbero essere caricate tramite dei link in un div specifico del Template del sito.


Ora per caricare le varie viste uso un javascript che fa un load nel div che voglio ma  chiaramente non passa tramite il Frame work di joomla e quindi non funziona.


Prima domanda : si può creare un modulo con più viste o devo fare un componente ?


Secondo, se si può come creo il link del tipo "index.php?modulo&vista" e posizionare la vista nel div tramite java ?


So che è difficile capire la mia richiesta, vi ringrazio in anticipo.












: Re:Modulo e javascript
: mmleoni 04 Sep 2011, 08:54:47
no, non puoi vare ciò che dici. devi caricare ed elaborare il codice localmente (nel modulo) e poi inserire l'html generato nel div in questione. se voui farlo senza ricaricare la pagina devi creare un componente, da richiamare via ajax dal modulo; sarà però sempre il modulo a inserire il codice restituito dal componente nel div in questione.

la via più semplice è quella di inserire il modulo anche ora c'è il div da gestire: è la strada più semplice.

ciao,
marco

: Re:Modulo e javascript
: map 04 Sep 2011, 16:04:54
Immaginavo, infatti ho creato 2 moduli.


Il primo con i link in una posizione e il secondo nella posizione in cuoi volevo far caricare le varie viste....


Ora provo ad includere java per non far ricaricare la pagina per ogni vista....


Grazie lo stesso
: Re:Modulo e javascript
: map 28 Sep 2011, 16:22:27
Ho creato un componente con tre view e tmpl.


Ho creato un modulo che tramite ajax mootools carica la view al suo interno.



var elements = $('option');
 url = 'index.php?option=com_optionuser&tmpl=component&view=logo'
 var a = new Ajax( url, {
 method: 'get',
 update: elements,
 onRequest: function() {
    this.options.update.setHTML("<img id='loader'  src=images/ajax-loader.gif>");
},
   onSuccess: function() {
      
      },
 }).request();


I Problemi :


Se carico la view del componente dal modulo come da esempio è come se fossi fuori dal frameworks joomla, cioè non riesco a passare più nessuna variabile...


Mentre se con lo stesso metodo carico una view del componente da un' altra view  tutto funziona ....


Soluzioni ?


Grazie Max







: Re:Componente Ajax Modulo
: map 29 Sep 2011, 20:41:59
Faccio un riepilogo :


Obiettivo "Creare un componente che carica al suo interno tramite ajax varie viste del tmpl ;


Caricare il componente in una posizione specifica del sito Web ".


Ho creato il componente che  carica le varie viste del template tramite ajax , ogni template ha un model con le varie funzioni, se carico il componente nella sua posizione originale tutto funziona perfettamente.


Il Problema:


Per caricare il componente nella posizione che voglio, ho creato un modulo che tramite ajax carica il componente in un div, e ora vengono fuori i problemi.


Tutte le funzioni dei model del componente  non vengono eseguite e nemmeno gli script, ho notato che se invece uso il modulo per far eseguire le funzioni più o meno funziona.


Esiste un metodo meno complicato ?



: Re:Componente Ajax Modulo
: nelluz 08 Feb 2012, 12:27:18
anch'io ho il suo stesso problema.... quando si fanno le chiamate ajax è come se facesse le richieste al file php in modo esterno a joomla....




come si potrebbe fare?
: Re:Componente Ajax Modulo
: mau_develop 08 Feb 2012, 12:42:10
mmmhhh... non ho capito l'affermazione....
joomla usa l'mvc quindi quelle che tu dici "chiamate" le fa sempre sull'entry point o in pratica al controller.
M.
: Re:Componente Ajax Modulo
: nelluz 08 Feb 2012, 14:16:40
si ma si può fare un modulo in mvc? o per forza componenti?


è perchè io avevo l'esigenza di fare un modulo con un form che quando si preme il submit non fa aggiornare l'intera pagina ma si aggiorna solo il modulo...


allora x quello avevo pensato ad ajax, solo che se faccio nello script
xmlhttp.open("GET","modules/mod_tips/helper.php?credit="+credit,true);


questo mi restituisce "Restricted access" perchè la pagina helper.php lo tratta come se fosse un file esterno a joomla...


seguendo il pattern mvc riesco a risolvere i problemi?
: Re:Componente Ajax Modulo
: mau_develop 08 Feb 2012, 15:50:55
http://forum.joomla.org/viewtopic.php?t=257522
http://nodwell.net/in-dev/ajax-in-joomla

o + o - come vuoi far tu

http://www.wrox.com/WileyCDA/Section/id-306544.html

M.
: Re:Componente Ajax Modulo
: nelluz 08 Feb 2012, 16:02:07
ti ringrazio tantissimo per l'aiuto e per le risposte veloci....


ho + o - in mente come procedere


quegli esempi in fin dei conti si riferiscono a componenti.... quindi caso mai, intanto mi creo il componente,
e poi vedo se riesco a creare il modulo che si va a prendere la view del componente....


in teoria dovrebbe funzionare così, devo solo seguire le guide e trasformare helloword nel mio componente...


Spero di riuscirci :D


Grazie mille intanto



: Re:Componente Ajax Modulo
: mau_develop 08 Feb 2012, 18:36:30
il discorso è che per mantenere la "filosofia" di joomla il modulo è una rappresentazione statica di qualcosa ottenuto dinamicamente.
Non è un discorso assoluto però il concetto di modulo (imo) è chessò ... ultimi articoli... il meteo...; l'utente non ha iterazione se non la possibilità di variare parametri predefiniti e tramite richieste ajax in background aver la possibilità di vedere un risultato diverso senza ricaricare la pagina, esempio tipico le maps.... o un calendarietto; se però il calendarietto dovesse permettere un appunto è sbagliato implementarlo in un modulo ma occorrerebbe il supporto di un componente.... anche se pasticciando e fregandosene di perdere performances e sicurezza puoi fare schifezze ovunque e funzionerebbero pure :)

Joomla inoltre ha metodi per manipolare le richieste ajax codificandole o decodificandole, ad esempio, json.

Anche nelle docs ufficiali trovi un esempio.

M.