Ajax Calendar

Matteo - 23 Sep 2006

We already presented some days ago our new calendar in Ajax technology. You can appreciate it in all its glory in the left column of our site. Now we're releasing its source code, commented in Italian and English, for the pleasure of everyone :)

The package contains the php source of the calendar (ajax_calendar.php), a sample style sheet (ajax_calendar.css), a sample background image used in the css (calBg.png) and some using example (sample.php).

To use this calendar in a page you need to:

  • check the ajax_calendar.php script for possible modifications, especially to generate events and their URLs and to init the database connections;
  • at the beginning of the page containing the calendar, set the locale to the desired one for the months' names and week days' names with setlocale(LC_ALL, locale_name) (optional);
  • inside the <head> tag of the page, insert a "echo AddCalHelperScript();" to add the needed javascript functions and the style sheet;
  • inside the <body> of the page insert a "echo GetCompleteCalendar();" to insert the starting calendar with everything needed.

Done. So, a child's play, don't you think?

(as usual the license is Creative Commons BY NC SA)

 

ottimo

Sabrina - 18 Jun 2007 14:43

Ciao,
questo è perfetto da adattare solo che non so come poter gestire 'amministrazione puoi aiutarmi perfavore? :)

grazie.

Re: ottimo

Juna - 24 Jun 2007 12:18

Che tipo di problemi hai avuto con l'amministrazione?

non funziona

MpMp - 23 Aug 2007 13:37

non funziona la lingua e lo spostamento tra i mesi....

re:non funziona

Matteo - 24 Aug 2007 20:53

@mpmp: forse non hai definito la variabile globale $language (o alternativamente non l'hai sostituita con la cosa relativa opportuna)? Se vuoi puoi mandarci per email l'html che ti genera per vedere cosa c'e' che non va.

Considera che il codice è praticamente lo stesso del calendario in alto a sinistra su questo sito, che mi pare funzioni senza problemi.

problema

luca - 11 Sep 2007 01:32

bello lo script.. però ho un piccolo problema.. noto che i giorni che hanno un evento si ripetono anche negli altri mesi. Come devo fare per fare vedere il giorno colorato solo nel MESE in cui cè l'evento?? In modo tale che se avanzo di 1/2 mesi quel giorno non è evidenziato.

re: problema

Matteo - 11 Sep 2007 20:24

@luca: penso che tu stia male interpretando l'esempio che sostituisce la query SQL che dovrebbe generare l'array degli eventi: nell'esempio gli eventi vengono messi sugli stessi giorni di tutti i mesi.
Se non desideri interfacciarti con MySQL come previsto dal codice commentato, devi scrivere del codice aggiuntivo per assegnare l'array "$query" in base al mese visualizzato (dato da $mese e $anno) e per generare il link relativo al giorno specifico (al posto della chiamata a funzione GenUrlFromDate che nel codice rilasciato è commentata).

re:re:problema

luca - 11 Sep 2007 23:23

ciao e grazie della risposta! Attenzione, voglio e devo interfacciarmi a MYSQL. Solo che vorrei che il calendario mi facesse vedere evidenziati solo quei giorni in cui ci sono le notizie inserite per quella data (giorno e mese). Se inserisco nel database un articolo oggi (11/09), il giorno deve essere evidenziato solo per l'11 settembre e non anche negli altri mesi. non so' se mi sono spiegato bene.

re:re:re:problema

Matteo - 12 Sep 2007 02:56

ti sei spiegato benissimo. Ma se ti succede dipende dalla query sql che ci hai messo: come già detto il codice è lo stesso del calendario che vedi su questo sito. Assicurati che nella query che fai ci sia una condizione where in cui mese e anno dell'articolo vengono controllati.

Aiutino

Daniele - 4 Oct 2007 18:56

Bellissimo però ho un problema?
Non riesco a far funzionare lo spostamento dei mesi avanti dietro quando lo includo nella pagina php.
Non funziona anche se inserisco direttamente il codice nella pagina?
Invece con l'esempio sample tutto funziona anche se non c'è la compatibilità con internet explorer
Puoi aiutarmi?
Ciao

Risolto

Daniele - 5 Oct 2007 22:09

Funziona tutto OK, ho risolto
Grazie

Opera

smal - 12 Dec 2007 09:01

lo script non funziona con Opera.

re: Opera

Matteo - 12 Dec 2007 13:41

mi pare che il calendario su questo sito funzioni correttamente su Opera, almeno sulla versione che ho io su Mac (non recentissima). Cosa non funziona?

permesso negato

daniele - 10 Jan 2008 23:14

scusate ma volevo sottoporvi il mio problema: nonostante riesca a visualizzare il sample, cercando di cambiare mese no accade nulla...la console degli errori mi dice:

uncaught exception: permesso negato al metodo di chiamata XMLHttpRequest.open

come potrei risolvere???

tabella db

alex - 26 Jan 2008 18:18

Qualcuno sa come costruire la tabella del db per la query?

Grazie

dbms

marco - 14 Feb 2008 18:30

ho rivisto il file ajax_calendar ed ho impostato i vari eventi a mano, in attesa di collegarlo ad un database! mi potete dare una mano a creare un database e il codice relativo al corretto funzionamento all'interno del calendar_ajax.php?
nel database mi interessa solo 1 campo count, 1 data, 1 evento (20 caratteri bastano). Il database può essere creato anche in access, per me non è un problema! la difficoltà sta nel collegarlo con il file da quello che ho capito....Sarò grado a chi mi darà una mano!

Complimenti agli autori di questo calendario, mi piace davvero...Uno dei pochi così raffinato che circolano nella rete!

Ciao a tutti!"

db

Dany - 12 Mar 2008 17:10

Salve a tutti e prima di tutto complimenti per il bellissimo calendario ed i sorgenti resi visibili a tutti!

Anche io però ho lo stesso problema relativo al db, ho visto il codice in ajax_calendar, e di base c'è l'aggiunta a mano degli eventi, ma per farli interagire invece con un db?
Ho visto che c'è da cambiare i commenti dalla riga del codice 158 (array di esempio sostitutivo della query:)e scommentare la parte subito sopra riga 152.. e poi in fondo riga 305 inserire i dati con server, nome e password di di un db mysql creato in precedenza. Ma mi dà errore.. Forse non ho ben capito bene tutto il procedimento :-(
Insomma... quando e se avrete tempo potreste fare un piccolo tutorial o spiegare come farlo interagire con un db?
Ve ne sarei veramente grato!
Saluti!
Daniele

componente e modulo joomla

alessandro - 18 Mar 2008 18:10

Salve a tutti e complimenti.
Sto lavorando ad un componente di gestione eventi e modulo calendario per joomla versione 1.5 che si basano su questo bel calendario.
Interessa a qualcuno?
Ciao,
Alessandro

Domandina stupidina...

GPJ - 19 Mar 2008 14:26

Ciao a tutti, questo calendario è fantastico, è proprio quello che stavo cercando! Però... a me servirebbe molto più semplicemente in Java, basta che abbia i tooltip: sapete per caso dove posso trovarne uno? Grazie ;)
iperek (at) yahoo (punto) it

problema scorrimento

xedy - 22 Apr 2008 01:41

premetto ke il calendario mi funziona alla perfeziona senza il collegamento al db ma quando lo collego al db nn mi funziona lo scorrimento qualcuno mi sa dire xkè?
grazie

Non riesco a far funzionare lo

Milena - 7 Aug 2008 17:06

Ciao, il calendario di questo sito funziona... ma utilizzando il codice sorgente non riesco a far funzionare lo scorrimento dei mesi...

italiano su ubuntu

ken - 16 Aug 2008 02:33

Ciao!

Molto utile e ben fatto questo calendario, grazie.

Volevo segnalarvi pero' che sulla macchina su cui sto lavorando, una ubuntu 7.10, per ottenere le date in Italiano ho dovuto settare il locale in questo modo:

setlocale (LC_ALL,"it_IT.utf8");

In caso contrario le date appaiono sempre in Inglese.

Aiuto

andrea - 22 Sep 2008 13:02

Non riesco a capire cosa inserire nella query per interrogare il db!
"$query = "SELECT DAYOFMONTH(data) as Day, count(id) as Count FROM calendar ".
"WHERE ... AND MONTH(data)=$mese AND YEAR(data)=$anno AND ... ".
"GROUP BY DAYOFMONTH(data) ORDER BY DAYOFMONTH(data)";
$res = mysql_query($query);
$nextDayArr = mysql_fetch_array($res);"



next($query);//mysql_fetch_array($res);

che mettere al poeto dei puntini?

re: Aiuto

Matteo - 22 Sep 2008 23:06

Al posto dei puntini vanno messe eventuali condizioni tue specifiche. Ad esempio se vuoi contare solo righe che hanno valore 'blog' nella colonna 'tipo' metterai "WHERE tipo='blog' AND MONTH..."

scorrimento

Mirco - 8 Oct 2008 11:17

Ciao, anch'io non riesco a fare lo scorrimento dei mesi proprio col codice che ho scaricato senza fare nessuna ulteriore modifica se non quello della lingua.

scorrimento [Solved]

Mirco - 8 Oct 2008 15:24

Per tutti quelli che potranno avere nel futuro qualche problema per quanto riguarda lo scorrimento:

1. Assicurarsi bene che $base_url = chiami ajax_calendar.php col giusto path. Il controllo può essere fatto via html nell'output.
2. Uno dei motivi per cui col db non si ha passaggio da un mese al altro è che lo script può non stabilire la connessione o perderla nel momento della chiamata quando si tenta di passare da un mese all'altro. Personalmente l'ho risolto cosi:
$con = (Connessione col DB Mysql)
$query = array(array('Day'=>0, 'Count'=>0));
$nextDayArr = current($query);
$query = "Select ....";
$res = mysql_query($query, $con)

if($res = @mysql_query($query, $con)) {
$nextDayArr = mysql_fetch_array($res);
}

Spero che sia d'aiuto...

Great script by the way!

Bellissimo!

Francesco - 30 Oct 2008 12:01

Complimenti, veramente utile e ben scritto!

Errore connessione DB

Michele - 8 Nov 2008 15:49

Ciao a tutti e complimenti per lo script, davvero ben fatto! Ho un problema nella connessione al db, cioè collegandosi non mi restituisce nessun "die" però quando richiama la query mi dà il seguente errore:

mysql_query(): Access denied for user '*******'@'localhost' (using password: NO) in /calendar/ajax_calendar.php

mysql_query(): A link to the server could not be established in /try/calendar/ajax_calendar.php

mysql_fetch_array(): Supplied argument is not a valid MySQL result resource in /try/calendar/ajax_calendar.php

La query è la seguente:
"SELECT DAYOFMONTH(date) as Day, count(id) as Count FROM db_globale WHERE posizione = 'calendario' AND MONTH(date)=$mese AND YEAR(date)=$anno GROUP BY DAYOFMONTH(date) ORDER BY DAYOFMONTH(date)"

Il db è formato dal campo ID auto_increment e da DATE in formato AAAA-MM-GG.

Come risolvo? Grazie

Mesi

Beverly - 5 Feb 2009 15:42

Bene eccomi qui, complimenti per il calendario.

Io ho un piccolo problema.. non mi cambia i mesi cliccando sulle apposite freccette.

Grazie.
Weblog Koan Projects Photos Contacts