| Autor | Zpráva | ||
|---|---|---|---|
| soucekgns Profil |
#1 · Zasláno: 25. 3. 2011, 17:36:11 · Upravil/a: soucekgns
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 |
#2 · Zasláno: 25. 3. 2011, 18:04:15 · Upravil/a: Tori
Uvnitř funkce je máte pojmenované jako $month a $year.
|
||
| soucekgns Profil |
#3 · Zasláno: 25. 3. 2011, 18:07:06 · Upravil/a: soucekgns
Tori:
díky podívám se na to |
||
| soucekgns Profil |
#4 · Zasláno: 25. 3. 2011, 18:23:34 · Upravil/a: soucekgns
Stále to bohužel nejde... jak je vidět na příkladu, tak proměnné existují (řádek 45).
|
||
| soucekgns Profil |
#5 · Zasláno: 25. 3. 2011, 18:47:20
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> |
||
|
Časová prodleva: 15 let
|
|||
0