Foros del Web » Programando para Internet » Javascript » Frameworks JS »

[APORTE] Calendario {usando: AJAX, PHP y MySQL}

Estas en el tema de [APORTE] Calendario {usando: AJAX, PHP y MySQL} en el foro de Frameworks JS en Foros del Web. Hola, hoy les traigo un Calendario realizado con AJAX, PHP y con uso de la Base de Datos . Bueno comenzamos: Me olvide la demo ...
  #1 (permalink)  
Antiguo 01/02/2009, 06:30
Avatar de MaTyS  
Fecha de Ingreso: enero-2009
Ubicación: Mar del Plata
Mensajes: 220
Antigüedad: 17 años, 8 meses
Puntos: 18
[APORTE] Calendario {usando: AJAX, PHP y MySQL}

Hola, hoy les traigo un Calendario realizado con AJAX, PHP y con uso de la Base de Datos .

Bueno comenzamos:

Me olvide la demo jaja:

Descarga: DESCARGAR
Demo: DEMO

calendario.sql
Código PHP:
CREATE TABLE `oc_calendar` (
  `
id` mediumint(9) NOT NULL auto_increment,
  `
start_date` datetime NOT NULL,
  `
end_date` datetime NOT NULL,
  `
username` varchar(255) NOT NULL,
  
PRIMARY KEY  (`id`)
) 
AUTO_INCREMENT=1 ; 

functions.js
Código PHP:
function SimpleAJAXCallback(in_text, obj) {
document.getElementById(obj).innerHTML = in_text;
setStatus ("","showimg");
setStatus ("","showimg2");
}
function 
checkAll(checkname, exby) {
var 
bgcolor = 'ffffff';
for (
i = 0; i < checkname.length; i++) {
checkname[i].checked = exby.checked? true:false
var cell = document.getElementById('row' + i);
if (
bgcolor == 'eeeeee') {
var 
bgcolor = 'ffffff';} else {var bgcolor = 'eeeeee';}
if (
checkname[i].checked) {cell.style.background = '#cccccc';} else {cell.style.background = '#' + bgcolor;}}}function checktoggle(box,theId,color) {
if(
document.getElementById) {
var 
cell = document.getElementById(theId);
var 
box = document.getElementById(box);
if(
box.checked) {
cell.style.background = '#cccccc';
} else {
cell.style.background = '#' + color;
}}}
function 
checktoggle_over(box,theId,color) {
if(
document.getElementById) {
var 
cell = document.getElementById(theId);
var 
box = document.getElementById(box);
cell.style.background = '#' + color;
}}function 
findPosX(obj){
var 
curleft = 0;
if (
obj.offsetParent){
while (
obj.offsetParent){
curleft += obj.offsetLeft
obj 
= obj.offsetParent;}} else if (obj.x){curleft += obj.x;}return curleft;}
function 
findPosY(obj){
var 
curtop = 0;
if (
obj.offsetParent){
while (
obj.offsetParent){
curtop += obj.offsetTop
obj 
= obj.offsetParent;}
} else if (
obj.y){
curtop += obj.y;
}    return 
curtop;}
function 
setStatus (theStatus, theObj){
obj = document.getElementById(theObj);
if (
obj) {
if (
theStatus == 1){
obj.innerHTML = "<div align=right>" + "<img src=\"/i/images/loading.gif\" alt=\"Loading\" vspace=2 hspace=2>" + "</div>";
} else {
obj.innerHTML = "<div align=right>" + "" + "</div>";
}}}
function 
doneloading(theframe,thefile){
var 
theloc = ""
theframe.processajax ("showimg",theloc);}
function 
popup(mylink, windowname, windowwidth, windowheight){
if (! 
window.focus)return true;
var 
href;
if (
typeof(mylink) == 'string')
href=mylink;
else
href=mylink.href;
window.open(href, windowname, 'width=' + windowwidth + ',height=' + windowheight + ',scrollbars=yes,resizable=yes');
return 
false;
}    var 
qsParm = new Array();
function 
qs(serverPage) {
var 
query = serverPage;
var 
parms = query.split('&');
for (var 
i=0; i<parms.length; i++) {
var 
pos = parms[i].indexOf('=');
if (
pos > 0) {
var 
key = parms[i].substring(0,pos);
var 
val = parms[i].substring(pos+1);
qsParm[key] = val;}}} 
Continua en otro post

Última edición por GatorV; 01/02/2009 a las 15:37 Razón: Agregando la demo :P
  #2 (permalink)  
Antiguo 01/02/2009, 06:33
Avatar de MaTyS  
Fecha de Ingreso: enero-2009
Ubicación: Mar del Plata
Mensajes: 220
Antigüedad: 17 años, 8 meses
Puntos: 18
Respuesta: [APORTE] Calendario {usando: AJAX, PHP y MySQL}

ajax_queue.js {PARTE 1}
Código PHP:
var    g_ajax_obj = new c_ajax_object;    
function 
c_ajax_object() {
};
c_ajax_object.prototype._dm_xmlhttprequest_type=null;        
c_ajax_object.prototype._dm_xmlhttprequestobject=null;    
c_ajax_object.prototype._dm_callback_function=null;        
c_ajax_object.prototype._dm_param=null;                    
c_ajax_object.prototype._dm_partialcallback_function=null;    
c_ajax_object.prototype._dm_param2=null;                        
c_ajax_object.prototype._dm_phase=0;                        
c_ajax_object.prototype._dm_queue=new Array();                
c_ajax_object.prototype._dm_queue_state=true;            
c_ajax_object.prototype._dm_committed=false;                    
c_ajax_object.prototype._dm_pre_queue_in_url=null;            
c_ajax_object.prototype._dm_pre_queue_in_callback=null;
c_ajax_object.prototype._dm_pre_queue_in_method=null;
c_ajax_object.prototype._dm_pre_queue_in_param=null;
c_ajax_object.prototype._dm_pre_queue_in_pcallback=null;
c_ajax_object.prototype._dm_pre_queue_in_param2=null;
c_ajax_object.prototype._dm_pre_queue_in_c2_phase=0;
c_ajax_object.prototype.GetNewRequestObject = function() {
    if (
window.XMLHttpRequest) {
        
this._dm_xmlhttprequestobject = new XMLHttpRequest();
    } else if (
window.ActiveXObject) {
        if (
this._dm_xmlhttprequest_type) {
            
this._dm_xmlhttprequestobject = new ActiveXObject(this._dm_xmlhttprequest_type);
        } else {
            var 
versions = ["Msxml2.XMLHTTP.7.0", "Msxml2.XMLHTTP.6.0", "Msxml2.XMLHTTP.5.0", "Msxml2.XMLHTTP.4.0", "MSXML2.XMLHTTP.3.0", "MSXML2.XMLHTTP", "Microsoft.XMLHTTP"];
            for (var 
i = 0; i < versions.length ; i++) {
             try {
                    
this._dm_xmlhttprequestobject = new ActiveXObject(versions[i]);
                    if (
this._dm_xmlhttprequestobject) {
                        
this._dm_xmlhttprequest_type = versions[i];
                        break;
                    }}
            catch (
objException) {};};}}};
c_ajax_object.prototype.QueueFlush = function ( ) {
    
this._dm_queue = new Array();
    
this.QueueResume();    // If the queue was paused, it is now re-enabled
}c_ajax_object.prototype.QueuePause = function ( ) {
    
this._dm_queue_state = false;
}
c_ajax_object.prototype.QueueResume = function ( ) {
    
this._dm_queue_state = true;
    
this.Dequeue();
}
c_ajax_object.prototype.QueueInterrupt = function ( in_url, in_callback, in_method, in_param, in_pcallback, in_param2, in_phase ) {
    var 
url = in_url;
    
this._dm_callback_function = in_callback;
    var 
method = in_method;
    
this._dm_param = in_param;
    
this._dm_partialcallback_function = in_pcallback;
    
this._dm_param2 = in_param2;
    
this._dm_phase = in_phase;
    
    if ( 
url && method ) {
        
ret = this._CallXMLHTTPObject ( url, method );
        }
    
    return 
ret;
}
c_ajax_object.prototype.QueueInject = function ( in_url, in_callback, in_method, in_param, in_pcallback, in_param2, in_phase ) {
    
this._dm_queue_state = false;
    for ( var 
counter = this._dm_queue.length; counter > 0; counter-- ) {
        
this._dm_queue[counter] = this._dm_queue[counter - 1];}    
this._dm_queue[0] = new Array ( in_url, in_callback, in_method, in_param, in_pcallback, in_param2, in_phase );
this._dm_queue_state = true;    // We don't call DeQueue, so we won't interrupt any request in progress.
}
c_ajax_object.prototype.CallXMLHTTPObjectGET = function ( in_url, in_callback ) {return this.CallXMLHTTPObject ( in_url, in_callback, "GET", null, null, 0 );
}
c_ajax_object.prototype.CallXMLHTTPObjectGETParam = function ( in_url, in_callback, in_param ) {
    return 
this.CallXMLHTTPObject ( in_url, in_callback, "GET", in_param, null, 0 );
}
c_ajax_object.prototype.CallXMLHTTPObjectGETParamPartial = function ( in_url, in_callback, in_param, in_pcallback, in_param2 ) {
    return 
this.CallXMLHTTPObject ( in_url, in_callback, "GET", in_param, in_pcallback, in_param2, 0 );}
c_ajax_object.prototype.CallXMLHTTPObjectGETParamPartialPhase = function ( in_url, in_callback, in_param, in_pcallback, in_param2, in_phase ) {return this.CallXMLHTTPObject ( in_url, in_callback, "GET", in_param, in_pcallback, in_param2, in_phase );
}
c_ajax_object.prototype.CallXMLHTTPObjectPOST = function ( in_url, in_callback ) {
    return 
this.CallXMLHTTPObject ( in_url, in_callback, "POST", null, null, 0 );
} 
Continua en otro post..
  #3 (permalink)  
Antiguo 01/02/2009, 06:33
Avatar de MaTyS  
Fecha de Ingreso: enero-2009
Ubicación: Mar del Plata
Mensajes: 220
Antigüedad: 17 años, 8 meses
Puntos: 18
Respuesta: [APORTE] Calendario {usando: AJAX, PHP y MySQL}

ajax_queue.js {PARTE 2}
Código PHP:
c_ajax_object.prototype.CallXMLHTTPObjectPOSTParam = function ( in_url, in_callback, in_param ) {
    return 
this.CallXMLHTTPObject ( in_url, in_callback, "POST", in_param, null, 0 );
}
c_ajax_object.prototype.CallXMLHTTPObjectPOSTParamPartial = function ( in_url, in_callback, in_param, in_pcallback, in_param2 ) {
    return 
this.CallXMLHTTPObject ( in_url, in_callback, "POST", in_param, in_pcallback, in_param2, 0 );
}
c_ajax_object.prototype.CallXMLHTTPObjectPOSTParamPartialPhase = function ( in_url, in_callback, in_param, in_pcallback, in_param2, in_phase ) {
    return 
this.CallXMLHTTPObject ( in_url, in_callback, "POST", in_param, in_pcallback, in_param2, in_phase );
}
c_ajax_object.prototype.CallXMLHTTPObject = function ( in_url, in_callback, in_method, in_param, in_pcallback, in_param2, in_phase ) {
    
this._dm_pre_queue_in_url=in_url;
    
this._dm_pre_queue_in_callback=in_callback;
    
this._dm_pre_queue_in_method=in_method;
    
this._dm_pre_queue_in_param=in_param;
    
this._dm_pre_queue_in_pcallback=in_pcallback;
    
this._dm_pre_queue_in_param2=in_param2;
    
this._dm_pre_queue_in_c2_phase=in_phase;
    if ( (
this._dm_pre_queue_in_c2_phase < 1) || (this._dm_pre_queue_in_c2_phase > 3) ) {
        
this._dm_pre_queue_in_c2_phase = 3;
        }
    
this.Enqueue();
    return 
true;
};
c_ajax_object.prototype.Enqueue = function ( ) {
    
this._dm_queue[this._dm_queue.length] = new Array ( this._dm_pre_queue_in_url, this._dm_pre_queue_in_callback,
        
this._dm_pre_queue_in_method, this._dm_pre_queue_in_param, this._dm_pre_queue_in_pcallback,
        
this._dm_pre_queue_in_param2, this._dm_pre_queue_in_c2_phase );
    
this._dm_pre_queue_in_url=null;
    
this._dm_pre_queue_in_callback=null;
    
this._dm_pre_queue_in_method=null;
    
this._dm_pre_queue_in_param=null;
    
this._dm_pre_queue_in_pcallback=null;
    
this._dm_pre_queue_in_param2=null;
    
this._dm_pre_queue_in_c2_phase=0;
    if ( !
this._dm_xmlhttprequestobject ) {
        
this.Dequeue();
        }
};
c_ajax_object.prototype.Dequeue = function ( ) {
    var 
command = null;
    var 
ret=false;
    
    if ( 
this._dm_queue.length && this._dm_queue_state ) {
        
command = this._dm_queue[0];
        
        var 
url = command[0];
        
this._dm_callback_function = command[1];
        var 
method = command[2];
        
this._dm_param = command[3];
        
this._dm_partialcallback_function = command[4];    
        
this._dm_param2 = command[5];    
        
this._dm_phase = command[6];
        
        for ( var 
counter = 1; counter < this._dm_queue.length; counter++ ) {
            
this._dm_queue[counter - 1] = this._dm_queue[counter];
            }
        
        
this._dm_queue.length = counter - 1;
        }
    
    if ( 
url && method ) {
        
ret = this._CallXMLHTTPObject ( url, method );
        }
    
    return 
ret;
};
c_ajax_object.prototype._CallXMLHTTPObject = function ( in_url, in_method ) {
    try {
        var 
sVars = null;
        if ( 
in_method == "POST" ) {
            var 
rmatch = /^([^?]*)?(.*)$/.exec ( in_url );
            
in_url = rmatch[1];
            
sVars = unescape ( rmatch[2] );
            }
        
        
this._dm_committed = false;
        
this.GetNewRequestObject();
        
this._dm_xmlhttprequestobject.open(in_method, in_url, true);
        
        if ( 
in_method == "POST" ) {
          
this._dm_xmlhttprequestobject.setRequestHeader("Method", "POST "+in_url+" HTTP/1.1");
          
this._dm_xmlhttprequestobject.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
            }
        
        
this._dm_xmlhttprequestobject.onreadystatechange = Handle_HTTP_Response;
        
this._dm_xmlhttprequestobject.send(sVars);
        
        return 
true;
        }
    catch ( 
z ) { }
    
    return 
false;
};
function 
Handle_HTTP_Response () {
    var 
ie = navigator.appName=='Microsoft Internet Explorer';
    
    if ( 
g_ajax_obj && g_ajax_obj._dm_xmlhttprequestobject ) {    
        if ( 
g_ajax_obj._dm_xmlhttprequestobject.readyState == 0 ) {
            }
        else {
            if ( 
g_ajax_obj._dm_xmlhttprequestobject.readyState == 1 ) {
                if ( 
g_ajax_obj._dm_phase == g_ajax_obj._dm_xmlhttprequestobject.readyState ) {
                    if ( 
g_ajax_obj._dm_partialcallback_function ) {
                        var 
resp;
                        if(!
ie && g_ajax_obj._dm_xmlhttprequestobject.responseText){
                            
resp=g_ajax_obj._dm_xmlhttprequestobject.responseText;
                            }
                        
g_ajax_obj._dm_partialcallback_function ( resp, g_ajax_obj._dm_param2 ? g_ajax_obj._dm_param2 : g_ajax_obj._dm_param );
                        }
                    }
                }
            else {
                if ( 
g_ajax_obj._dm_xmlhttprequestobject.readyState == 2 ) {
                    if ( 
g_ajax_obj._dm_phase == g_ajax_obj._dm_xmlhttprequestobject.readyState ) {
                        if ( 
g_ajax_obj._dm_partialcallback_function ) {
                            var 
resp;
                            if(!
ie && g_ajax_obj._dm_xmlhttprequestobject.responseText){
                                
resp=g_ajax_obj._dm_xmlhttprequestobject.responseText;
                                }
                            
g_ajax_obj._dm_partialcallback_function ( resp, g_ajax_obj._dm_param2 ? g_ajax_obj._dm_param2 : g_ajax_obj._dm_param );
                            }
                        }
                    }
                else {
                    if ( 
g_ajax_obj._dm_xmlhttprequestobject.readyState == 3 ) {    // Interactive
                        
g_ajax_obj._dm_committed = true;
                        if ( 
g_ajax_obj._dm_phase == g_ajax_obj._dm_xmlhttprequestobject.readyState ) {
                            if ( 
g_ajax_obj._dm_partialcallback_function ) {
                                var 
resp;
                                if(!
ie && g_ajax_obj._dm_xmlhttprequestobject.responseText){
                                    
resp=g_ajax_obj._dm_xmlhttprequestobject.responseText;
                                    }
                                
g_ajax_obj._dm_partialcallback_function ( resp, g_ajax_obj._dm_param2 ? g_ajax_obj._dm_param2 : g_ajax_obj._dm_param );
                                }
                            }
                        }
                    else {
                        if ( 
g_ajax_obj._dm_xmlhttprequestobject.readyState == 4 ) {    // We're done. Back to you.
                            
g_ajax_obj._dm_callback_function ( g_ajax_obj._dm_xmlhttprequestobject.responseText, g_ajax_obj._dm_param, g_ajax_obj._dm_param2 );
                            if( 
typeof g_ajax_obj != 'undefined' ) { // Just in case they nuked the object in the callback.
                                
g_ajax_obj._dm_xmlhttprequestobject = null;    // Kill the request object. we're done.
                                
g_ajax_obj._dm_committed = false;
                                
g_ajax_obj._dm_phase = 0;
                                
g_ajax_obj.Dequeue();
                                }}}}}}}
return 
true;
};
if (
typeof SupportsAjax == 'undefined'){    // In case we included ajax_threads.js
    
function SupportsAjax ( ) {
        var 
test_obj = new c_ajax_object;
        
        if( 
typeof test_obj != 'undefined' ) {
            
test_obj.GetNewRequestObject();
            
            if ( 
test_obj._dm_xmlhttprequestobject ) {
                
test_obj._dm_xmlhttprequestobject = null;
                
test_obj = null;
                return 
true;
                }
            
            
test_obj = null;
            }        
        return 
false;
    };}
function 
SimpleAJAXCall ( in_uri, in_callback, in_method, in_param ) {
    if ( (
typeof in_method == 'undefined') || ((in_method != 'GET')&&(in_method != 'POST')) ) {
        
in_method = 'GET';
        }
    
in_method = in_method.toUpperCase();
    if ( 
SupportsAjax() && (typeof in_uri != 'undefined') && in_uri && (typeof in_callback == 'function') ) {
        if ( 
in_method == 'POST' ) {
            return 
g_ajax_obj.CallXMLHTTPObjectPOSTParam ( in_uri, in_callback, in_param );
            } else {            return 
g_ajax_obj.CallXMLHTTPObjectGETParam ( in_uri, in_callback, in_param );
            }        } else {            return 
false;        }}; 
Continua en otro post...
  #4 (permalink)  
Antiguo 01/02/2009, 06:35
Avatar de MaTyS  
Fecha de Ingreso: enero-2009
Ubicación: Mar del Plata
Mensajes: 220
Antigüedad: 17 años, 8 meses
Puntos: 18
Respuesta: [APORTE] Calendario {usando: AJAX, PHP y MySQL}

calendar.php {Parte 1}
Código PHP:
<?PHP
$global 
= "";
$field = "";
$input = "";
$text = "";
$global['dbhost'] = "LOCALHOST";
$global['dbname'] = "CALENDARIO";
$global['dbuser'] = "ROOT";
$global['dbpass'] = "PASSWORD";
$global['timezone'] = ""; 
$global['envself'] = $_SERVER['PHP_SELF'];
ini_set('error_reporting', E_ALL | E_STRICT);
ini_set('display_errors', 'On');

if (isset(
$_GET['ajax'])) {
    
$input['ajax'] = mysql_escape_string($_GET['ajax']);
} else {
    
$input['ajax'] = "";
}
if (
$input['ajax']=="1") {

    if (isset(
$global['NOMBRE DE LA DB'])) {
    } else {
        if (
$global['NOMBRE DE LA DB']=="") {
            exit;
        }
    }

    
$field['ajax_calendar_username'] = mysql_escape_string($_GET['u']);
    
$field['ajax_calendar_date'] = mysql_escape_string($_GET['d']);

    if (
$field['ajax_calendar_date']!="") {

        
$field['ajax_calendar_status'] = mysql_escape_string($_GET['s']);

        if (
$field['ajax_calendar_status']=="1") {
            
$query = "INSERT INTO oc_calendar (start_date, end_date, username) VALUES ('$field[ajax_calendar_date] 00:01', '$field[ajax_calendar_date] 23:59', '$field[ajax_calendar_username]');";
            
$response = "Event added.";
        } else {
            
$query = "DELETE FROM oc_calendar WHERE start_date LIKE '$field[ajax_calendar_date]%' AND username = '$field[ajax_calendar_username]';";
            
$response = "Event removed.";
        }

        
database($query);

    }

    print 
"<span class=\"text\">".$response."</span>";
    exit;

}

function 
calendar($year = "", $month = "", $username = "0", $small = "0", $calendar_owner = "0") {

global 
$global;
global 
$field;
global 
$input;
global 
$text;

if (isset(
$global['timezone'])) {
} else {
    
$global['timezone'] = "";
}
if (
$global['timezone']=="") {
    
$global['timezone'] = "America/Los_Angeles";
}

if (
function_exists('date_default_timezone_set')) {
    
date_default_timezone_set($global['timezone']);
}

if (
"$month"=="") {
    
$month = date ("n");
}
if (
"$year"=="") {
    
$year = date ("Y");
}

if (isset(
$_GET['m'])) {
    
$month = mysql_escape_string($_GET['m']);
}
if (isset(
$_GET['y'])) {
    
$year = mysql_escape_string($_GET['y']);
}



$last_year = $year;
$last_month = $month;
$last_month--;
if (
"$last_month"=="0") {
$last_year--;
$last_month = "12";
}

$next_year = $year;
$next_month = $month;
$next_month++;
if (
"$next_month"=="13") {
$next_year++;
$next_month = "1";
}

$timestamp = mktime (0, 0, 0, $month, 1, $year);

$time = date("H:i:s");

$monthname = date("F", $timestamp);

if (
$calendar_owner=="1") {
    print<<<END
<script type="text/javascript" src="functions.js"></script>
<script type="text/javascript" src="ajax_queue.js"></script>
<script type="text/javascript">

var calendar_status = new Array();

function calendar_date(id,status,username,default_color) {

    var dateid = document.getElementById(id);

    if (calendar_status[id]) {
    } else {
        calendar_status[id] = status;
    }
    if (calendar_status[id]=="0") {
        calendar_status[id] = "1";
    } else {
        calendar_status[id] = "0";
    }

    SimpleAJAXCall('calendar.php?ajax=1&u=' + username + '&d=' + id + '&s=' + calendar_status[id],SimpleAJAXCallback, '', 'response');

    if (calendar_status[id]=="0") {
        dateid.style.background = "#" + default_color;
    } else {
        dateid.style.background = "#0067C9";
    }
}

</script>
END;
}

if (
"$small"=="1") {
    
$width = "18";
    
$small = "_small";
} else {
    
$width = "22";
    
$small = "";
}

#<table cellpadding=1 cellspacing=0 border=0 class="rounded">
#<tr>
#    <td bgcolor="#000080">
#<table cellpadding=5 cellspacing=0 border=0 class="rounded">
#<tr>
#    <td bgcolor="#e7e7e7">

$output = <<<END
    <table border="0" cellpadding="3" cellspacing="2" class="rounded5">
        <tr>
        <td width=$width>
END;
if (
$small=="") {
$output .= <<<END
        <span class="calendar_navigation$small"><a href="$global[envself]?u=$username&y=$last_year&m=$last_month" class="calendar_navigation$small"><b>&lt;&lt;</b></a></span>
END;
}
$output .= <<<END
        </td>

        <td colspan="5" align="center">
            <span class="calendar_date$small"><b>$monthname $year</span>
        </td>
        <td width=$width align=right>
END;
if (
$small=="") {
$output .= <<<END
        <span class="calendar_navigation$small"><a href="$global[envself]?u=$username&y=$next_year&m=$next_month" class="calendar_navigation$small"><b>&gt;&gt;</b></a></span>
END;
}
$output .= <<<END
        </td>
        </tr>
        <tr>
        <td width=$width align=center bgcolor="#d7d7d7">
            <span class="calendar_day$small"><b>Su</b></span>
        </td>
        <td width=$width align=center bgcolor="#d7d7d7">
            <span class="calendar_day$small"><b>M</b></span>
        </td>
        <td width=$width align=center bgcolor="#d7d7d7">
            <span class="calendar_day$small"><b>Tu</b></span>
        </td>
        <td width=$width align=center bgcolor="#d7d7d7">
            <span class="calendar_day$small"><b>W</b></span>
        </td>
        <td width=$width align=center bgcolor="#d7d7d7">
            <span class="calendar_day$small"><b>Th</b></span>
        </td>
        <td width=$width align=center bgcolor="#d7d7d7">
            <span class="calendar_day$small"><b>F</b></span>
        </td>
        <td width=$width align=center bgcolor="#d7d7d7">
            <span class="calendar_day$small"><b>Sa</b></span>
        </td>
        </tr>
    </table>
    <table border="0" cellpadding="3" cellspacing="2" class="rounded5">
END;

            
$monthstart = date("w", $timestamp);
            
//if ($monthstart == 0){
                //$monthstart = 7;
            //}
            
$lastday = date("d", mktime (0, 0, 0, $month + 1, 0, $year));
            
$startdate = -$monthstart;

            
//Figure out how many rows we need.
            
$numrows = ceil (((date("t",mktime (0, 0, 0, $month + 1, 0, $year)) + $monthstart) / 7));

            
//Let's make an appropriate number of rows...


            
for ($k = 1; $k <= $numrows; $k++){
                
$output .= "<tr>";
                
//Use 7 columns (for 7 days)...
                
for ($i = 0; $i < 7; $i++){
                    
$startdate++;
                    if ((
$startdate <= 0) || ($startdate > $lastday)){
                        
//If we have a blank day in the calendar.
                        
$output .= "<td><span class=\"calendar_date_number$small\">&nbsp;</span></td>";
                    } else {

                        if (
strlen($month) == "1") {
                            
$fmonth = "0".$month;
                        } else {
                            
$fmonth = $month;
                        }
                        if (
strlen($startdate) == "1") {
                            
$fstartdate = "0".$startdate;
                        } else {
                            
$fstartdate = $startdate;
                        }


                        
$lookup_date = "$year"."-"."$fmonth"."-"."$fstartdate";
                        
$date_status = "";

                        if ((
$username!="") && ($global['dbuser']!="")) {
                            
$date_status = date_status($lookup_date, $username);
                        }

                        
$status_color = "0067C9";
                        
$js_status = "1";

                        if (
$startdate == date("j") && $month == date("n") && $year == date("Y")){

                            if (
$date_status!="1") {
                                
$status_color = "CAD7F9";
                                
$js_status = "0";
                            }

                            
$output .= "<td id=\"$year"."-"."$fmonth"."-"."$fstartdate\" width=$width valign=top align=center onclick=\"calendar_date('$year"."-"."$fmonth"."-"."$fstartdate','$js_status','$username','CAD7F9');\" bgcolor=\"#$status_color\">

                            <table width=\"100%\" cellpadding=2 cellspacing=0 border=0><tr><td align=center>

                            <span class=\"calendar_date_number$small\">$startdate</span>

                            </td></tr></table></td>"
;

                        } else {

                            if (
$date_status!="1") {
                                
$status_color = "e7e7e7";
                                
$js_status = "0";
                            }

                            
$output .= "<td id=\"$year"."-"."$fmonth"."-"."$fstartdate\" width=$width valign=top align=center onclick=\"calendar_date('$year"."-"."$fmonth"."-"."$fstartdate','$js_status','$username','e7e7e7');\" bgcolor=\"#$status_color\">

                            <table width=\"100%\" cellpadding=2 cellspacing=0 border=0><tr><td align=center>

                            <span class=\"calendar_date_number$small\">$startdate</span>

                            </td></tr></table></td>"
;
                        }
                    }
                }
                
$output .= "</tr>";
            }
    
$output .= "</table>"; # </td></tr></table></td></tr></table>

    
if ("$calendar_owner"=="1") {
RECUERDEN CONFIGURAR ESTO:
QUE FIGURA AL PRINCIPIO DE CALENDAR.PHP
Cita:
$global['dbhost'] = "LOCALHOST";
$global['dbname'] = "CALENDARIO";
$global['dbuser'] = "ROOT";
$global['dbpass'] = "PASSWORD";
$global['timezone'] = "";
$global['envself'] = $_SERVER['PHP_SELF'];
ini_set('error_reporting', E_ALL | E_STRICT);
ini_set('display_errors', 'On');

if (isset($_GET['ajax'])) {
$input['ajax'] = mysql_escape_string($_GET['ajax']);
} else {
$input['ajax'] = "";
}
if ($input['ajax']=="1") {

if (isset($global['NOMBRE DE LA DB'])) {
} else {
if ($global['NOMBRE DE LA DB']=="") {
exit;
}
}
  #5 (permalink)  
Antiguo 01/02/2009, 06:36
Avatar de MaTyS  
Fecha de Ingreso: enero-2009
Ubicación: Mar del Plata
Mensajes: 220
Antigüedad: 17 años, 8 meses
Puntos: 18
Respuesta: [APORTE] Calendario {usando: AJAX, PHP y MySQL}

calendar.php {Parte 2}

Código PHP:
$output = "<div id=\"response\"></div>".$output;
    }
return 
$output;
}

function 
database($querydb) {

global 
$global;
global 
$field;

if (isset(
$global['queries'])) {
    
$global['queries']++;
} else {
    
$global['queries'] = "1";
}
$field['queries'] = $global['queries'];
if (isset(
$global['query_log'])) {
    
$global['query_log'] .= "\n<br>$querydb";
} else {
    
$global['query_log'] = "$querydb";
}

mysql_connect($global['dbhost'], $global['dbuser'], $global['dbpass']) or return_error("Unable to connect to host $global[dbhost]");
mysql_select_db($global['dbname']) or return_error("Unable to select database $global[dbname]");
$global['dbresult'] = mysql_query($querydb) or return_error("Query Error: $querydb");

if ((
substr($querydb,0,6)!="INSERT") && (substr($querydb,0,6)!="UPDATE") && (substr($querydb,0,6)!="DELETE")) {

    
$global['dbnumber'] = mysql_numrows($global['dbresult']);

}

return;

}

function 
return_error($error) {
print 
$error;
exit;
}

function 
date_status($date, $username) {
global 
$global;
 global 
$field;
 global 
$input;
 global 
$text;
 
 
$status = "0";
 
 if (
$username!="") {
 
     
$query = "SELECT id, start_date, end_date FROM oc_calendar WHERE username = '$username' AND (date_format(start_date,'%Y-%m-%d') <= date_format('$date','%Y-%m-%d') AND date_format(end_date,'%Y-%m-%d') >= date_format('$date','%Y-%m-%d'))";
 
     
database($query);
 
     for (
$i = 0; $i < $global['dbnumber']; $i++) {
 
         
$status = "1";
 
         
$event_id = mysql_result($global['dbresult'],$i,"id");
         
$event_start_date = mysql_result($global['dbresult'],$i,"start_date");
         
$event_end_date = mysql_result($global['dbresult'],$i,"end_date");
 }
 }
 return 
$status;
 }
 
?> 
  #6 (permalink)  
Antiguo 01/02/2009, 06:47
Avatar de MaTyS  
Fecha de Ingreso: enero-2009
Ubicación: Mar del Plata
Mensajes: 220
Antigüedad: 17 años, 8 meses
Puntos: 18
Respuesta: [APORTE] Calendario {usando: AJAX, PHP y MySQL}

Listo ahora como usarlo ¿?.

Bueno hay varias formas.
Les dejo un ejemplo y mas abajo les ponga varias funciones para usarlo :).
index.php ó example.php
Código PHP:
<?PHP
print<<<END
<style type="text/css">
.calendar_date                    { font-family : Verdana, Arial, Helvetica, sans-serif; font-size : 14px; color : #222222; }
a.calendar_date                    { color: #0000aa; text-decoration: none; }
a.calendar_date:hover            { color: #000080; text-decoration: underline; }

.calendar_navigation            { font-family : Verdana, Arial, Helvetica, sans-serif; font-size : 14px; color : #222222; }
a.calendar_navigation            { color: #0000aa; text-decoration: none; }
a.calendar_navigation:hover        { color: #000080; text-decoration: underline; }

.calendar_day                    { font-family : Verdana, Arial, Helvetica, sans-serif; font-size : 11px; color : #222222; }
a.calendar_day                    { color: #0000aa; text-decoration: none; }
a.calendar_day:hover            { color: #000080; text-decoration: underline; }

.calendar_date_number            { font-family : Verdana, Arial, Helvetica, sans-serif; font-size : 10px; color : #222222; }
a.calendar_date_number            { color: #0000aa; text-decoration: none; }
a.calendar_date_number:hover    { color: #000080; text-decoration: underline; }

.calendar_date_small                    { font-family : Verdana, Arial, Helvetica, sans-serif; font-size : 12px; color : #222222; }
a.calendar_date_small                    { color: #0000aa; text-decoration: none; }
a.calendar_date_small:hover            { color: #000080; text-decoration: underline; }

.calendar_navigation_small            { font-family : Verdana, Arial, Helvetica, sans-serif; font-size : 12px; color : #222222; }
a.calendar_navigation_small            { color: #0000aa; text-decoration: none; }
a.calendar_navigation_small:hover        { color: #000080; text-decoration: underline; }

.calendar_day_small                    { font-family : Verdana, Arial, Helvetica, sans-serif; font-size : 10px; color : #222222; }
a.calendar_day_small                    { color: #0000aa; text-decoration: none; }
a.calendar_day_small:hover            { color: #000080; text-decoration: underline; }

.calendar_date_number_small            { font-family : Verdana, Arial, Helvetica, sans-serif; font-size : 9px; color : #222222; }
a.calendar_date_number_small            { color: #0000aa; text-decoration: none; }
a.calendar_date_number_small:hover    { color: #000080; text-decoration: underline; }

table.rounded td         { -moz-border-radius: 10px 10px 10px 10px; }
table.rounded5 td         { -moz-border-radius: 5px 5px 5px 5px; }
table.notrounded td         { -moz-border-radius: 0px 0px 0px 0px; }

.text                    { font-family : Verdana, Arial, Helvetica, sans-serif; font-size : 13px; color : #222222; }
a.text                    { color: #0000aa; text-decoration: none; }
a.text:hover            { color: #222222; text-decoration: underline; }

</style>
END;

require 
"calendar.php";
print 
calendar("", "", "testuser", 0, 1);
?>
Uso:
Después del ajuste del css y variables de base de datos según el archivo de ejemplo, simplemente usan el siguiente para mostrar un calendario básico:
Cita:
require "calendar.php";
print calendar();
Definir un año/mes para mostrar:
Cita:
require "calendar.php";
print calendar("2011", "08");
Definir un calendario ID/propietario:
Cita:
require "calendar.php";
print calendar("", "", "ID");
Definir un calendario ID/propietario e indicar al propietario ve el calendario/carga la selección de estado de día de AJAX:
Cita:
require "calendar.php";
print calendar("", "", "ID", "", 1);
Mostrar un pequeño calendario sin navegación de mes:
Cita:
require "calendar.php";
print calendar("", "", "", 1);
Utilizar correctamente el print calendar:
Cita:
calendar(AÑO, MES, CALENDARIO ID, PEQUEÑO CALENDARIO, CALENDARIO PROPIETARIO);
Espero que les sirva :)
  #7 (permalink)  
Antiguo 01/02/2009, 09:54
Avatar de MaTyS  
Fecha de Ingreso: enero-2009
Ubicación: Mar del Plata
Mensajes: 220
Antigüedad: 17 años, 8 meses
Puntos: 18
Respuesta: [APORTE] Calendario {usando: AJAX, PHP y MySQL}

Arregle los LINKS :)
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:25.