MULTIMEDIA, Video digital, Grabación, Diseño gráfico, Diseño web, Programación > Webmasters - Diseño Web - Programación - Diseño gráfico

incrustar calendario php en una aplicación web (SOLUCIONADO)

(1/2) > >>

vlad:
Hola a todos.
Estoy haciendo prácticas de empresa y me han asignado la tarea de crear una sencilla web de registro de clientes, la cual estoy programando en PHP. No se apenas nada de este lenguaje, asi que aprendo mientras voy programando.
Ya tengo funcioando el registro y posterior login de los usuarios, pero ahora he de "incrustar" un calendario en la página que visualiza el cliente nada mas identificarse, para que haga click en un dia de ese calendario y vea si puede coger cita. He encontrado esto y he podido meterlo, ademas de que he estudiado su código y me sería fácil capturar y tratar la fecha elegida por el cliente para hacer con ella lo que quisiera.
Lo malo es que soy incapaz de conseguir que solo se vea si el cliente ha entrado satisfactoriamente al sistema. Este es el código que comprueba que nos hemos identificado correctamente:


--- Código: ---if($autenticado==FALSE){

echo "<br />";

echo "Fallo en la autenticaci&oacuten. Ser&aacute redirigido de vuelta...";

echo "<meta http-equiv='refresh' content='2; url=login.php'/>";

}else if($autenticado==TRUE){

echo "<br />";

echo "<p style='color:blue;'>Bienvenido a ".EMPRESA."</p>";

$acceso=TRUE; // hemos accedido correctamente

}

--- Fin del código ---

Como podéis ver, eso es un script php y el IDE que estoy usando para programar, Aptana, no me deja incrustar el código del calendario tras el "Bienvenido a ".EMPRESA."", ya que dicho código incorpora otro script interno. Para entendernos, según veo en PHP no se puede hacer lo siguiente:


--- Código: ---<?php

    <?php

    ?>

?>
--- Fin del código ---

Si no me he exlicado con claridad decidmelo. Y por supuesto, si conocéis algún otro calendario que me pueda servir os lo agradecería mucho.
Un saludo y gracias.

Liamngls:
Vaya por delante que yo de programar cero, lo poco que pretendo conocer es lo poco que he necesitado usar en mi blog y lo que te comento espero que no te líe más; la cuestión es que a mi me pasaba algo parecido.

En Wordpress hay un archivo de funciones (functions.php) donde se almacenan diferentes scripts php para ser ejecutados, la cuestión es que alguna vez cuando he ido a un sitio a copiar un código para introducir en ese archivo me lo he encontrado completo, con las etiquetas de apertura y cierre de lenguaje.


--- Código: ---<?php
function related_posts_shortcode( $atts ) {
 
extract(shortcode_atts(array(
    'limit' => '5',
), $atts));
 
global $wpdb, $post, $table_prefix;
 
if ($post->ID) {
 
$retval = '
<ul>';
 
// Get tags
$tags = wp_get_post_tags($post->ID);
$tagsarray = array();
foreach ($tags as $tag) {
$tagsarray[] = $tag->term_id;
}
$tagslist = implode(',', $tagsarray);
 
// Do the query
$q = "
SELECT p.*, count(tr.object_id) as count
FROM $wpdb->term_taxonomy AS tt, $wpdb->term_relationships AS tr, $wpdb->posts AS p
WHERE tt.taxonomy ='post_tag'
AND tt.term_taxonomy_id = tr.term_taxonomy_id
AND tr.object_id  = p.ID
AND tt.term_id IN ($tagslist)
AND p.ID != $post->ID
AND p.post_status = 'publish'
AND p.post_date_gmt < NOW()
GROUP BY tr.object_id
ORDER BY count DESC, p.post_date_gmt DESC
LIMIT $limit;";
 
$related = $wpdb->get_results($q);
 
if ( $related ) {
foreach($related as $r) {
$retval .= '
<li><a title="'.wptexturize($r->post_title).'" href="'.get_permalink($r->ID).'">'.wptexturize($r->post_title).'</a></li>
';
}
} else {
$retval .= '
<li>No related posts found</li>
';
}
$retval .= '</ul>
';
return $retval;
}
return;
}
add_shortcode('related_posts', 'related_posts_shortcode');
?>
--- Fin del código ---

Este por ejemplo, así que cuando localizo una nueva función que quiero añadir simplemente elimino las etiquetas de lenguaje y la añado a partir del final de la función anterior en una nueva línea:


--- Código: ---<?php
function related_posts_shortcode( $atts ) {
 
extract(shortcode_atts(array(
    'limit' => '5',
), $atts));
 
global $wpdb, $post, $table_prefix;
 
if ($post->ID) {
 
$retval = '
<ul>';
 
// Get tags
$tags = wp_get_post_tags($post->ID);
$tagsarray = array();
foreach ($tags as $tag) {
$tagsarray[] = $tag->term_id;
}
$tagslist = implode(',', $tagsarray);
 
// Do the query
$q = "
SELECT p.*, count(tr.object_id) as count
FROM $wpdb->term_taxonomy AS tt, $wpdb->term_relationships AS tr, $wpdb->posts AS p
WHERE tt.taxonomy ='post_tag'
AND tt.term_taxonomy_id = tr.term_taxonomy_id
AND tr.object_id  = p.ID
AND tt.term_id IN ($tagslist)
AND p.ID != $post->ID
AND p.post_status = 'publish'
AND p.post_date_gmt < NOW()
GROUP BY tr.object_id
ORDER BY count DESC, p.post_date_gmt DESC
LIMIT $limit;";
 
$related = $wpdb->get_results($q);
 
if ( $related ) {
foreach($related as $r) {
$retval .= '
<li><a title="'.wptexturize($r->post_title).'" href="'.get_permalink($r->ID).'">'.wptexturize($r->post_title).'</a></li>
';
}
} else {
$retval .= '
<li>No related posts found</li>
';
}
$retval .= '</ul>
';
return $retval;
}
return;
}
add_shortcode('related_posts', 'related_posts_shortcode');

function chart_shortcode( $atts ) {
extract(shortcode_atts(array(
    'data' => '',
    'colors' => '',
    'size' => '400x200',
    'bg' => 'ffffff',
    'title' => '',
    'labels' => '',
    'advanced' => '',
    'type' => 'pie'
), $atts));
 
switch ($type) {
case 'line' :
$charttype = 'lc'; break;
case 'xyline' :
$charttype = 'lxy'; break;
case 'sparkline' :
$charttype = 'ls'; break;
case 'meter' :
$charttype = 'gom'; break;
case 'scatter' :
$charttype = 's'; break;
case 'venn' :
$charttype = 'v'; break;
case 'pie' :
$charttype = 'p3'; break;
case 'pie2d' :
$charttype = 'p'; break;
default :
$charttype = $type;
break;
}
 
if ($title) $string .= '&chtt='.$title.'';
if ($labels) $string .= '&chl='.$labels.'';
if ($colors) $string .= '&chco='.$colors.'';
$string .= '&chs='.$size.'';
$string .= '&chd=t:'.$data.'';
$string .= '&chf='.$bg.'';
 
return '<img title="'.$title.'" src="http://chart.apis.google.com/chart?cht='.$charttype.''.$string.$advanced.'" alt="'.$title.'" />';
}
add_shortcode('chart', 'chart_shortcode');
?>
--- Fin del código ---

No sé si esto te servirá, si podrás hacerlo del mismo modo pero tiene que haber algún modo (así de sencillo o más complicado) de incorporar más código php dentro de la página.

Otra solución que se me ocurre que te pudiese servir es que en caso de autentificación redirecciones la página a una nueva, por ejemplo index2.php o el nombre que sea donde si puedas meter el calendario sin problemas.

vlad:
El problema es que, hasta donde sé yo de PHP (que la verdad, no es mucho), si redirecciono a otra página tengo dos problemas: el primero que sigo teniendo que condicionar la visualización de ese calendario, con lo que seguría como estoy, y también que tengo que impedir que alguien "llegue directamente" hasta esa segunda página,
Salu2.

Liamngls:
Pues ahí supongo que como hacen las webs que tienen usuarios con contenido solo para estos, con el uso de cookies que verifiquen que el usuario está logueado en el momento de ir a acceder a esa página o cualquier otra que no deba ver un visitante.

vlad:

--- Cita de: Liamngls en 18 de Diciembre de 2011, 03:35:17 pm ---Pues ahí supongo que como hacen las webs que tienen usuarios con contenido solo para estos, con el uso de cookies que verifiquen que el usuario está logueado en el momento de ir a acceder a esa página o cualquier otra que no deba ver un visitante.

--- Fin de la cita ---

Ni idea de como se hace esto con PHP, pero vaya, tocará mañana mirarselo. Un saludo y gracias.  :-d

Navegación

[0] Índice de Mensajes

[#] Página Siguiente

Ir a la versión completa