salve ragazzi sto sbattendo la testa su un comportamento strano che ha joomla quando esegue un function del framework.
mi spiego meglio, in pratica la mia applicazione richiama tramite ajax un oggetto json costruito utilizzando il pattern MVC; seguendo tutto il flusso il mio componente fa quello che deve fare: restituisce l'oggetto emodifica una tabella. purtroppo però questo fin quando non entra in un include "debug.php" per eseguire la form:
public function __destruct()
{
// Do not render if debugging or language debug is not enabled
if (!JDEBUG && !JFactory::getApplication()->getCfg('debug_lang'))
{
return;
}
....
....
....
appena fa il return esce dal debug (uso eclipse), però mi trovo la tabella prima valorizzata correttamente, modificata sbiancata dei campi non chiave. Qualche idea???
Per modificare la tabella non uso i CRUD in quanto per la mia applicazione non mi serviva un approcio simile.
Penso che cmq il problema sia legato a qualche malfunzionamento dovuto alla sincronizzazione del server web che lancia i vari processi in parallelo.(ipotesi che mi vien e in mente a valle del fatto che in eclipse vedo vari rami sospesi nella coda dello stack e se faccio proseguire prima uno e poi un'altro varia la valorizzazione della tabella)
non so se sono stato chiaro, nel caso posto il metodo del controller richiamato dalla task
public function load() {
// Initialise variables.
$app = JFactory::getApplication();
$model = $this->getModel('msgIn');
$view = $this->getView("msgIn", "json" );
$user = JFactory::getUser();
$db = JFactory::getDBO();
$gruppo = JRequest::getVar('gruppo');
$jsLMsg = JRequest::getVar('lastmsg');
/*prelievo dati*/
$model->setOperazione(1);
$model->setgruppo($gruppo);
$model->setlastidmsg($jsLMsg); // relativo all'user lato client
$dbLtmsg = $model->getlastidmsg(); // relativo all'user lato db
$LChatMsg = $model->getLChatMsg(); // relativo alla chat
/*update dati*/
/* step 1)
*devo trovare la riga con il flag ultimo gruppo aggiornato e
*sbianchettare il campo*/
$query = $db->getQuery(true);
$query
->update('#__jgroup')
->columns('lastgrp')
->set( $db->quoteName('lastgrp') . '= \'\'')
->where('lastgrp=1','AND')
->where('userid='.$user->id);
$db->setQuery($query);
$db->query();
/* setp 2)
*flaggare il campo ultimo gruppo letto in canna*/
$query = $db->getQuery(true);
$query
->update('#__jgroup')
->columns('lastgrp')
->set( $db->quoteName('lastgrp') . '= \'1\'')
->where('grpid='.$gruppo,'AND')
->where('userid='.$user->id);
$db->setQuery($query);
$db->query();
/* step 3)
*aggiornare il contatore degli ultimi msg letti del gruppo*/
$query = $db->getQuery(true);
$query
->update('#__jgroup')
->columns('lastidmsg')
->set( $db->quoteName('lastidmsg') . '=\''. $LChatMsg .'\'')
->where('grpid='.$gruppo,'AND')
->where('userid='.$user->id);
$db->setQuery($query);
$db->query();
/*lego model alla view */
$view->setModel( $model, true );
$view->display();
return true;
}
e invece mi trovo la tabella #__jgroup valorizzata con valori sbagliati ...a debug ho netato che fin quando l'applicazione è nel mio componente tutto è ok il problema nasce quando esegue il resto dei metodi necessari per il framework.