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: 15 años, 3 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` (
  `
idmediumint(9NOT NULL auto_increment,
  `
start_datedatetime NOT NULL,
  `
end_datedatetime NOT NULL,
  `
usernamevarchar(255NOT NULL,
  
PRIMARY KEY  (`id`)
AUTO_INCREMENT=

functions.js
Código PHP:
function SimpleAJAXCallback(in_textobj) {
document.getElementById(obj).innerHTML in_text;
setStatus ("","showimg");
setStatus ("","showimg2");
}
function 
checkAll(checknameexby) {
var 
bgcolor 'ffffff';
for (
0checkname.lengthi++) {
checkname[i].checked exby.checkedtrue: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 (theStatustheObj){
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(mylinkwindownamewindowwidthwindowheight){
if (! 
window.focus)return true;
var 
href;
if (
typeof(mylink) == 'string')
href=mylink;
else
href=mylink.href;
window.open(hrefwindowname'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=0i<parms.lengthi++) {
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: 15 años, 3 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 
0versions.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_urlin_callbackin_methodin_paramin_pcallbackin_param2in_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 urlmethod );
        }
    
    return 
ret;
}
c_ajax_object.prototype.QueueInject = function ( in_urlin_callbackin_methodin_paramin_pcallbackin_param2in_phase ) {
    
this._dm_queue_state false;
    for ( var 
counter this._dm_queue.lengthcounter 0counter-- ) {
        
this._dm_queue[counter] = this._dm_queue[counter 1];}    
this._dm_queue[0] = new Array ( in_urlin_callbackin_methodin_paramin_pcallbackin_param2in_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_urlin_callback ) {return this.CallXMLHTTPObject in_urlin_callback"GET"nullnull);
}
c_ajax_object.prototype.CallXMLHTTPObjectGETParam = function ( in_urlin_callbackin_param ) {
    return 
this.CallXMLHTTPObject in_urlin_callback"GET"in_paramnull);
}
c_ajax_object.prototype.CallXMLHTTPObjectGETParamPartial = function ( in_urlin_callbackin_paramin_pcallbackin_param2 ) {
    return 
this.CallXMLHTTPObject in_urlin_callback"GET"in_paramin_pcallbackin_param2);}
c_ajax_object.prototype.CallXMLHTTPObjectGETParamPartialPhase = function ( in_urlin_callbackin_paramin_pcallbackin_param2in_phase ) {return this.CallXMLHTTPObject in_urlin_callback"GET"in_paramin_pcallbackin_param2in_phase );
}
c_ajax_object.prototype.CallXMLHTTPObjectPOST = function ( in_urlin_callback ) {
    return 
this.CallXMLHTTPObject in_urlin_callback"POST"nullnull);

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: 15 años, 3 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_urlin_callbackin_param ) {
    return 
this.CallXMLHTTPObject in_urlin_callback"POST"in_paramnull);
}
c_ajax_object.prototype.CallXMLHTTPObjectPOSTParamPartial = function ( in_urlin_callbackin_paramin_pcallbackin_param2 ) {
    return 
this.CallXMLHTTPObject in_urlin_callback"POST"in_paramin_pcallbackin_param2);
}
c_ajax_object.prototype.CallXMLHTTPObjectPOSTParamPartialPhase = function ( in_urlin_callbackin_paramin_pcallbackin_param2in_phase ) {
    return 
this.CallXMLHTTPObject in_urlin_callback"POST"in_paramin_pcallbackin_param2in_phase );
}
c_ajax_object.prototype.CallXMLHTTPObject = function ( in_urlin_callbackin_methodin_paramin_pcallbackin_param2in_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_urlthis._dm_pre_queue_in_callback,
        
this._dm_pre_queue_in_methodthis._dm_pre_queue_in_paramthis._dm_pre_queue_in_pcallback,
        
this._dm_pre_queue_in_param2this._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 1counter this._dm_queue.lengthcounter++ ) {
            
this._dm_queue[counter 1] = this._dm_queue[counter];
            }
        
        
this._dm_queue.length counter 1;
        }
    
    if ( 
url && method ) {
        
ret this._CallXMLHTTPObject urlmethod );
        }
    
    return 
ret;
};
c_ajax_object.prototype._CallXMLHTTPObject = function ( in_urlin_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_methodin_urltrue);
        
        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 ( 
) { }
    
    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 == ) {
            }
        else {
            if ( 
g_ajax_obj._dm_xmlhttprequestobject.readyState == ) {
                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 respg_ajax_obj._dm_param2 g_ajax_obj._dm_param2 g_ajax_obj._dm_param );
                        }
                    }
                }
            else {
                if ( 
g_ajax_obj._dm_xmlhttprequestobject.readyState == ) {
                    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 respg_ajax_obj._dm_param2 g_ajax_obj._dm_param2 g_ajax_obj._dm_param );
                            }
                        }
                    }
                else {
                    if ( 
g_ajax_obj._dm_xmlhttprequestobject.readyState == ) {    // 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 respg_ajax_obj._dm_param2 g_ajax_obj._dm_param2 g_ajax_obj._dm_param );
                                }
                            }
                        }
                    else {
                        if ( 
g_ajax_obj._dm_xmlhttprequestobject.readyState == ) {    // We're done. Back to you.
                            
g_ajax_obj._dm_callback_function g_ajax_obj._dm_xmlhttprequestobject.responseTextg_ajax_obj._dm_paramg_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_uriin_callbackin_methodin_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_uriin_callbackin_param );
            } else {            return 
g_ajax_obj.CallXMLHTTPObjectGETParam in_uriin_callbackin_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: 15 años, 3 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 (000$month1$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 (000$month 10$year));
            
$startdate = -$monthstart;

            
//Figure out how many rows we need.
            
$numrows ceil (((date("t",mktime (000$month 10$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: 15 años, 3 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: 15 años, 3 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"01);
?>
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: 15 años, 3 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 16:04.