Autor Zpráva
soucekgns
Profil
Mám tento kalendář, potřebuji, aby si mi automaticky vypisovaly události do políček k příslušným dnům...
To se mi taky vypisují, ale pořád mi nejde udělat, aby se vypisovali podle url (např.: kalendar.php?mesic_url=3&rok_url=2011)
Nejsem ale schopný zapsat podmínku na 42 řádku...
Když ji napíšu natvrdo: $rok == 2011 AND $mesic == 3, tak to funguje
Ale když ji napíšu: $rok == $setdate_rok AND $mesic == $setdate_mesic, tak ta podmínka není splněna
Díky za rady
příklad
<?php
$month=$_GET["mesic_url"];
$year=$_GET["rok_url"];


/* draws a calendar */
function draw_calendar($month,$year){

  /* draw table */
  $calendar = '<table cellpadding="0" cellspacing="0" class="calendar">';

  /* table headings */
  $headings = array('Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday');
  $calendar.= '<tr class="calendar-row"><td class="calendar-day-head">'.implode('</td><td class="calendar-day-head">',$headings).'</td></tr>';

  /* days and weeks vars now ... */
  $running_day = date('w',mktime(0,0,0,$month,1,$year));
  $days_in_month = date('t',mktime(0,0,0,$month,1,$year));
  $days_in_this_week = 1;
  $day_counter = 0;
  $dates_array = array();

  /* row for week one */
  $calendar.= '<tr class="calendar-row">';

  /* print "blank" days until the first of the current week */
  for($x = 0; $x < $running_day; $x++):
    $calendar.= '<td class="calendar-day-np"> </td>';
    $days_in_this_week++;
  endfor;

  /* keep going with days.... */
  for($list_day = 1; $list_day <= $days_in_month; $list_day++):
    $calendar.= '<td class="calendar-day">';
      /* add in the day number */
      $calendar.= '<div class="day-number">'.$list_day.'</div>';

      $xml=simplexml_load_file("udalosti.xml");
      foreach ($xml->rok as $rok){
      foreach ($xml->rok->mesic as $mesic){
      foreach ($xml->rok->mesic->den as $den){ 
            if ($rok == $year AND $mesic == $month AND $den == $list_day) {
            $calendar.= '<p>'.$den.'</p><p>'.$den->udalost.'</p>';
            }
            if ($den == $list_day) {
            $calendar.= '<p>'.$den.'</p><p>'.$den->udalost.'</p>';/*jak můžete vidět v příkladu, proměnné fungují a funguje i vypisování z xml*/
            } 
      }
      }
      } 
      
    $calendar.= '</td>';
    if($running_day == 6):
      $calendar.= '</tr>';
      if(($day_counter+1) != $days_in_month):
        $calendar.= '<tr class="calendar-row">';
      endif;
      $running_day = -1;
      $days_in_this_week = 0;
    endif;
    $days_in_this_week++; $running_day++; $day_counter++;
  endfor;

  /* finish the rest of the days in the week */
  if($days_in_this_week < 8):
    for($x = 1; $x <= (8 - $days_in_this_week); $x++):
      $calendar.= '<td class="calendar-day-np"> </td>';
    endfor;
  endif;

  /* final row */
  $calendar.= '</tr>';

  /* end the table */
  $calendar.= '</table>';
  
  /* all done, return result */
  return $calendar;
}

/* sample usages */

echo '<h2>'.$month.' '.$year.'</h2>';
echo draw_calendar($month,$year);
?>

soubor xml:
<?xml version="1.0" encoding="UTF-8"?>
<vse>
<rok>2011
<mesic>3
<den>1<udalost>udalost1</udalost></den>
<den>2<udalost>udalost2</udalost></den>
<den>3<udalost>udalost3</udalost></den>
</mesic>
</rok>
</vse>


edit: setdate_mesic -> $month & setdate_rok -> $year
Tori
Profil
Uvnitř funkce je máte pojmenované jako $month a $year.
soucekgns
Profil
Tori:
díky podívám se na to
soucekgns
Profil
Stále to bohužel nejde... jak je vidět na příkladu, tak proměnné existují (řádek 45).
soucekgns
Profil
Již funkční, důvodem bylo, že z xml se to vypisovalo jako 2011+mezera... upravil jsem xml
<?xml version="1.0" encoding="UTF-8"?>
<vse>
<rok>
<in_rok>2011</in_rok>
<mesic>
<in_mesic>3</in_mesic>
<den>1<udalost>den1</udalost></den>
<den>2<udalost>den2</udalost></den>
<den>3<udalost>den3</udalost></den>
</mesic>
</rok>
</vse>

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: