Autore Topic: Problema con componente events e YaNC e mysql 5  (Letto 3086 volte)

Offline Rosario

  • Esploratore
  • **
  • Post: 55
  • Sesso: Maschio
    • Mostra profilo
Problema con componente events e YaNC e mysql 5
« il: 01 Nov 2005, 23:19:30 »
Ciao a tutti,
l'abitudine di aggiornare i sistemi mi ha portato in un vicolo cieco: a quanto pare il componente events non funziona a dovere. In pratica, installato il modulo e il componente events, vado per aggiungere un appuntamento alla rubrica dal menu "Events"->"Manage Events", ma al posto della classica pagina per inserire le informazioni, mi compare un desolante:
Citazione
DB function failed with error number 1054
Unknown column 'a.checked_out' in 'on clause' SQL=SELECT a.*, cc.name AS category, u.name AS editor, g.name AS groupname FROM jos_events AS a, jos_categories AS cc LEFT JOIN jos_users AS u ON u.id = a.checked_out LEFT JOIN jos_groups AS g ON g.id = a.access WHERE a.catid=cc.id ORDER BY a.catid LIMIT 0,30
Ho fatto una ricerca su Internet, ma quello che funziona ad altri non funziona a me. Non mi resta quindi che incolpare il mio mysql 5.0.15 che a quanto pare si incasina con le query...

Ho piu' volte verificato che la colonna "checked_out" (che pare sconosciuta al sistema) esiste correttamente nel DB.

Stesso discorso per il componente YaNC: funziona tutto, tranne il menu "Gestione URL", che mi restituisce un bel:
Citazione
Unknown column \'u.url_id\' in \'on clause\' SQL=SELECT u.*, site_name, SUM(clicks) as clicks FROM jos_newsletter_urls u, jos_newsletter_sites s LEFT JOIN jos_newsletter_stats_urls su ON u.url_id = su.url_id WHERE u.site_id = s.site_id GROUP BY u.url_id ORDER BY site_name, url_name LIMIT 0, 30


Qualcuno si trova nella mia situazione? Avete provato ad installare mysql 5? Purtroppo non posso fare il downgrade del sistema, trovandosi su un server di produzione e il cambiamento potrebbe costarmi parecchio tempo di off-line...

Uso Joomla 1.0.3 italiano, Yanc v. 1.4 beta3, Events v. 1.2

Grazie a tutti!
Ros
Ros

Offline Rosario

  • Esploratore
  • **
  • Post: 55
  • Sesso: Maschio
    • Mostra profilo
Re: Problema con componente events e YaNC e mysql 5
« Risposta #1 il: 01 Nov 2005, 23:53:11 »
Dopo due giorni di disperazione, sono venuto a capo della faccenda. Per ora ho la soluzione per il componente YaNC.


Per chi usa MYSQL 5.0
Innanzi tutto, era come prevedevo: mysql 5 si incasina con le query contenenti LEFT JOIN. A questo punto, è sufficiente cambiare la riga 136 (nella mia versione, la 1.4 beta3) del file administrator/components/com_yanc/classes/class.urls.php:
Citazione
$query = "SELECT u.*, site_name, SUM(clicks) as clicks FROM #__newsletter_urls u, #__newsletter_sites s LEFT JOIN #__newsletter_stats_urls su ON u.url_id = su.url_id WHERE u.site_id = s.site_id ";

con la seguente:
Citazione
$query = "SELECT u.*, site_name, SUM(clicks) as clicks FROM #__newsletter_sites s, #__newsletter_urls u LEFT JOIN #__newsletter_stats_urls su ON u.url_id = su.url_id WHERE u.site_id = s.site_id ";

Sostanzialmente, la LEFT JOIN funziona se appena prima di LEFT JOIN c'è la tabella con cui fare il LEFT JOIN (vedi clausola ON). Cambiando gli addendi, il risultato non cambia!

Ritengo che anche per il componente events la soluzione sia identica. Ora la provo e poi ve la posto. Spero che qualcuno ora perda 2 giorni in meno per risolvere questo problema. Anzi, vi chiedo se fosse possibile provarla anche per chi ha MYSQL 4.1, perché se dovesse funzionare, allora è meglio tenere la versione modificata da me, visto che farebbe contenti tutti!

Ciao e... a dopo!
Ros

Offline Rosario

  • Esploratore
  • **
  • Post: 55
  • Sesso: Maschio
    • Mostra profilo
Re: Problema con componente events e YaNC e mysql 5
« Risposta #2 il: 02 Nov 2005, 00:02:29 »
Eccomi qui! Con la soluzione anche per il componente events.

Per chi usa mysql 5.0+, il componente events funziona con queste modifiche:

Riga 227 del file administrator/components/com_events/admin.events.main.php
Codice: [Seleziona]
"\nFROM #__events AS a, #__categories AS cc" da sostituire con
Codice: [Seleziona]
"\nFROM #__categories AS cc, #__events AS a"
Per chi avesse una versione leggermente diversa di YaNC, la porzione di codice interessato è:
 
Codice: [Seleziona]
$database->setQuery( "SELECT a.*, cc.name AS category, u.name AS editor, g.name AS groupname"
                . "\nFROM #__categories AS cc, #__events AS a"
                . "\nLEFT JOIN #__users AS u ON u.id = a.checked_out"
                . "\nLEFT JOIN #__groups AS g ON g.id = a.access"
                . (count( $where ) ? "\nWHERE " . implode( ' AND ', $where ) : "")
                . "\nORDER BY a.catid"
                //. "\nAND a.state ASC"
                . "\nLIMIT $limitstart,$limit"     
        );

Saluti a tutti e spero di essere stato utile!
Ros
Ros

Offline Bettinz

  • Instancabile
  • ******
  • Post: 2235
  • Sesso: Maschio
  • Mentre pensi, spesso perdi l'occasione.
    • Mostra profilo
Re: Problema con componente events e YaNC e mysql 5
« Risposta #3 il: 02 Nov 2005, 14:51:08 »
Grazie mille, utilissimo...
solo che credo che pochi provider per ora passeranno al mysql 5.0 poichè non tutti gli user riescono a rimettere funzionante un database che andava con il mysql 4..
ah, sta compatibilità  ;D
Bettinz.com

 

Host

Torna su