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 - raoul_benneth

Pagine: [1]
1
...faccio un ultimo tentativo e poi lascio perdere dato che mi sono perso..


sul model ho aggiunto una funzione:


Codice: [Seleziona]
getViewByDay($day)


ora sulla vista (default.php) ho:


Codice: [Seleziona]
$model = $this->getModel();


<?php foreach($model->getViewByDay('martedi') as $item ?>
//popolo la mia pagina con i dati
//e tutto funziona, nel senso che i dati sono quelli che mi aspetto
//di vedere per quel particolare giorno


Vi chiedo quindi:
c'è qualcosa che posso fare per lasciar scegliere all'utente che giorno visualizzare ?
mi sono accorto che non ho detto che tutto sto casino mi interessa lato sito e non lato admin.


Grazie di cuore.. buona notte.


RaouL.

2
Ok, nel controller ho questa funzione:


Codice: [Seleziona]
public function getModel($name = 'Prgs', $prefix='TestcomponentModel') {
    $model = parent::getModel($name, $prefix, array('ignore_request' => true));
    return $model;
}




Devo aggiungere un'altra funzione al controller o modificare quella che ho ?




3
Allora... ho scaricato alcuni componenti per cercare di capire qualcosa in più.


In effetti il mio problema si potrebbe ridurre a passare soltanto una
variabile dalla "vista" al "modello".


Sto vedendo che alcuni componenti nei "models" hanno più funzioni.


In uno di essi in particolare ho visto che c'è una funzione (nel modello)
che vuole un argomento, es.:


Codice: [Seleziona]
public function someFoo($date) {
   //blabla query->where('$date' between bla and foo);
$rows = db->loadObjectList();
}


La cosa che però non sono riuscito a capire nei file .html.php e nel default.php
di questo componente, è come faccia a darmi il risultato (corretto), nel senso che
non riesco a capire come passa l'argomento $date al modello e mi restituisca la view.


Quando punto con il mouse sul "submit" mi indica solo:
index.php?option=com_dkuevent&view=events


plz......  ::)

4
ma $dayweek non è una variabile dichiarata in php???
--------------------------------------------------------
php non dichiarerà mai nessuna variabile.
Ha funzioni e costanti per cui al massimo potrebbe essere DAYWEEK o dayweek() ... ma non esistono.

l'unica cosa che può assomigliargli è la funzione mysql dayofweek:
https://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html


eccola qui:


Codice: [Seleziona]

<?php
$date 
date('Y-m-d');
list(
$yyyy$mm$dd) = explode('-'$date);
$numberofday date("w",mktime(0,0,0,$mm$dd$yyyy));
$dayweek dWeek($numberofday);






function 
dWeek($numberofday) {
   
$days = array("domenica""lunedi""martedi""mercoledi""giovedi""venerdi""sabato");
   
$nameofday=$days[$numberofday];
   return 
$nameofday;
}
?>


5
con queste due righe mi hai fatto capire che quello che stavi facendo va in tutt'altra direzione...  ;D

ti faccio un esempio:

sab 09/02/13 : caffè con Raoul a Pincopallino
sab 23/02/13 : caffè con Mau a Milano
sab xx/yy/15  : eccheneso!

se oggi (sab 16/02/13) vado sulla pagina del componente mi restituirebbe tutti gli eventi che si fanno sabato... non solo quelli di oggi perchè tutti matchano con il "sab" ma anche quelli futuri e passati!

fai una cosa... scarica iCagenda: smontalo, analizzalo, documentati anche tramite l'utente Giusebos che è in stretto contatto con lo sviluppatore se hai dubbi e dopo prova a ricostruirlo tu!

happy coding!  ;)


No no!! aspetta !! :D


Le date (intese come calendario) non hanno nessuna importanza !!


sono inizialmente eventi fissi:


tutti i "sabato" ci sono 5 eventi
tutte le "domenica" 8 eventi






e così via...




6
Non preoccupatevi di andarci giù duro !! Anzi .. per qualsiasi possa servire a farmi crescere in questo percorso ve ne sarò sempre grato. Sono veramente agli inizi ..


Per rispondere alle vostre domande:


$dayweek: è una variabile che mi restituisce il giorno corrente mediante una funzione.


In sostanza, ciò che vorrei fare in questa pagina è:


1) all'apertura della pagina, mostrare gli eventi presenti nella giornata (il mio $dayweek)


2) Se l'utente sceglie il giorno, mostrargli gli eventi presenti in quel giorno della settimana.




Per quanto riguarda invece il senso di trovare la prima occorenza all'interno di una stringa:


sul db (ma non è che ne sono costretto, è voluto solo a scopo didattico) la stringa può essere:


["lunedi", "martedi",etc..]


o anche
["gennaio", "febbraio", etc...]




7
vi chiedo ancora una cosa:


ma se facessi una cosa del genere:
Codice: [Seleziona]

<td id="lunedi">Lunedi</td>
<td id="martedi">Martedi</td>
<td id="mercoledi">Mercoledi</td>
<td id="giovedi">Giovedi</td>
<td id="venerdi">Venerdi</td>
<td id="sabato">Sabato</td>
<td id="domenica">Domenica</td>


1) Avrei modo di associare un evento "click" a ciascuno di questi <td> ?
2) Potrei passare l'id del <td> alla query ?


Codice: [Seleziona]

$db = JFactory::getDbo();
$query = $db->getQuery(true);               
$query->select(array('a.id', 'a.eventid', 'a.start', 'a.end', 'b.*'));
$query->from('#__testcomponent_prg as a');
$query->join('LEFT', '#__testcomponent_event as b ON (a.eventid = b.id)');
$query->where('LOCATE([b]miotdID[/b], a.giorno, 3) > 0');
$db->setQuery($query);
$tresults = $db->loadObjectList();




??

8
->where('locate($dayweek, a.giorno= > 0') ;
-----------------------------------------------------------------
... e manca una parentesi, ... e c'è uno spazio tra = e >, ... e se è una funzione perchè è quotata...

spero anche che davanti ad ogni -> ci sia il $query...


O_o


mmm.. questo si che è strano...


ho fatto copia incolla del codice e nel codice non c'è nessun "="
scrivendo direttamente:


Codice: [Seleziona]
//
->where('locate($dayweek, a.giorno, 3) > 0');


con questo non funziona.
Se invece scrivo:


Codice: [Seleziona]
->where('locate("venerdi", a.giorno, 3) > 0');


funziona...


9
http://docs.joomla.org/JDatabaseQuery::select/11.1

non credo che come hai fatto tu la select piaccia a J!

il parametro della select - come riportato dalla documentazione - deve essere

A string or an array of field names.

quindi o fai un

$query->select( array( 'a.id', 'a.eventid', ... ) );

oppure

$query->select( 'a.id as id, a.eventid, a.start, a.end, b.*');

sinceramente non avevo mai fatto come nel tuo codice... potrebbe essere quello che non gli piace.


Per la select l'ho letto un secondo dopo aver postato ed in effetti mi è bastato
passare l'array.


Non funziona comunque perchè non riesce ad 'interpretare' la funzione 'LOCATE' di mysql

10
aggiusta sta query che se ti vede il team di sviluppo di J! ti ammazza (come minimo)!
Codice: [Seleziona]
$query->select( <campi da selezionare> );
$query->from( <da quale tabella> );
$query->join ( <con quale tabella è in relazione> );
$query->where( <che soddisfa quali vincoli> );


Ok, fatto come suggerito da te ma non mi funziona più come prima:
Codice: [Seleziona]

$query
->select('a.id', 'a.eventid', 'a.start', 'a.end', 'b.*')
->from('#__testcomponent_prg as a')
->join('LEFT', '#__testcomponent_event as b ON (a.eventid = b.id)')
->where('locate($dayweek, a.giorno= > 0') ;
$db->setQuery($query);
$tresults = $db->loadObjectList();


Facendo in questo modo, non mi trovo più nulla in 'loadObjectList'


11
Ok, ho fatto qualche passo in avanti:


la query l'ho modificata così:


Codice: [Seleziona]

$db = JFactory::getDbo();
                   
$query = "SELECT a.id as id, a.eventid, a.start, a.end, b.*
        FROM #__testcomponent_prg as a
LEFT JOIN #__testcomponent_event as b
ON a.eventid = b.id
where locate('$dayweek', a.giorno) > 0";
                                               
 $db->setQuery($query);
 $results = $db->loadObjectList();


e mi funziona perfettamente, nel senso che vedo
adesso correttamente gli eventi presenti per il giorno in questione
ad esempio, quelli di oggi, venerdì.


Ora, diciamo che sulla pagina metto una table che ha come
headers i giorni della settimana, come faccio a fare in modo
che al click sul giorno corrispondente mi visualizzi gli eventi relativi ?


12
Ciao e grazie per il supporto !


Come notavi, chiamo sempre il primo risultato disponibile e ovviamente
avrò sempre lo stesso id.


Facendo in questo modo:
Codice: [Seleziona]

<?php foreach($tresults as $giorno) : ?>
                                <td><h4>
                                <a href="<?php echo JRoute::_('/index.php?option=com_testcomponent&view=prgs&id=' $giorno->id); ?>">
                                <?php echo $giorno->giorno?></h4></a></td>
                                <?php endforeach; ?>


ottengo il link al giusto 'id' ma ovviamente
come 'giorno' stampo soltanto il giorno corrente, nel caso di oggi: venerdi

13
Buongiorno a tutti :)
Nuova giornata...  nuovi problemi !! :)


in breve:


Codice: [Seleziona]
//funzione che mi restituisce il giorno corrente

function dWeek($numberofday) {
   $days = array("domenica", "lunedi", "martedi", "mercoledi", "giovedi", "venerdi", "sabato");
   $nameofday=$days[$numberofday];
   return $nameofday;
}



$date = date('Y-m-d');
list($yyyy, $mm, $dd) = explode('-', $date);
$numberofday = date("w",mktime(0,0,0,$mm, $dd, $yyyy));


$currentDay = dWeek($numberofday);


//effettuo una query per ricavare i dati presenti nel giorno che mi interessa

$db = JFactory::getDbo();
                   
          $query = "SELECT a.id , a.eventid, substring_index('$dayweek', a.giorno, 3) as giorno,
                                                a.start, a.end, b.*
                                                FROM #__testcomponent_prg as a
                                                LEFT JOIN #__testcomponent_prgevent as b
                                                ON a.eventid = b.id";
                                               
                               
           $db->setQuery($query);
           $tresults = $db->loadObjectList();


Ora avrei necessità di linkare al giorno della settimana i vari eventi presenti.
In pratica visualizzare sulla pagina:


lunedi martedi mercoledi giovedi venerdi sabato domenica


ed associare al click sul giorno gli eventi presenti.


Per capirne in linea di massima il funzionamento ho fatto così:


Codice: [Seleziona]


$days = array("lunedi", "martedi", "mercoledi", "giovedi", "venerdi", "sabato", "domenica");

<?php foreach($days as $giorno) : ?>
                                <td><h4>
                                <a href="<?php echo JRoute::_('/index.php?option=com_testcomponent&view=prgs&id=' $tresults[0]->id); ?>">
                                <?php echo $giorno?></h4></a></td>
                                <?php endforeach; ?>




Si avvicina molto a ciò che vorrei soltanto che, come potete notare,
ovviamente $tresults[0]->id mi da sempre lo stesso id.


Grazie in anticipo per l'aiuto.


RaouL.


14
Sviluppo / Re:[joomla 2.5]problema con link ed array
« il: 08 Feb 2013, 10:54:45 »
Hai ragione !!


Ad ogni modo passavo comunque l'id sbagliato ed ecco perchè non mi dava la pagina corretta.


Grazie mille.

15
Sviluppo / [joomla 2.5]problema con link ed array
« il: 07 Feb 2013, 16:02:52 »
Ciao a tutti.
Ho una view di un componente che mi mostra alcune cose, ad esempio degli articoli.


Ora, ogni articolo è stato scritto da un autore, ma può capitare anche che vi sia
un articolo scritto da più autori.


Avrei bisogno di linkare nel nome degli autori il loro profilo.
Ho fatto così:


Codice: [Seleziona]

foreach($array as $value):
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$query
->select('autore, id')
->from('`#__testcomponent_autore`')
->where('id = ' .$value);
$db->setQuery($query);
$results = $db->loadObjectList();
$data[] = $results[0]->autore;

        //qui dovrei fare in modo che
                                       //escano i nomi dell'autore o degli autori e per ciascuno ci sia il link
                                       //alla sua pagina

 
endforeach;
                                //giusto per test ho provato così:
                                $links = array();
                               
                                $arr = explode(","$data);


                                foreach($arr as $value) {

                                    $links[] = "<a href='".JRoute::_('index.php?testcomponent&view=authors&author='). trim($value) ."'>". trim($value) ."</a>";

    }
$links_str = implode(", ", $links);
echo $links_str;


 


Vedo i nomi separati da virgola e che contengono un link ma che non punta alla pagina corretta.


Grazie a tutti !


RaouL.

16
Sviluppo / Re:[joomla 2.5 - MVC]Problema con una view
« il: 03 Feb 2013, 18:52:59 »
Perfetto !! Funziona tutto a dovere adesso sia lato admin che lato sito !


Grazie.


Avrei un'altra domanda.


Per creare una vista personalizzata (select bla from a left join x on blabla etc...)
soltanto lato sito, devo comunque creare un form nuovo o posso passare tranquillamente
alla vista già esistente una query qualsiasi ?


Scusate per le domande magari banali ma vengo da tutt'altra formazione ed è solo da qualche
giorno che mi sono innamorato di joomla.

17
Sviluppo / [joomla 2.5 - MVC]Problema con una view
« il: 03 Feb 2013, 00:11:06 »
Salve a tutti e complimenti per questo magnifico forum.


Da qualche giorno mi sto cimentando nella scrittura di un componente per joomla 2.5 che attualmente
è solo a scopo didattico per il sottoscritto.


Si tratta semplicemente di una semplicissima agenda.


Passando al mio problema specifico:


ho una tabella composta da:
id (pk)
personaID (fk su tabella persone)
giorno (varchar)
dalle (time)
alle (time)


mi funziona tutto egregiamente, riesco ad inserire un record, modificarlo o eliminarlo etc...


Ho pensato quindi di complicarmi un pò la vita pensando di voler gestire degli eventi 'fissi'
durante la settimana.


Vorrei capire come fare per:


anzichè far uscire sul form "giorno -> valore"
vorrei una serie di checkbox : lun, mar, mer, gio, ven, sab, dom


sul mio "edit.php" il codice che sto provando è il seguente:

Codice: [Seleziona]

<td><a href="#" onclick="select('giorno[]',1);"><?php echo JText::_'SELEZIONA TUTTI' );?>[/url] | <a href="#" onclick="select('giorno[]',0);"><?php echo JText::_'DESELEZIONA' );?>[/url]
               <div class="btns"><?php echo $this->form->lists['giorno'];?><>
         </td>   

l'errore che ottengo è:
Notice: Undefined property: JForm::$lists in C:\wamp\www\joomla\administrator\components\com_test\views\agenda\tmpl\edit.php on line 61

Grazie in anticipo a tutti!!



Pagine: [1]


Web Design Bolzano Kreatif