Back to top

Autore Topic: lanciare funzioni via url  (Letto 2387 volte)

Offline iacoposk8

  • Appassionato
  • ***
  • Post: 529
    • Mostra profilo
lanciare funzioni via url
« il: 18 Dic 2012, 16:49:52 »
Ciao a tutti! c'è modo di creare un plugin o un modulo o un componente, dove scrivendo l'url tipo:
index.php?option=plg_test&task=pippo mi apre il file plg_test.php e mi lancia la funzione php di nome pippo(), eseguendo solo quello, senza caricarmi il template e tutte le altre cose grafiche o superflue.
grazie :)
Iacopo Guarneri

mau_develop

  • Visitatore
Re:lanciare funzioni via url
« Risposta #1 il: 18 Dic 2012, 18:11:54 »
option=plg_test
--------------------
tu non hai nemmeno idea di cosa sia un plugin....

Offline iacoposk8

  • Appassionato
  • ***
  • Post: 529
    • Mostra profilo
Re:lanciare funzioni via url
« Risposta #2 il: 19 Dic 2012, 09:13:06 »
ma credi davvero di poter aiutare qualcuno con questi commenti?
tutte le volte è così, non mi hai mai aiutato, non voglio litigare ma davvero, lo sai anche te che non è utile un commento così, quindi non scrivermi nemmeno più, davvero, basta...
c'è modo di creare un plugin O un modulo O un componente, dove scrivendo l'url TIPO: ...
Iacopo Guarneri

Offline iacoposk8

  • Appassionato
  • ***
  • Post: 529
    • Mostra profilo
Re:lanciare funzioni via url
« Risposta #3 il: 19 Dic 2012, 09:52:41 »
se io scrivo
index.php?option=com_test&task=test.pippo
(così ti piace di più)
lancio si la funzione specifica ma in più mi carica il template e tutti i moduli e i plugin.
quindi dubitando (magari erroneamente) che si potesse fare una cosa analoga ai componenti, senza caricare template ecc... mi son detto: magari i plugin lo possono fare, non avendo mai approfondito la programmazione di essi, pur sapendo cosa fanno...
e poi, sicuramente erroneamente mi son detto, chiediamo sul forum
« Ultima modifica: 19 Dic 2012, 09:59:22 da iacoposk8 »
Iacopo Guarneri

Offline simone83

  • Appassionato
  • ***
  • Post: 362
  • Sesso: Maschio
    • Mostra profilo
Re:lanciare funzioni via url
« Risposta #4 il: 19 Dic 2012, 10:44:07 »
se vuoi solo eseguire la funzione del componente basta che metti un die in fondo ad essa e non t carica altro.
I plugin o moduli non si richiamano direttamente, i plugin si richiamano solo triggerando un evento, i moduli nel template o tramite funzioni apposite.
 Scusa ma non te la prendere ma anche io ho avuto la stessa reazione di mau_develop quando ho letto questo post. Hai 500 post su questo forum e non ci credo che non hai ancora capito come funziona joomla nonostante tu ci traffichi cosi spesso, forse dovresti iniziare a prendere una buona guida e studiarla per capire meglio l'architettura. poi fai come vuoi. ciao
BRAINCODE
Da Psd a Joomla - Sviluppo componenti joomla - SEO con Joomla
x-brain

Offline iacoposk8

  • Appassionato
  • ***
  • Post: 529
    • Mostra profilo
Re:lanciare funzioni via url
« Risposta #5 il: 19 Dic 2012, 11:31:31 »
magari mi sono posto male facendo l'esempio con il plugin che sarebbe stato impossibile... però era un tentativo.. vedi mai che si poteva fare...
comunque mettere il die non è una soluzione secondo me... io voglio eseguire solo la funzione, senza caricare moduli e template non per un fattore estetico, ma di prestazione... se noi mettiamo in un modulo in una posizione tale che venga caricato prima del componente e scriviamo sleep(10); dopo 10 secondi vedremo il risultato della funzione del componente... (questo per dire che una chiamata a una funzione può risultare lentissima su alcuni siti)
però se devo fare tante chiamate ajax a questa funzione le prestazioni inizierebbero a risentirne parecchio, specie se iniziano a essere numerosi gli utenti che richiedono questa pagina
Iacopo Guarneri

Offline simone83

  • Appassionato
  • ***
  • Post: 362
  • Sesso: Maschio
    • Mostra profilo
Re:lanciare funzioni via url
« Risposta #6 il: 19 Dic 2012, 11:47:21 »
Ti posso assicurare che la chiusura dell'applicazione per le chiamate ajax è la nuova prassi di joomla, prima si faceva una richiesta con format=raw nell'url e andare, adesso non funziona piu cosi.

Tanto per esempio questa è la funzione di ordinamento delle categorie in ajax del com_categories di joomla 3.0
Codice: [Seleziona]
public function saveOrderAjax()
    {
        JSession::checkToken() or jexit(JText::_('JINVALID_TOKEN'));

        // Get the arrays from the Request
        $pks   = $this->input->post->get('cid', null, 'array');
        $order = $this->input->post->get('order', null, 'array');
        $originalOrder = explode(',', $this->input->getString('original_order_values'));

        // Make sure something has changed
        if (!($order === $originalOrder)) {
            // Get the model
            $model = $this->getModel();
            // Save the ordering
            $return = $model->saveorder($pks, $order);
            if ($return)
            {
                echo "1";
            }
        }
        // Close the application
        JFactory::getApplication()->close();

    }

Vedi che alla fine esegue  JFactory::getApplication()->close(); che chiude l'applicazione

BRAINCODE
Da Psd a Joomla - Sviluppo componenti joomla - SEO con Joomla
x-brain

Offline iacoposk8

  • Appassionato
  • ***
  • Post: 529
    • Mostra profilo
Re:lanciare funzioni via url
« Risposta #7 il: 20 Dic 2012, 14:52:50 »
ecco! ora si :) mi sembrava impossibile che per lanciare una funzione tramite ajax si dovesse richiamare altre 1000 cose inutili, grazie :)
Iacopo Guarneri

 



Web Design Bolzano Kreatif