ugrás a tartalomhoz

Aktuális havi naptár, eseményekkel, PHP-vel

ceops · 2005. Dec. 25. (V), 12.14
sikerült csinálnom egy ilyet:
http://www.tenou.org/cal.php

csak ez is minden napot linkké alakít :( méghozzá olyan linkké ami így néz ki:
http://www.tenou.org/cal.php?date=1134601200

szal ez így nagyon nem jó... mi van akkor ha én a linkeket nem ilyenre akarom, kanem konkrét linkeket akarok csinálni? mint példul:
http://www.tenou.org/_p051223.php

hm...? @_@
 
2

forráskód olvasgatás és értelmezés

zila · 2005. Dec. 25. (V), 11.18
sikerült csinálnom egy ilyet is:
http://www.tenou.org/cal.php


A kérdéseidből ítélve nem te csináltad, csak letöltötted és a működését sem sikerült megértened...

Keresd meg a forráskódban ahol linkeket állít elő (<a href...) Itt a link képzést kell átírnod olyanra ami neked kell (a date=1134601200 paraméter unix timestamp formátumú, ebből könnyedén tudsz bármilyen másik dátumformára konvertálni a neked szükséges yymmdd formátumra is)

Mivel neked nem minden napra kell link, ezért a link generálást valamilyen feltételhez kötöd, vagyis beteszed egy feltételvizsgáló blokk egyik ágába. (pl. előállítod a link filenevét _p051223.php és megnézed, van-e ilyen file, ha igen, akkor kell link ellenkező esetben pedig nem)

Olvasgasd a manual-t és igyekezz okosan kérdezni, mert a mostani kérdésedre ...

mi van akkor ha én a linkeket nem ilyenre akarom, kanem konkrét linkeket akarok csinálni?


... a válasz annyi, hogy olyankor az ember fogja és megírja magának olyanra amilyenre kell...

üdv,
Zila
1

jah... a kód!

ceops · 2005. Dec. 24. (Szo), 20.01
itt a kódja, mert az lemaradt:
  1. <html>   
  2. <head>   
  3. <title>PHP Calendar</title>   
  4. <style type="text/css">   
  5. <!--   
  6. .table.calendar {border: 1px solid #000000; border-collapse: collapse; color: #000000; background: #FFFFFF; }   
  7. .td.today { border: 1px solid white; color: #000000; background: #EFEFEF; font-weight: bold;}   
  8. .td.monthdays {border: 1px solid #434470; color: #000000; background: #FFFFFFF; }   
  9. .td.nonmonthdays { border: 1px solid white; color: #000000; background: #EFEFEF;}   
  10. -->   
  11. </style>   
  12. <body>   
  13.   
  14. <?php   
  15. error_reporting('0');   
  16. ini_set('display_errors''0');   
  17. // Gather variables from   
  18. // user input and break them   
  19. // down for usage in our script   
  20.   
  21. if(!isset($_REQUEST['date'])){   
  22.    $date = mktime(0,0,0,date('m'), date('d'), date('Y'));   
  23. else {   
  24.    $date = $_REQUEST['date'];   
  25. }   
  26.   
  27. $day = date('d', $date);   
  28. $month = date('m', $date);   
  29. $year = date('Y', $date);   
  30.   
  31. // Get the first day of the month   
  32. $month_start = mktime(0,0,0,$month, 1, $year);   
  33.   
  34. // Get friendly month name   
  35. $month_name = date('M', $month_start);   
  36.   
  37. // Figure out which day of the week   
  38. // the month starts on.   
  39. $month_start_day = date('D', $month_start);   
  40.   
  41. switch($month_start_day){   
  42.     case "Sun": $offset = 0; break;   
  43.     case "Mon": $offset = 1; break;   
  44.     case "Tue": $offset = 2; break;   
  45.     case "Wed": $offset = 3; break;   
  46.     case "Thu": $offset = 4; break;   
  47.     case "Fri": $offset = 5; break;   
  48.     case "Sat": $offset = 6; break;   
  49. }   
  50.   
  51. // determine how many days are in the last month.   
  52. if($month == 1){   
  53.    $num_days_last = cal_days_in_month(0, 12, ($year -1));   
  54. else {   
  55.    $num_days_last = cal_days_in_month(0, ($month -1), $year);   
  56. }   
  57. // determine how many days are in the current month.   
  58. $num_days_current = cal_days_in_month(0, $month, $year);   
  59.   
  60. // Build an array for the current days   
  61. // in the month   
  62. for($i = 1; $i <= $num_days_current; $i++){   
  63.     $num_days_array[] = $i;   
  64. }   
  65.   
  66. // Build an array for the number of days   
  67. // in last month   
  68. for($i = 1; $i <= $num_days_last; $i++){   
  69.     $num_days_last_array[] = $i;   
  70. }   
  71.   
  72. // If the $offset from the starting day of the   
  73. // week happens to be Sunday, $offset would be 0,   
  74. // so don't need an offset correction.   
  75.   
  76. if($offset > 0){   
  77.     $offset_correction = array_slice($num_days_last_array, -$offset, $offset);   
  78.     $new_count = array_merge($offset_correction, $num_days_array);   
  79.     $offset_count = count($offset_correction);   
  80. }   
  81.   
  82. // The else statement is to prevent building the $offset array.   
  83. else {   
  84.     $offset_count = 0;   
  85.     $new_count = $num_days_array;   
  86. }   
  87.   
  88. // count how many days we have with the two   
  89. // previous arrays merged together   
  90. $current_num = count($new_count);   
  91.   
  92. // Since we will have 5 HTML table rows (TR)   
  93. // with 7 table data entries (TD)   
  94. // we need to fill in 35 TDs   
  95. // so, we will have to figure out   
  96. // how many days to appened to the end   
  97. // of the final array to make it 35 days.   
  98.   
  99.   
  100. if($current_num > 35){   
  101.    $num_weeks = 6;   
  102.    $outset = (42 - $current_num);   
  103. } elseif($current_num < 35){   
  104.    $num_weeks = 5;   
  105.    $outset = (35 - $current_num);   
  106. }   
  107. if($current_num == 35){   
  108.    $num_weeks = 5;   
  109.    $outset = 0;   
  110. }   
  111. // Outset Correction   
  112. for($i = 1; $i <= $outset; $i++){   
  113.    $new_count[] = $i;   
  114. }   
  115.   
  116. // Now let's "chunk" the $all_days array   
  117. // into weeks. Each week has 7 days   
  118. // so we will array_chunk it into 7 days.   
  119. $weeks = array_chunk($new_count, 7);   
  120.   
  121.   
  122.   
  123. // Build the heading portion of the calendar table   
  124. echo "<table border=\"1\" cellpadding=\"2\" cellspacing=\"0\" width=\"300\" class=\"calendar\">\n".   
  125.      "<tr>\n".   
  126.      "<td colspan=\"7\">\n".   
  127.      "<table align=\"center\">\n".   
  128.      "<tr>\n".   
  129.      "<td colspan=\"2\" width=\"75\" align=\"left\">$previous_link</td>\n".   
  130.      "<td colspan=\"3\" width=\"150\" align=\"center\">$month_name $year</td>\n".   
  131.      "<td colspan=\"2\" width=\"75\" align=\"right\">$next_link</td>\n".   
  132.      "</tr>\n".   
  133.      "</table>\n".   
  134.      "</td>\n".   
  135.      "<tr>\n".   
  136.      "<td>S</td><td>M</td><td>T</td><td>W</td><td>T</td><td>F</td><td>S</td>\n".   
  137.      "</tr>\n";   
  138.   
  139. // Now we break each key of the array   
  140. // into a week and create a new table row for each   
  141. // week with the days of that week in the table data   
  142.   
  143. $i = 0;   
  144. foreach($weeks AS $week){   
  145.        echo "<tr>\n";   
  146.        foreach($week as $d){   
  147.          if($i < $offset_count){   
  148.              $day_link = "<a href=\"".$_SERVER['PHP_SELF']."?date=".mktime(0,0,0,$month -1,$d,$year)."\">$d</a>";   
  149.              echo "<td class=\"nonmonthdays\">$day_link</td>\n";   
  150.          }   
  151.          if(($i >= $offset_count) && ($i < ($num_weeks * 7) - $outset)){   
  152.             $day_link = "<a href=\"".$_SERVER['PHP_SELF']."?date=".mktime(0,0,0,$month,$d,$year)."\">$d</a>";   
  153.            if($date == mktime(0,0,0,$month,$d,$year)){   
  154.                echo "<td class=\"today\">$d</td>\n";   
  155.            } else {   
  156.                echo "<td class=\"days\">$day_link</td>\n";   
  157.            }   
  158.         } elseif(($outset > 0)) {   
  159.             if(($i >= ($num_weeks * 7) - $outset)){   
  160.                $day_link = "<a href=\"".$_SERVER['PHP_SELF']."?date=".mktime(0,0,0,$month +1,$d,$year)."\">$d</a>";   
  161.                echo "<td class=\"nonmonthdays\">$day_link</td>\n";   
  162.            }   
  163.         }   
  164.         $i++;   
  165.       }   
  166.       echo "</tr>\n";      
  167. }   
  168.   
  169. // Close out your table and that's it!   
  170. echo '<tr><td colspan="7" class="days"> </td></tr>';   
  171. echo '</table>';   
  172. ?>   
  173. </body>   
  174. </html>   
3

html date picker

h-k · 2014. Okt. 22. (Sze), 09.44
Üdv,
most regisztráltam a fórumra, és naptárral kapcsolatos szeretnék én is megoldani.
Azt szeretném kérdezni, hogy a html elemeket (date, week chooser) nem lehet erre egyszerűbben felhasználni? Nekem az vele a gondom, hogy ha nem az aznapi dátumra vagyok kíváncsi, és a hét-választóval lépek pár hetet, akkor hogy adom át azt az értéket a dátumválasztónak, hogy ott kezdődjön a kiíratás? Tud ebben valaki segíteni?

Nemrég kezdtem el php-val foglalkozni, alapszintűek az ismereteim.

Köszönöm.
4

Dokumentáció

Hidvégi Gábor · 2014. Okt. 22. (Sze), 11.36
Első körben javaslom a HTML tanulmányozását, például hogyan lehet az említett elemek viselkedését befolyásolni. Második körben olvasd át a PHP alapjait, aztán pedig el tudsz gondolkodni azon, a kettőt hogyan lehet úgy kombinálni, hogy bármilyen értéket programoból be tudj állítani.
5

Ha kérdésed van, nyiss neki

bamegakapa · 2014. Okt. 22. (Sze), 12.11
Ha kérdésed van, nyiss neki egy új témát.

Én is azt tudom tanácsolni, hogy fejleszd az ismereteidet. A PHP önmagában kevés, HTML, CSS, Javascript is szükséges ahhoz, hogy elkezdd kapisgálni az összefüggéseket. Utána az ilyen kérdéseid maguktól megoldódnak.