Joomla.it Forum
Non solo Joomla... => Sviluppo => : lory1990 30 Jun 2010, 17:02:17
-
Ciao a tutti! inizio questo [WIP] (Work in progress) sulla mia prima creazione joomla: un componente basato su eventlist e CB che permetta ad una persona di estrapolare alcuni dati riguardanti i partecipanti ad un dato evento, inserire tutto ciò in una tebella ed esportare il tutto in word o excel!
Inizierò a programmare il frontend utente: la mia idea è quella che l'utente abbia un menu (di quelli standard di joomla) con 3 voci: Impostazioni, Statistiche, Segui un evento.
quindi ho creato questo controller principale
<?php
// No direct access
defined( '_JEXEC' ) or die( 'Restricted access' );
jimport('joomla.application.component.controller');
class ReindController extends JController
{
function statistiche()
{
}
function impostazioni()
{
}
function aggiungi()
{
}
}
Quindi per raggiungere le varie funzioni scriverò: index.php?option=com_esami&task=statistiche
Adesso però non so come passare al Model di queste funzioni e non so se implementare l'interfaccia grafica (form per l'inserimento di un nuovo evento) sulla view o sul model.
Spero mi seguirente in tanti con questo mio progetto!
-
;D ;D se freni sì... altrimenti nel fosso con te nn ci vengo!
prima di partire a scrivere codice devi organizzare la struttura, chi farà cosa.
Il componente metterà qualcosa a disposizione del lato pubblico? sarà solo amministrativo?
La visualizzazione del menù sarà un "monoblocco" col componente o avrà un modulo?
Ti servirà anche un plugin?
Poi guarda il tool scritto da Marco che genera automaticamente a seconda del progetto una serie di cartelle e files standard dove troveranno posto i tuoi script.
Fatto questo devi progettare un minimo di logica, quante view ti serviranno etc...
te vai troppo veloce.. ;)
M.
-
Ok provo a fare 1 po' di progettazione:
Frontend
- view home che reindirizza a tre view "secondarie" (quindi entro con il controller principale qui)
- view per "statistiche"
- view per aggiungere un blocco eventi
- view per le impostazioni
- view per "modifica un blocco eventi" all'interno delle impostazioni
Backend
da definire....
Per quanto rigiarda il menù pensavo di avvlermi dei meu joomla, senza modulo! quando voglio scegliere una nuova voce menu nell'albero ce ne saranno alcune riguardanti il componente.... ma questo viene dopo!
Sono riuscito a creare la view home e sto scrivendo il codice che deve venire "visualizzato" li, quando mi serviranno dei dati dal database li devo far prendere al model se non ho capito male no?
-
...quella no è progettazione... è un contentino per me che te l'ho chiesto ;)
Frontend
* view home che reindirizza a tre view "secondarie" (quindi entro con il controller principale qui)
* view per "statistiche"
* view per aggiungere un blocco eventi
* view per le impostazioni
* view per "modifica un blocco eventi" all'interno delle impostazioni
Backend
da definire....
bene, fai un bell'albero delle cartelle e dei file che ti occorrono, non è necessario mettere tutto ma almeno avere un idea.
se usi il tool di Marco ti semlifichi la vita.
M.
-
lory!!!!
in un progetto la fase di analisi e progettazione richiede tipicamente tra il 60% e l'80% del tempo, il resto è coding e debug. se parti così difficilmente arriverai a scrivere qualcosa di 'informaticamente' accettabile :(
ti consiglio di studiare la documentazione di Joomla! sulla creazione delle estensioni perché una frase tipo:
non so se implementare l'interfaccia grafica (form per l'inserimento di un nuovo evento) sulla view o sul model
è indice di una leggera ;) confusione sui ruoli degli oggetti in questione...
in bocca al lupo e buon lavoro.
ciao,
marco
-
Va bene così, è solo l'inizio!
[allegato vecchio più di un anno eliminato automaticamente]
-
Sto facendo progressi! ma volevo chiedere se un controller può reindirizzare a model diversi!! e se si come !
grazie!
-
Ciao sono sempre qui, ogni giorno apprendo di più!
nel controller principale (controller.php) ho creato una funzione
function autorizzato(){
$view =& $this->getView('Autorizzato');
}
Ho creato tutti i files:
views/autorizzato/view.html.php
views/autorizzato/tmpl/default.php
dentro view.php c'è scritto:
class EventManagerViewAutorizzato extends JView
{
function display($tpl = null)
{
parent::display($tpl);
}
}
Ma mi viene dato questo errore:
500 - Si è verificato un errore. View not found [name, type, prefix]: Autorizzato,,eventmanagerView
-
come si chiama esattamente il componente? com_ ..... ?
M.
-
com_eventmanager
-
noto con dispiacere che da questo problema anche se cerco di farlo da altre funzione con altre viste
Posto i files che ho creato, non c'è il file di installazione! vanno messi lato backend
---------
edit: all ok!!
la sintassi è: $view =& $this->getView('Autorizzato', 'html');
-
Continuo il mio sviluppo (sta diventando interessante!!) :)
Mi trovo difronte a questo errore:
Fatal error: Call to a member function numero() on a non-object in C:\xampp\htdocs\Joomla\administrator\components\com_eventmanager\views\privilegicb\view.html.php on line 19
quando vado a caricare una view il cui codice è
$model =& $this->getModel('PrivilegiCB');
$a = $model->numero();
$this->assingRef('dati',$a);
e nel model c'è :
function numero();
{
$a= "numero";
return $a;
}
Perchè mi parla di oggetti se la funzione non restituisce alcun oggetto?
-
i test, se devi iniziare da zero usa l'approccio test first per dare una qualità e coscenza infinitamente maggiore a ciò che scrivi
-
cosa è l'approccio test first?
-
http://en.wikipedia.org/wiki/Test-driven_development
In soldoni, con una sintesi affatto esaustiva: scrivi i test prima del codice ;)
-
Vedo, ho letto ma... qui non è un problema di approccio penso! il problema è che non capisco dove sbagio!! ho fatto questo test di "passaggio variabili" uguale a quello di com_hello e mi da errore.. ma dove sta questo errore?! mah!
-
infatti il mio consiglio è per un approccio migliore ;)
-
ok... ma penso che il problema sia: perchè non riesco a recuperare il model? e poi: perchè questo non fa uello che dico?
è sbagliato il codice?
-
l'errore che hai descritto ti dice che stai chiamando il metodo numero() su un entità che NON è un oggetto
-
$a = $model->numero();
perchè è sbagliato il concetto, non puoi usare un metodo così (la funz numero è un metodo, se tu nella costruzione del modello (credo) dove ha fatto quella funzione
scrivi
$this->num = $this->numero();
dopo puoi recuperare la proprietà creata + o - come hai fatto
$a = $model->num;
M.
ps nn so se quello che fai ha una logica... ti ho solo corretto la sintassi... cmq ti manca ancora il concetto oop
-
OOP.... eh... è da 4 anni che non ci metto più mano iniziai con java 5!!
comunque c'è una logica.. spero al più presto di dimostrarvelo!
-
La programmazione continua! Penso di aver capito abbastanza... ora bisogna programmare
Vi lascio il mio lavoro (embrionale) in attesa di commenti
http://docs.google.com/leaf?id=0BxO7WlEjXlueZDVlZTY0NWItZjBlMS00NTAxLWExYTEtNGIzNTBjMDdhYmFl&hl=it&authkey=CPOqlKoD