Back to top

Autore Topic: utilizzo json [RISOLTO]  (Letto 5006 volte)

Offline devillino

  • Nuovo arrivato
  • *
  • Post: 37
    • Mostra profilo
utilizzo json [RISOLTO]
« il: 22 Ott 2013, 20:31:16 »
salva a tutti,
sto sviluppando il mio primo componente che fa uso intensivo di chiamate ajax. questa applicazione è un chat di gruppo costituita da una view che richiama automaticamente altre view per le varie operazioni.
il problema nel quale mi sono incartato è il seguente


quando richiamo il controller per eseguire una funzione se specifico il formato mi da errore 500 la richiesta HTTP, mentre se non specifico il formato mi restituisce la pagina web e non l'oggetto json. :(


posto la prima richiesta funzionante e poi la seconda:
Codice: [Seleziona]


   $.ajax({
       type: 'GET',
       url: "http://localhost/nightlife/index.php/component/jchatta?view=msgIn&format=json",
       data: "gruppo="+idgruppo+"&lastmsg="+lastmsg,
       cache: false,
       dataType: "json",
       success: function(data) {
richiama correttamente la msgIn/view.json.php (restituendomi l'oggetto json)


Codice: [Seleziona]
   $.ajax({

          type: 'GET',
          url: "http://localhost/nightlife/index.php/component/jchatta?task=msgOut.send",
          data: "msg="+$("#input").val()+"&gruppo="+idgruppo+"&lastmsg="+lastmsg,
          cache: false,
          dataType: "json",
          success: function(data) {
richiama correttamente la msgOut/view.json.php (restituendomi la pagina html con all'interno scritto quello che dovrebbe essere l'oggetto json)

entrambe le view iniziano e terminano così(metto come esempio JchattaViewMsgIn

Codice: [Seleziona]
class JchattaViewMsgIn extends JView

{
   function display( $tpl = null )
   {
      $document = JFactory::getDocument();     
      $document->setMimeEncoding('application/json');


......


/*stampa dell'oggetto json*/
   echo $this->chat;

sbaglio qualcosa di concettuale ...debugando dal controller noto che mi istanzia il model lo modifica lo lega alla view correttamente che errore commetto?? sapreste aiutarmi a capire se sbaglio a richiamare i task ecc ...la versione di joomla è la 2.5
grazie mille :)
« Ultima modifica: 10 Nov 2013, 18:50:06 da devillino »

Offline devillino

  • Nuovo arrivato
  • *
  • Post: 37
    • Mostra profilo
Re:utilizzo json
« Risposta #1 il: 22 Ott 2013, 22:19:18 »
provando a debuggare ho visto che aggiungendo il formato nella link (format=json) mi da errore in questa function
Codice: [Seleziona]

protected static function executeComponent($path) {
 ob_start();
 require_once $path;
 $contents = ob_get_contents();
 ob_end_clean();
 return $contents;
 }
ho scoperto che il il require_once richiama il master controller che richiama a sua volta il sub controller però il nome era sbagliato non più msgOut.php ...bensì msgOut.json.php ...quindi i sub controller devono essere differenziati a secondo dal formato della view a cui fanno riferimento??? (dando per default il formato html)


« Ultima modifica: 23 Ott 2013, 08:41:57 da devillino »

Offline mmleoni

  • Global Moderator
  • Instancabile
  • *****
  • Post: 5547
  • Sesso: Maschio
  • Just another *nix coder/sysadmin...
    • Mostra profilo
Re:utilizzo json [RISOLTO??]
« Risposta #2 il: 30 Ott 2013, 12:24:42 »
mi sono perso un attimo tra controller e sub controller :(

spero comunque di aver capito la domanda  ;D

quando specifichi un formato per l'output della pagina deve esserci la rispettiva view per quel formato.
parlando a SEF disattivato, per la lista dei feed del sito

/index.php?option=com_content&view=category&id=7&format=feed&type=rss&lang=it

se guardi in /components/com_content/views/category/ troverai il il file view.feed.php

pertanto se per un componente ti serve il formato pippo dovrai avere la view view.pippo.php!

provare per credere ;)


ps: ricordati che joomla lavora come convenctions over configuration, quindi occhio a tutte le inclusioni implicite


ciao,
marco



mmleoni web consulting - creazione siti web aziendali ed e-commerce avanzati - sviluppo moduli e componenti Joomla

Offline devillino

  • Nuovo arrivato
  • *
  • Post: 37
    • Mostra profilo
Re:utilizzo json [RISOLTO??]
« Risposta #3 il: 30 Ott 2013, 20:54:32 »
ciao grazie per la risposta e l'interessamento :)
mi sono perso un attimo tra controller e sub controller :(
si non ho seguito la nomenclatura standard, ho letto queto nome in qualche post e pensavo fosse così :P cmq master controller intendo il controller che sta nella cartella principale del componente mentre il sub controller quello che sta nella cartella controller e con il nome lo stesso della view.

la cosa che non sapevo che ho scoperto debuggando ed effettivamente provando a creare il nome ha funzionato è la seguente ....avendo la msgOut/view.json.php ho dovuto chiamare il controller controller/msgOut.json.php e non semplicemente controller/msgOut.php.
non so se mi sono spiegato però non sapevo di questa cosa!
« Ultima modifica: 30 Ott 2013, 20:56:22 da devillino »

mau_develop

  • Visitatore

Offline devillino

  • Nuovo arrivato
  • *
  • Post: 37
    • Mostra profilo
Re:utilizzo json [RISOLTO??]
« Risposta #5 il: 30 Ott 2013, 22:04:16 »
esatto quel post è stato l'inizio di tutto per me!!!
grazie alla tua spiegazione sono riuscito a fare molto :P :) sia in questo componente che in altri (sono ancora all'inizio sto imparando).
Per il formato della pagina non ho trovato molte info, così ho dovuto leggere e poi provando e debuggando mi sono date delle risposte ...volevo chiedere ora se il tutto sta funzionando solo per caso oppure torna ciò che ho scritto sopra :)

 



Web Design Bolzano Kreatif