Joomla.it Forum
Non solo Joomla... => Sviluppo => : barra 13 Jan 2010, 10:04:44
-
Premessa: Non conosco molto PHP, conosco pochissimo JoomlaMVC ma ci metto impegno e buona volontà!
Detto questo:
Voglio sviluppare un componente per la gestione delle liste nozze all'interno di un'agenzia viaggi (lavoro fatto per una parente). Il tutto già gira da qualche tempo grazie a virtuemart e alcune parti in php che però sono 100% esterne a joomla.
Ora vorrei integrarle in joomla, completarne lo sviluppo e rilasciare il componente.
Ho creato la struttura di base per il componente: views, models ecc. Tutto funziona digitando l'url (sito/index.php?option=com_listenozze&view=agenzia)
Mi sono però arenato a causa di un problema (certamente banale) con le query:
defined('_JEXEC') or die();
jimport( 'joomla.application.component.model' );
/**
* Hello Model
*
* @package Joomla.Tutorials
* @subpackage Components
*/
class listenozzeModelagenzia extends JModel
{
function getLista()
{
$db =& JFactory::getDBO();
$value="335";
$query = "
SELECT COUNT(*)
FROM ".$db->nameQuote('#__sposi_accesso')."
WHERE ".$db->nameQuote('id_lista')." = ".$db->quote($value).";
";
$db->setQuery($query);
$row = $db->loadRow();
print_r($row);
return $row;
}
}
In teoria questo codice (preso dal file agenzia.php presente nella cartella models) dovrebbe fare una query nella tabella jos_sposi_accesso per recuperare la riga con id = $value (per il numero 335) e riportarlo alla vista con il comando 'return $row' come array.
Il problema è che la vista non mi visualizza il contenuto dell'array:
<?php echo $this->row[0]; ?>
Dove sbaglio?
Una volta capito come funzionano questi passaggi penso di poter procedere rapidamente nello sviluppo ma purtroppo non ho molto tempo da dedicare a questa cosa....
P.s. La vista ha lo stesso nome del models quindi dovrebbe essere caricata correttamente (e la conferma arriva dal fatto che se ci sono errori nel codice del modello la vista non viene caricata).
Grazie per l'aiuto, ricompenserò con il rilascio del componente quando completo ;D
-
...commenta il return e dimmi cosa printa... null? bool? niente?
prova a togliere quei quote e namequote...
M.
ps dai un'occhiata qui:http://help.joomla.org/content/view/710/125/
-
Tolto il return non cambia nulla.
togliendo i quote e i namequote ottengo questo codice:
class listenozzeModelagenzia extends JModel
{
function getLista()
{
$db =& JFactory::getDBO();
$value='335';
$query = "
SELECT COUNT(*)
FROM ".$db->('#__sposi_accesso')."
WHERE ".$db->('id_lista')." = ".$db->($value).";
";
$db->setQuery($query);
$row = $db->loadRow();
print_r($row);
/*return $row;*/
}
}
Quando vado a ricaricare la pagina non viene caricata! ora leggo il link che mi hai mandato, grazie.
-
.$db->('#__sposi_accesso')."
perchè fai questa cosa?
FROM #__sposi_accesso e basta, e così anche dove hai anteposto $db
M.
-
In teoria questo codice (preso dal file agenzia.php presente nella cartella models) dovrebbe fare una query nella tabella jos_sposi_accesso per recuperare la riga con id = $value (per il numero 335) ...
NO :(
restituisce 1 se esiste la riga con id_lista=$value, altrimenti 0, togli il count!! ;)
ciao,
marco
-
Azz grazie per la dritta, ho corretto ma non mi cambia molto....
Mi sorge un dubbio: nella vista basta questo:
<?php echo $this->row[0]; ?>
per visualizzare il contenuto dell'array $row?
Non voglio farvi perdere troppo tempo, magari è megli che mi recupero un pò di documentazione fatta bene (quella che ho letto era assurda, sviluppavano un'esempio dove tutto aveva lo stesso nome: componente, view, models, variabili...), avete consigli?
-
nella vista basta questo...
solo se hai istanziato/associato $row alla classe della view.
1.
usa sempre $db->query() e controlla il valore di ritorno, così scopri eventuali errori nella query: è una buona norma di programmazione.
2.
fatti un giro sul mio sito, magari trovi qualcosa di interessante ;)
ciao,
marco
-
Guarda, io utilizzo i metodi loadObjectList o loadAssocList per estrarre contenuto da una tabella; uno mi da una lista di oggetti, un altro mi da una lista di array associativi.
Con questi non incontro problemi.
Probabilmente potrebbe essere sbagliato stampare $row[0]; cioè magari la sintassi giusta è $row[id]...la print_r cosa ti stampa?
Se ti stampa qualcosa, il problema è dopo l'esecuzione di quel metodo, se non ti stampa nulla il problema è nella query. Utilizza inoltre i nomi delle tabelle, senza fare $db->('#__sposi') ma metti direttamente #__sposi.
-
noo che figata
anch'io sto sviluppando un componente per gestire listenozze online
ma per un negozio di oggettistica
www.lacittadelsolealtamura.it
e manco a farlo apposta anche il mio si chiama com_listanozze (che fantasia no??) ;-))
-
Guarda il mio progetto è "quasi morto". O meglio: ho qualcosa di funzionante e che potrebbe essere completato abbastanza in fretta ma i diretti interessati non sono in grado di darmi un minimo di supporto per specifiche, test ecc.
Praticamente vorrebbero una cosa come pare a loro senza però avere tempo e voglia per fornirmi specifiche e simili. Quando avrò tempo finirò il progetto e magari lo pubblico ma non ho idea dei tempi. Se ti interessa possiamo organizzarci in qualche modo per aiutarci.
-
ma i diretti interessati non sono in grado di darmi un minimo di supporto per specifiche, test ecc.
Praticamente vorrebbero una cosa come pare a loro senza però avere tempo e voglia per fornirmi specifiche e simili.
Caro barra,
devi pensare che mmleoni e mau_develop sono utenti come te, come me, come tutti. In questo caso loro ti hanno scritto alcuni suggerimenti, per quanto fosse loro possibile (anche magari per questioni di tempo) o per quanto loro abbiano voluto aiutarti, non si può pretendere l'aiuto delle persone, ma lo si può cortesemente chiedere.
Ritorno sull'intervento di mmleoni, in realtà di dà un buon suggerimento, infatti sul suo sito puoi trovare un generatore di componenti per Joomla 1.5, che ti può aiutare nella creazione del tuo componente e potrebbe aiutare anche vitotafuni, anche se da quello che ho visto sul suo sito sembra funzionare già.
-
8) Mi sa che sono espresso male....
Con "i diretti interessati" intendevo gli "pseudoclienti" (pseudo perchè in realtà non mi pagano) che mi hanno chieesto le specifiche della soluzione di cui stavamo discutendo.
Anzi ne approfitto per ringraziarvi perle dritte che mi avete dato ;D
-
ti avevo frainteso barra, perdonami.
Tuttavia ribadisco il mio consiglio, dai un'occhiata al generatore di mmleoni.
-
Tranquillo, l'ho provato ma sono su linux e con wine non sono riuscito a farlo andare.
L'ho testato rapidamente da windows e fa certamente al caso mio. Come dicevo il progetto è quasi certamente morto e non ho tempo da "perderci" ora, soprattutto visto che il lavoro già fatto a distanza di un paio di mesi non è ancora stato visionato da chi mi ha chiesto un'aiuto....
-
... ma sono su linux e con wine non sono riuscito a farlo andare ...
perché wine? usalo sotto mono e gira tranquillamente ;)
ciao,
marco
-
si nel mio caso è un po diverso in quanto il componente è praticamente finito... vedrò di mettere una copia su un mio server così vi faccio dare un'occhiata al front-end ajax che ha impressionato parecchia gente! ci abbiamo lavorato in 2 per mesi ma ne è valsa la pena!
ma i diretti interessati non sono in grado di darmi un minimo di supporto per specifiche, test ecc.
Praticamente vorrebbero una cosa come pare a loro senza però avere tempo e voglia per fornirmi specifiche e simili.
Caro barra,
devi pensare che mmleoni e mau_develop sono utenti come te, come me, come tutti. In questo caso loro ti hanno scritto alcuni suggerimenti, per quanto fosse loro possibile (anche magari per questioni di tempo) o per quanto loro abbiano voluto aiutarti, non si può pretendere l'aiuto delle persone, ma lo si può cortesemente chiedere.
Ritorno sull'intervento di mmleoni, in realtà di dà un buon suggerimento, infatti sul suo sito puoi trovare un generatore di componenti per Joomla 1.5, che ti può aiutare nella creazione del tuo componente e potrebbe aiutare anche vitotafuni, anche se da quello che ho visto sul suo sito sembra funzionare già.
-
attendiamo curiosi... ;)
ciao,
marco