Foros de daboweb

MULTIMEDIA, Video digital, Grabación, Diseño gráfico, Diseño web, Programación => Webmasters - Diseño Web - Programación - Diseño gráfico => Mensaje iniciado por: vlad en 17 de Diciembre de 2011, 09:21:10 pm

Título: incrustar calendario php en una aplicación web (SOLUCIONADO)
Publicado por: vlad en 17 de Diciembre de 2011, 09:21:10 pm
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 (http://www.gerd-tentler.de/tools/phpcalendar/) 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: [Seleccionar]
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

}

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: [Seleccionar]
<?php

    
<?php

    ?>


?>

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.
Título: Re:incrustar calendario php en una aplicación web
Publicado por: Liamngls en 17 de Diciembre de 2011, 11:03:51 pm
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: [Seleccionar]
<?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');
?>

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: [Seleccionar]
<?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');
?>

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.
Título: Re:incrustar calendario php en una aplicación web
Publicado por: vlad en 18 de Diciembre de 2011, 11:12:31 am
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.
Título: Re:incrustar calendario php en una aplicación web
Publicado por: 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.
Título: Re:incrustar calendario php en una aplicación web
Publicado por: vlad en 19 de Diciembre de 2011, 12:26:25 am
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.

Ni idea de como se hace esto con PHP, pero vaya, tocará mañana mirarselo. Un saludo y gracias.  :-d
Título: Re:incrustar calendario php en una aplicación web
Publicado por: vlad en 20 de Diciembre de 2011, 07:34:03 pm
Pues de momento he podido incrustar el calendario mediante la creación de frames, en uno meto el formulario y en otro el calendario. Vamos saliendo del paso.
Título: Re:incrustar calendario php en una aplicación web
Publicado por: Liamngls en 20 de Diciembre de 2011, 09:31:06 pm
Mientras funcione  ;-)