El objetivo de este proyecto es crear un blog para un único usuario
Un ejemplo de blog puede probarse en la ventana siguiente:
Esta puede ser la consulta de creación de tabla para este proyecto:
// Tamaño de los campos en la tabla
define('TAM_ENTRADA', 255); // Tamaño del campo Entradas > Entrada
define('MAX_REG_ENTRADAS', 10); // Número máximo de registros en la tabla Entradas
// Consultas de creación de tabla en MySQL
$consulta = "CREATE TABLE $dbEntradas (
id INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
fecha DATE,
entrada VARCHAR(".TAM_ENTRADA."),
PRIMARY KEY(id)
)";
$consulta = "CREATE TABLE $dbEntradas (
id INTEGER PRIMARY KEY,
fecha DATE,
entrada VARCHAR(".TAM_ENTRADA.")
)";
La página inicial del blog muestra las opciones disponibles: Editar, Leer y Borrar todo
Bienvenido al blog de Fulanito.
Al hacer clic en Editar desde la página de inicio, aparece la fecha del día, un área de texto y un calendario en el que se puede hacer clic en todos los días.
10/3/2005
|
Detalles:
Al hacer clic en Leer desde la página de inicio, aparece la fecha del día, un área de texto y un calendario en el que se puede hacer clic en los días que tienen entrada.
10/3/2005Hoy empiezo mi blog |
Detalles:
La opción Borrar todo permite eliminar todas las entradas del blog.
Para generar el calendario, se puede utilizar esta función, que requiere dos argumentos:
<?php
function calendario ($fecha, $enlaces)
{
global $db, $dbEntradas;
date_default_timezone_set('Europe/Madrid');
if (!ctype_digit(substr($fecha, 5, 2))||!ctype_digit(substr($fecha, 8, 2))
||!ctype_digit(substr($fecha, 0, 4))) {
$fecha = date('Y-m-d');
} elseif (!checkdate((int)substr($fecha, 5, 2), (int)substr($fecha, 8, 2),
(int)substr($fecha, 0, 4))) {
$fecha = date('Y-m-d');
}
$diaInicial = substr($fecha, 8, 2);
$mes = substr($fecha, 5, 2);
$anyo = substr($fecha, 0, 4);
$esBisiesto = (($anyo%400 == 0) || (($anyo%100 != 0) && ($anyo%4 == 0)))
? '1' : '0';
$duraMeses = ($esBisiesto) ?
array ( 0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31, 31) :
array ( 0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31, 31);
$meses = array('', 'Enero', 'Febrero', 'Marzo', 'Abril', 'Mayo',
'Junio', 'Julio', 'Agosto', 'Septiembre', 'Octubre',
'Noviembre', 'Diciembre');
if ($diaInicial > $duraMeses[(int)($mes)-1]) {
$fechaAnt = date('Y-m-d', mktime(0, 0, 0, $mes-1, $duraMeses[(int)($mes)-1], $anyo));
} else {
$fechaAnt = date('Y-m-d', mktime(0, 0, 0, $mes-1, $diaInicial, $anyo));
}
$diaAnt = substr($fechaAnt, 8, 2);
$mesAnt = substr($fechaAnt, 5, 2);
$anyoAnt = substr($fechaAnt, 0, 4);
if ($diaInicial > $duraMeses[(int)($mes)+1]) {
$fechaSig = date('Y-m-d', mktime(0, 0, 0, $mes+1, $duraMeses[(int)($mes)+1], $anyo));
} else {
$fechaSig = date('Y-m-d', mktime(0, 0, 0, $mes+1, $diaInicial, $anyo));
}
$diaSig = substr($fechaSig, 8, 2);
$mesSig = substr($fechaSig, 5, 2);
$anyoSig = substr($fechaSig, 0, 4);
$jd = gregoriantojd($mes, 1, $anyo);
$dia = (jddayofweek($jd, 0)+6)%7;
$dias = array ('L', 'M', 'X','J','V','S','D');
$diaSemana = $dias[$dia];
print "<div class=\"calendario\">\n <table border=\"1\" class=\"calendario\" >\n";
if ($enlaces=="editar") {
print " <caption><a href=\"editar.php?fecha=$fechaAnt\"><<</a> ".
$meses[(int)($mes)]." de $anyo <a href=\"editar.php?fecha="
."$fechaSig\">>></a>
</caption>\n";
} else {
print " <caption><a href=\"leer.php?fecha=$fechaAnt\"><<</a> "
.$meses[(int)($mes)]." de $anyo <a href=\"leer.php?fecha="
."$fechaSig\">>></a></caption>\n";
}
print " <tr>\n <th>L</th>\n <th>M</th>\n <th>X</th>
<th>J</th>\n <th>V</th>\n <th>S</th>\n <th>D</th>\n </tr>\n";
for ($n=0; $n<=5; $n++) {
$num_inicio = 1-$dia+$n*7;
if ($num_inicio <= $duraMeses[(int)($mes)]) {
print " <tr>\n";
for ($i=0; $i<7; $i++) {
$num = $num_inicio + $i;
if ($num > 0 && $num <= $duraMeses[(int)($mes)]) {
if ($enlaces=='editar') {
print " <td class=\"enlace\"><a href=\"editar.php"
."?fecha=$anyo-$mes-".sprintf("%02d", $num)
."\">$num</a></td>\n";
} elseif ($enlaces=='leer') {
$consulta = "SELECT COUNT(*) FROM $dbEntradas WHERE "
."fecha='$anyo-$mes-".sprintf("%02d", $num)."'";
$result = $db->query($consulta);
if (!$result) {
print " <td>$num</td>\n";
} elseif ($result->fetchColumn()) {
print " <td class=\"enlace\"><a "
."href=\"leer.php?fecha=$anyo-$mes-"
.sprintf("%02d", $num)."\">$num</a></td>\n";
} else {
print " <td>$num</td>\n";
}
}
} else {
print " <td></td>\n";
}
}
print " </tr>\n";
}
}
print " </table>\n</div>\n\n";
}
?>
Esta obra está bajo una licencia de Creative
Commons Reconocimiento-CompartirIgual 3.0 España.