Back to top

Autore Topic: [per ESPERTI] query non funziona a dovere!  (Letto 3783 volte)

Offline jomlox

  • Nuovo arrivato
  • *
  • Post: 8
    • Mostra profilo
[per ESPERTI] query non funziona a dovere!
« il: 10 Mar 2011, 15:42:04 »
 :'( :'( :'( :'(

il mio sito è http://jomcode.altervista.org/portale/

come vedete in alto i valori sono corretti.

il menu però ha valore per essere visto bisogna avere livello utente>200 mentre anche gli ospiti che hanno 0 lo riescono a vedere.

vi posto il codice di ja_templatetools.php
Codice: [Seleziona]
function getCurrentMenuIndex(){
$Itemid = JRequest::getInt( 'Itemid');
$database =& JFactory::getDBO();
$id = $Itemid;
$menutype = 'mainmenu';
$ordering = '0';
$livminutente = '0';
while (1){
$sql = "select parent, menutype, ordering, livminutente from #__menu where id = $id limit 1";
$database->setQuery($sql);
$row = null;
$row = $database->loadObject();
if ($row) {
$menutype = $row->menutype;
$ordering = $row->ordering;
$livminutente = $row->livminutente;
if ($row->parent > 0)
{
$id = $row->parent;
}else break;
}else break;
}

$user =& JFactory::getUser();
//printf("user = " . $user);
//echo $user;
$id2 = $user->get('id',0);
$database2 =& JFactory::getDBO();
$livutente = '0';
$sql2 = "select liv_utente from #__users where id = $id2 limit 1";
$database2->setQuery($sql2);
$row2 = null;
$row2 = $database2->loadObject();
if ($row2){
$livutente = $row2->liv_utente;
}
$sql = 'SELECT count(*) FROM #__menu AS m'
. ' WHERE menutype=' . $database -> Quote($menutype)
. ' AND published=1 AND parent=0 and ordering < ' . $ordering
;
if (isset($user)) {
$aid = $user->get('aid', 0);
//$sql .= " AND access <= '$aid'";
//$livutente = $user->get('liv_utente',0);//mio
//$livutente = $user->liv_utente;//mio
//$sql .= ' AND livminutente < ' . $livutente ;//mio

}
$sql .= ' AND livminutente < ' . $livutente ;//mio
//PRINTF UTILI CHE SI VEDONO A INIZIO PAGINA
printf("livminutente = %d ", $livminutente) ;
printf("livutente = %d ", $livutente) ;
printf("user = %d ", $user) ;
$database->setQuery($sql);

return $database->loadResult();
}
« Ultima modifica: 16 Mar 2011, 09:56:03 da 56francesco »

Offline mmleoni

  • Global Moderator
  • Instancabile
  • *****
  • Post: 5547
  • Sesso: Maschio
  • Just another *nix coder/sysadmin...
    • Mostra profilo
Re:[per ESPERTI] query non funziona a dovere!
« Risposta #1 il: 10 Mar 2011, 21:35:26 »
while(1){...}

ma che hai scritto??? non ti offendere, non è l'intenzione, ma è strano che funzioni qualcosa.  ;D

a parte che mi pare che tu abbia modificato le tabelle di joomla, il che non è una buona idea, ti consiglierei di riscrivere il codice facendo attenzione alla logica... attualmente è un non sense.

ciao,
marco
mmleoni web consulting - creazione siti web aziendali ed e-commerce avanzati - sviluppo moduli e componenti Joomla

Offline jomlox

  • Nuovo arrivato
  • *
  • Post: 8
    • Mostra profilo
Re:[per ESPERTI] query non funziona a dovere!
« Risposta #2 il: 11 Mar 2011, 16:21:53 »
non mi offendo anche perchè stai offendendo i creatori di joomla o di quel template, quel while(1) è già li per conto suo.
io ho solo inserito le variabili che mi servono a me, per questo anche modificando le tabelle di joomla non ne cambio la struttura base, solo mi serve espanderla a mio piacimento.

unico problema è che, pur prendendo i valori corretti dalle tabelle (in questo caso jos_menus e jos_user), la query non lavora secondo la logica scritta..

se hai qualche suggerimento o conosci qualcuno che sa mettere mano al codice mi fai un GRANDE favore..
ti ringrazio in anticipo per il tempo dedicatomi

Offline mmleoni

  • Global Moderator
  • Instancabile
  • *****
  • Post: 5547
  • Sesso: Maschio
  • Just another *nix coder/sysadmin...
    • Mostra profilo
Re:[per ESPERTI] query non funziona a dovere!
« Risposta #3 il: 12 Mar 2011, 13:34:24 »
la query funziona perfettamente, solo che non restituisce il menù, ma il numero di voci del menù corrente che precedono la voce di menù selezionata, valore, che, per altro, non è usato da nessuna parte.

per quello che server a te devi agire sul modulo di rendering del menù.

nota che mettere [per ESPERTI], soprattutto in maiuscolo, fa sì che le persone esperte ignorino, come avrai notato, il post.

ciao,
marco
mmleoni web consulting - creazione siti web aziendali ed e-commerce avanzati - sviluppo moduli e componenti Joomla

Offline jomlox

  • Nuovo arrivato
  • *
  • Post: 8
    • Mostra profilo
Re:[per ESPERTI] query non funziona a dovere!
« Risposta #4 il: 16 Mar 2011, 09:52:26 »
accetto la critica e mi scuso, non era per cattiveria.
è diverso tempo che ci lavoro su, per questo diciamo gioco "sporco" per attirare persone che potrebbero sapere la risposta alla mia soluzione, ero in buona fede, scusate ancora.

tornando al problema(nel frattempo ti ringrazio per la gentile attenzione) dove trovo quello di cui parli te, cioè il rendering del menu?
grazie, buona giornata!  :)

ps. che babbo, nell'incredula speranza che avessi trovato il pezzo giusto non ho notato il "count(*)" nella query
che vergogna =(
« Ultima modifica: 16 Mar 2011, 10:01:06 da jomlox »

Offline mmleoni

  • Global Moderator
  • Instancabile
  • *****
  • Post: 5547
  • Sesso: Maschio
  • Just another *nix coder/sysadmin...
    • Mostra profilo
Re:[per ESPERTI] query non funziona a dovere!
« Risposta #5 il: 16 Mar 2011, 21:58:50 »
il render del menù avviene nel modulo mainmenu (/modules/mod_mainmenu/*).

ciao,
marco
mmleoni web consulting - creazione siti web aziendali ed e-commerce avanzati - sviluppo moduli e componenti Joomla

Offline jomlox

  • Nuovo arrivato
  • *
  • Post: 8
    • Mostra profilo
Re:[per ESPERTI] query non funziona a dovere!
« Risposta #6 il: 17 Mar 2011, 14:52:28 »
Grazie Marco..proverò!
se avrò ancora bisogno spero di poter contare sul tuo prezioso aiuto..
grazie ancora..ciauz!

ps.Buona festa per i 150 anni d'italia!

Offline bertoandrea86

  • Appassionato
  • ***
  • Post: 433
  • Sesso: Maschio
  • siti coupongratuiti.com / gruppirock.it
    • Mostra profilo
Re:[per ESPERTI] query non funziona a dovere!
« Risposta #7 il: 18 Mar 2011, 00:56:13 »
while (1){
         $sql = "select parent, menutype, ordering, livminutente from #__menu where id = $id limit 1";


o_O

Offline jomlox

  • Nuovo arrivato
  • *
  • Post: 8
    • Mostra profilo
Re:[per ESPERTI] query non funziona a dovere!
« Risposta #8 il: 18 Mar 2011, 09:40:38 »
bertoandrea86 sono sconvolto quanto te, ma riscrivo che non è un codice scritto da me, ma già presente nel pacchetto joomla che ho scaricato.
per quanto strano il template funziona =)

Offline mmleoni

  • Global Moderator
  • Instancabile
  • *****
  • Post: 5547
  • Sesso: Maschio
  • Just another *nix coder/sysadmin...
    • Mostra profilo
Re:[per ESPERTI] query non funziona a dovere!
« Risposta #9 il: 20 Mar 2011, 21:17:58 »
guardate che while(1) e for(;;) sono costrutti assolutamente validi e usabili. la cosa che criticavo io era la realizzazione del tree traversal che è assolutamente oscena  :(

ciao,
marco
mmleoni web consulting - creazione siti web aziendali ed e-commerce avanzati - sviluppo moduli e componenti Joomla

Offline bertoandrea86

  • Appassionato
  • ***
  • Post: 433
  • Sesso: Maschio
  • siti coupongratuiti.com / gruppirock.it
    • Mostra profilo
Re:[per ESPERTI] query non funziona a dovere!
« Risposta #10 il: 20 Mar 2011, 23:21:42 »
guardate che while(1) e for(;;) sono costrutti assolutamente validi e usabili.

Sinceramente mai usato while(1) per controllare la condizione da valutare.
Perchè non avrebbesenso usare il while in questo caso

Offline mmleoni

  • Global Moderator
  • Instancabile
  • *****
  • Post: 5547
  • Sesso: Maschio
  • Just another *nix coder/sysadmin...
    • Mostra profilo
Re:[per ESPERTI] query non funziona a dovere!
« Risposta #11 il: 21 Mar 2011, 08:12:52 »
infatti in tale caso la condizione di uscita non è controllata dal while.
i loop infiniti si usano quando le condizioni di uscita sono molteplici, proprio per indicare che le stesse vanno cercate all'interno del loop e rendere il codice più leggibile.

ciao.

l'altra condizione era "for(;;){}", prima che l'editor decidesse che era uno smile e non codice... mah.
mmleoni web consulting - creazione siti web aziendali ed e-commerce avanzati - sviluppo moduli e componenti Joomla

Offline bertoandrea86

  • Appassionato
  • ***
  • Post: 433
  • Sesso: Maschio
  • siti coupongratuiti.com / gruppirock.it
    • Mostra profilo
Re:[per ESPERTI] query non funziona a dovere!
« Risposta #12 il: 21 Mar 2011, 13:14:56 »
Ok, ora mi è più chiaro!
Grazie :-)

 



Web Design Bolzano Kreatif