Back to top

Visualizza post

Questa sezione ti permette di visualizzare tutti i post inviati da questo utente. N.B: puoi vedere solo i post relativi alle aree dove hai l'accesso.


Post - tavvolley

Pagine: [1]
1
Sviluppo / Re:problema caricamento vista
« il: 21 Mag 2010, 13:12:08 »
scusa ma ieri sera non ho avuto il tempo di dire che ho risolto (avevo dimenticato di mettere parent::__construct() nel costruttore del model).
come al solito ringrazio sempre per l'interessamento al mio problema!!
ho capito che chiamare una qualsiasi view in questo modo:
Codice: [Seleziona]
<?php
JRequest
::setVar('view',$nomeView);
parent::display();
?>

è corretto.

tutto ieri mi sono fatto la cultura su come richiamare un model e non capivo dove sbagliavo :-)(anche perchè non mi entrava proprio nella funzione display() per poter capire che non trovava il model e quindi io pensavo fosse problema di richiamo della view!! )
La scelta del model da dove prendere i metodi è standard se la view rispetta i canoni di joomla riguardo i nomi. Per fare in modo che la view si riferisca al suo model dovremmo rispettare qualche nome, esattamente la view si dovrà chiamare XViewY e il suo model associato è XModelY dove X è il nome del componente mentre Y è il nome proprio della view!!
se vogliamo che la view utilizzi le funzioni di altri model (ad esempio anche quello della view Z (quindi nome view: XViewZ e il suo model relativo è XModelZ)), dobbiamo personalizzare il codice e NON utilizzare parent::display(), ma richiamare i vari model che si vuole utilizzare e poi settarli all'interno della view:

Codice: [Seleziona]
<?php

$primoModel   
$this->getModel('Y','XModel'); 
$secondoModel $this->getModel('Z','XModel'); 
$view->setModel($primoModel,true);//se vuoi impostare il model come default
$view->setModel($secondoModel);
$view->display();
?>


2
salve a tutti!! ho una vista che non ne vuole sapere di partire cosa devo fare?? ho fatto debug, echo... ma nulla
la richiamo nel controller con
...
JRequest::setVar('view',$caricaVista);
parent::display();

entra nella view selezionata, esegue le due righe:
Codice: [Seleziona]
<?php
defined
('_JEXEC') or die('Accesso negato');
jimport('joomla.application.component.view');
?>


dopo mi entra nel costruttore del model associato alla view; quando finisce il costruttore  si blocca mi visualizza solo gli echo inseriti sino a quel momento e non va avanti!!non ne vuole sapere di entrare nella funzione display della view? come posso fare ? ho fatto il debug passo passo dopo la fine del costruttore del model ma non sono riuscito a venire a capo del problema!! esiste un metodo per capire il perchè non carica la pagina? grazie!!

3
Sviluppo / Re:leggere risultati stored procedure
« il: 13 Mag 2010, 15:29:10 »
scusa la mia poca praticità di questo forum dovrei modificare l'oggetto del del post oppure esiste un pulsante o qualche procedura da seguire che non conosco?  grazie per la pazienza. ;D

4
Sviluppo / Re:leggere risultati stored procedure
« il: 13 Mag 2010, 08:43:44 »
si in effetti sbagliavo a richiamare la stored!! bastava solo mettere loadObject!!
esattamente ho dovuto mettere nella stored:
Codice: [Seleziona]
...
end if;
SELECT risposta, avviso;
end;


e richiamarla nel codice in questo modo:
Codice: [Seleziona]
$query = 'call insertFile('.$this->parametri().')';
$this->_db->setQuery($query);
$this->_db->loadObject();
grazie a tutti in paticolare a marco!! ;D

5
Sviluppo / Re:leggere risultati stored procedure
« il: 12 Mag 2010, 16:10:28 »
ti ringrazio della risposta!!
scusa la mia ignoranza ma cosa intendi con a livello bl  :-[!!
vai sicuro che ho chiamato la stored per bene, quello era solo un esempio.
la stored postata funziona solo che richiamandola in quel modo ottengo che la variabile che la contiene forse è un boolean.
chiarisco meglio:
io ho messo il seguente codice:
Codice: [Seleziona]
<?php
function inserimento(){
   
$query='call insertFile(....);';  
   
$this->_db->setQuery($query);
   
$rispValue=$this->_db->query();
   return 
$rispValue;
}
if(!
$this->inserimento()){
$this->setError($this->_db->getErrorMsg());
return false;

?>

in effetti esegue la stored ma il risultato è solo true o false a seconda se la stored è eseguita o meno e non restituisce nessun altro valore quindi penso che la variabile $rispValue sia un boolean.
Se volessi ottenere i valori delle variabili  di output della stored come dovrei fare ?
se riuscissi a leggere i valori di output mi farei restuire l'id del record appena inserito  ;D.
ho tentanto a mettere all'interno della stored anche
SELECT risposta, avviso ;
alla fine dell'IF (dopo end if;)
se la eseguo da mysqlAdmin ok mi restituisce il rigo ma io vorrei leggerlo in joomla!!
I dati che passo sono già controllati, quindi vorrei sapere se il db genera errore, infatti sto cercando informazioni sulla gestione degli errori di mysql, mi piacerebbe trovare qualcosa come il throws di java che propagasse l'errore su tutto in questo caso penso dovrebbe essere catturato dal metodo getErrorMsg().

6
Sviluppo / [risolto]leggere risultati stored procedure
« il: 12 Mag 2010, 12:04:27 »
salvea tutti!
 ho fatto la seguente stored procedure:

Codice: [Seleziona]
delimiter //
create procedure insertFile (
                               in orginalNamePass varchar(50)
                              ,in statePass varchar(45)
                              ,in deletedPass TINYINT(1)
                              ,in estensione varchar(4)
                              ,in sizePass int
                              ,in realNamePass varchar(50)
                              ,out risposta varchar(45)
                              ,out avviso varchar(100) )

begin

select ID into risposta
from jos_typedocument
where extension = estensione;

if risposta is null then

  insert into jos_file(originalName, state, deleted, typeDocumentID, size, realName)
    values (originalNamePass, statePass, 0, 0, sizePass, realNamePass);
  set avviso ='estensione sconoscita, e query ultimata';
else
  insert into jos_file(originalName, state, deleted, typeDocumentID, size, realName)
    values (originalNamePass, statePass, 0, risposta, sizePass, realNamePass);
  set avviso ='estensione riconosciuta, e query ultimata';
end if;
end//;
delimiter;

è stata testata in mysql e funziona ora vorrei richiamarla in joomla. Come posso ottenere i risultati della stored?
l'altra che utilizzo funziona ma non ho messo parametri di output ed è stata richimata col seguente codice:
Codice: [Seleziona]
$query = 'call miaStored('.$this->ID.')';
$this->_db->setQuery($query);
$this->_db->query();

ora dovrei cambiare il modo della chiamta?
potrebbe aiutarmi qualcuno?
Vi ringrazio in anticipo!!

7
Sviluppo / inserimento dati e debug in joomla
« il: 23 Mar 2010, 13:16:36 »
salve a tutti!! vorrei finire il mio primo componente. Ho fatto una nuova registrazione inserendo dei nuovi campi. Per la realizzazione ho seguito il tutorial del mvc.
ora i campi inseriti dall'utente andranno all'interno di due tabelle differenti!!
per quanto riguarda il riempimento della prima tabella non ci sono stati problemi mentre per quanto riguarda la seconda sto trovando diversi problemi.
nel backend ho inserito il tutto nella funzione store() del mio model!
Esattamente faccio questo:
mi prendo le tabelle con
Codice: [Seleziona]
$rowProfessor =& $this->getTable('professor');
$rowUser =& $this->getTable('user');
come si fa il bind?
nel tutorial diceva
Codice: [Seleziona]
$data = JRequest::get('post');e poi faceva
if(!$rowUser->bind($data))...
in questo caso il mio $data contiene più dati di quanti ne devo inserire nella tabella user; visto che $data è solo un array l'ho copiato in un array temporaneo e levato gli elementi che non mi servivano (perchè se facevo il bind() con quello completo non mi funzionava). Così sono riuscito ad aggiungere un user. Ora vorrei completare la registrazione insendo gli altri campi in professor
ho rifatto la stessa cosa per professor ma la funzione store mi fa problemi.
-ci sono molte cose strane che non vanno!! prima cosa gli output di joomla dove vanno a finire?? se l'operazione va buon fine joomla mi mostra la pagina creata e prima dei tasti o dei campi mi visualizza tutti gli echo che ha passato, quindi prima quelli della pagina iniziale poi del componet, poi quelli view poi del model e infine quelli del default o della pagina finale che realizza la view. quando salvo un nuovo utente me ne visualizza solo alcuni eppure io sono sicuro che entra nella funzione store in quanto (se commento la parte del professor) registra il dato sul database ma non visualizza nessun echo. esce solo la scritta "Registrazione avvenuta con succeso!!" (scritta inserita nel controller alla funzione save con il  seguente codice
Codice: [Seleziona]
$msg = JText::_('Registrazione avvenuta con succeso!!'); ) e alcuni output quelli di quando si ricarica una pagina,in quanto a fine save nel controller ho inserito  setRedirect(). Gli output visualizzati sono: pagina di ingresso, controller, model di base, view di base e dafault e non mi visualizza quelli contenuti nella funzione store() del mio model che vorrei vedere :-(. Sono tutti quelli dopo la redirect e quelli prima che fine hanno fatto???????
-ho provato con il debug ma prima mi funzionava bene. In un seconda fase non mi faceva vedere il valore delle variabili, ma si fermava solo ai breack point e dovevo stoppare il debug per vedere gli output inseriti da me. ora le cose sono peggiorate :-( non so perchè mi fa un errore e si blocca quasi subito!!
io sviluppo con eclipse e la guida utilizzata nella configurazione è:
http://docs.joomla.org/Setting_up_your_workstation_for_Joomla!_development
unica differenza non ho utilizzato xampp, ma ho installato tutto manualmente.
Spero di essere stato chiaro nella spiegazione
Per favore se qualcuno potrebbe aiutarmi sto impazzendo quasi quasi inizio a rimpiangere il bel vecchio .net :'(!!!

8
Sviluppo / Re:documentazione sul modello MVC da tradurre?
« il: 22 Mar 2010, 14:57:04 »
alexred ti ringrazio così tengo anche i digrammi UML per il mio progetto!!!  ;D
conosci per caso altri siti come questo che spiegano come fare a personalizzare l'accesso al sito? non posso aspettare l'uscita di joomla 1.6 e non mi va di rifare il tutto per la nuova versione.
Anche se non penso si possa fare come controllo penso dovrei modificare i file sorgenti di joomla per personalizzare il menu personale di ogni utente vero?!?

9
Sviluppo / Re:aggiornare un record
« il: 22 Mar 2010, 12:13:15 »
ho risolto il problema in effetti non passavo l'id tra i campi dell'array a cui volevo fare il bind!!
Ora sto cercando di strutturare in classi il tutto ma ci sono alcune cose che non mi sono molto chiare
ecco l'indirizzo del tutorial seguito
http://docs.joomla.org/Developing_a_Model-View-Controller_Component_-_Part_6_-_Adding_Backend_Actions
Stavo ricostruendo un bind() personalizzato in una classe esterna. Nel costruttore passo due parametri il nome della tabella (in modo da utilizzare
Codice: [Seleziona]
getTable($nomeTabella)) e i dati estratti dal form (
Codice: [Seleziona]
$data=JRequest::get('post');)per fare il bind() prima di opportuni cambiamenti.
Quando ho creato la classe tutto ok, poi sono arrivato al momento della creazione del mio metodo bind e mi sono accorto che in caso di errore del bind restituisce:
$this->setError($this->_db->getErrorMsg());
?? Secondo me (NON so se ho capito bene :D)io non ho più a che fare con _db, l'ho semplicemente utilizzato per estrarre i dati che devono andare a popolare la mia form. Ora con il bind() devo solo associare alla "struttura" della tabella (che viene trattata quasi come un array con tutti i campi vuoti) i valori estratti dalla form che andranno successivamente memorizzati con store().
forse posso capire che il database potrebbe creare dei problemi quando cerco di memorizzare al suo interno e quindi vedere il suo errore ma non capisco quale errore potrebbe generare in bind() e in check!!
Devo passare anche _db alla mia classe?
come faccio a catturare l'eventuale errore ? esiste il bel throw di java in php? funziona in joomla? si propapagano sempre in questo modo gli errori in joomla?
***
per odino ok!! posso anche utilizzare var_dump ma quando costruisci un'applicazione è sempre meglio avere un ambiente di sviluppo che ti aiuti nella compilazione. Ho girato un bel pò ma non ho visto nulla di interessante su come configurare eclipse o netbeans per sviluppare componenti per joomla tranne che un video tutorial molto interessante per lo sviluppo di joomla che mi ha fatto capire alcune cose!!

10
Sviluppo / Re:aggiornare un record
« il: 21 Mar 2010, 00:20:51 »
Ciao Marco ti ringrazio per la risposta!ok ora mi metto a vedere i valori contenuti nell'array prima del salvataggio. Non mi andava di fare il debug perchè non so se ho configurato bene l'ambiente di sviluppo!! Sto utilizzando eclipse con Xdebug. alcune volte si bloccava in fase di debug ora invece non mi fa vedere i valori delle variabili. Quando metto i break point si ferma sul codice ma i valori delle mie variabili sono <Uninitialized> non riesco a capire il perchè.Ora sono sono tornato al bel vecchio echo :-( e per vedere i valori devo mettere un break point al punto desiderato e poi stoppare il debug :-(, in questo modo non carica la pagina di joomla ma una pagina bianca con tutti gli echo inseriti fino a quel momento stampati.

11
Sviluppo / aggiornare un record
« il: 20 Mar 2010, 20:47:07 »
Salve a tutti!! E' la mia prima applicazione di joomla e vorrei sapere come si deve fare ad aggiornare il record di una tabella!!
l'esempio che ho seguito è quello dello sviluppo di un componente utilizzando il MVC.
Ho creato nella cartella table tanti file quante sono le tabelle all'interno del mio database, ora nel model chiamo la tabella:
Codice: [Seleziona]
$row =& $this->getTable('user');
e faccio il bind() ($row->bind())lo store() e mi aggiunge sempre un record nuovo. come posso fare solo l'aggiornamento di un record?
devo crearmi un metodo che costruisca l'update e poi richiamarlo con _database->setQuery(). Oppure c'è qualche altro metodo che non conosco che mi fa in automatico l'aggiornamento del record modificato?
ringrazio anticipatamente!

12
salve a tutti!!  sto creando un componente per joomla (il mio primo componente). A un certo punto ho inserito nella view di una pagina un campo di testo dove l'utente può inserire la sua data di nascita e a fianco al campo di testo un pulsante che apre il calendario!
il campo della tabella nel quale si deve memorizzare il dato inserito nella casella di testo si chiama date_of_birth.
nella form.php avevo messo il seguente codice:

Codice: [Seleziona]
<input class="inputbox" type="text" name="data_nascita" id="data_nascita" size="25" maxlength="19" value="<?php  echo $this->professore->date_of_birth;?>"/>
<input class="button" type="reset" name="btn_data_nascita" id="btn_data_nascita" size="25" maxlength="19" value="..." onclick="return showCalendar('data_nascita','%d-%m-%Y');" />


mi sono accorto che quando prendo i dati nel modello con:

Codice: [Seleziona]
$data = JRequest::get('post');

per poi memorizzarli all'interno del database, il nome delle variabili vengono presi dai nomi delle caselle di testo.
Nel mio caso ho l'array $data che contiene un valrore [data_nascita]=>"valore inserito" mentre la tabella che ho creato all'interno di mysql il campo si chiama date_of_birth.
allora ho cambiato il nome e l'id nella casella di testo da data_nascita a date_of_birth (logicamente anche nella funzione showCalendar() altrimenti non funzionerebbe) il tutto sembra funzionare correttamente ma mi esce semrpe il popup con la scritta :

Calendar.setup:
  Nothing to setup (no fields found).  Please check your code

ho rimesso i valori di data_nascita e tutto funziona. A me non costa nulla cambiare l'array che passo creandone uno con tutti campi corretti oppure più semplicemente cambiare il nome del campo all'interno di mysql. ma vorrei sapere se qualcuno sa da cosa potrebbe dipendere e come si fa a risolvere. grazie a tutti anticipatamente!!

Pagine: [1]


Web Design Bolzano Kreatif