Autor Tema: incrustar calendario php en una aplicación web (SOLUCIONADO)  (Leído 7873 veces)

Desconectado vlad

  • Member
  • ***
  • Mensajes: 305
incrustar calendario php en una aplicación web (SOLUCIONADO)
« 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 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.
Es más fácil apoderarse del comandante en jefe de un ejército que despojar a un miserable de su libertad. (Confucio)

Desconectado Liamngls

  • Administrator
  • ******
  • Mensajes: 15688
    • Manuales-e
Re:incrustar calendario php en una aplicación web
« Respuesta #1 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.

Desconectado vlad

  • Member
  • ***
  • Mensajes: 305
Re:incrustar calendario php en una aplicación web
« Respuesta #2 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.
Es más fácil apoderarse del comandante en jefe de un ejército que despojar a un miserable de su libertad. (Confucio)

Desconectado Liamngls

  • Administrator
  • ******
  • Mensajes: 15688
    • Manuales-e
Re:incrustar calendario php en una aplicación web
« Respuesta #3 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.

Desconectado vlad

  • Member
  • ***
  • Mensajes: 305
Re:incrustar calendario php en una aplicación web
« Respuesta #4 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
Es más fácil apoderarse del comandante en jefe de un ejército que despojar a un miserable de su libertad. (Confucio)

Desconectado vlad

  • Member
  • ***
  • Mensajes: 305
Re:incrustar calendario php en una aplicación web
« Respuesta #5 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.
Es más fácil apoderarse del comandante en jefe de un ejército que despojar a un miserable de su libertad. (Confucio)

Desconectado Liamngls

  • Administrator
  • ******
  • Mensajes: 15688
    • Manuales-e
Re:incrustar calendario php en una aplicación web
« Respuesta #6 en: 20 de Diciembre de 2011, 09:31:06 pm »
Mientras funcione  ;-)

 

Aviso Legal | Política de Privacidad | Política de Cookies

el contenido de la web se rige bajo licencia
Creative Commons License