code.fastix.org

Dateiansicht:

Datei:Projekte -> PHP:Feiertage -> test-feiertage-form.php
md5:821fc95e4509dbaf8e28b3c1365b52d6
sha1:212d2fcc40bc576be23aacd2913a6012563dabe7
  1. <?php
  2.  
  3. $startTime = microtime( true );
  4. header( 'content-type: text/html; charset=utf-8' );
  5.  
  6. if (! isset($_GET['gMonat']) && ! isset($_GET['gJahr']) ) {
  7.     header( 'Expires: ' . date( 'r', mktime( 0,0,0, date('n'), 1 + date('j'), date('y') ) ) );
  8.     require_once 'lib/FtxMondPhase.php';
  9.     require_once 'lib/FtxSonne.php';
  10. }
  11. require_once 'feiertage.php';
  12.  
  13. if ( ! isset( $_GET['jahr'] ) ) { $_GET['jahr'] = date('Y'); }
  14. $jahr   = intval($_GET['jahr']);
  15. $gJahr  = isset($_GET['gJahr']);
  16.  
  17. if ( ! isset( $_GET['monat'] ) ) { $_GET['monat'] = date('m'); }
  18. $monat  = intval($_GET['monat']);
  19. $gMonat = isset($_GET['gMonat']);
  20.  
  21. if ( ! isset( $_GET['tag'] ) ) { $_GET['tag'] = date('d'); }
  22. $tag    = intval($_GET['tag'] );
  23.  
  24. $cJahr='';
  25. $cMonat='';
  26.  
  27. if ($gJahr) {
  28.     $iStart = 1;
  29.     $gMonat = 0;
  30.     $iTage = 365 + date('L', mktime(0,0,0, 1,1,$jahr) );
  31.     $cJahr  = 'checked';
  32.     $monat = 1;
  33.     $tag = 1;
  34.  
  35. } elseif ( $gMonat ) {
  36.     $iStart = 1;
  37.     $iTage = date( 't', mktime(0,0,0, 1,$gMonat,$jahr) );
  38.     $cMonat = 'checked';
  39.     $tag = 1;
  40. } else {
  41.     $iStart = $tag;
  42.     $iTage = $iStart;
  43. }
  44.  
  45. ?><!doctype html>
  46. <html>
  47.     <head>
  48.         <title>Kalender-Test</title>
  49.         <style>
  50.             html,body {margin:0; padding:0;background-color:#fafafa;}
  51.             h1 {margin-top:0;padding:.45rem .75rem .45rem .75rem;background-color:#ffb300;border-bottom: 3px solid gray; font-size:1.5rem; color:999; }
  52.             #content {padding:0 1em 0 1rem;}
  53.             #Ausgabe .codes {display:none;}
  54.             #Formular {display:none; border:1px solid gray;padding:1rem;}
  55.             #Formular:target {display:block;}
  56.             ul { margin-bottom: 1rem;}
  57.             #Ausgabe > ul > li { margin-bottom: 1rem;}
  58.             .datum {font-weight:bold;}
  59.  
  60.         </style>
  61.     </head>
  62.     <body>
  63.         <h1>fastix.org: Schneller PHP-Kalender</h1>
  64.         <div id='content'>
  65.             <section id="Formular">
  66.                 <form action="<?=str_replace( '?'.$_SERVER['QUERY_STRING'], '', $_SERVER['REQUEST_URI'] );?>">
  67.                     <p>
  68.                         <label style="display:inline-block;width:5em" for="jahr">Jahr: </label><input id="jahr" value="<?=intval($_GET['jahr']);?>" type="number" min="1970" max="2037" style="width:4em" name="jahr" />
  69.                         <input type="checkbox" id="gJahr" name="gJahr" <?=$cJahr;?> /> <label for="gJahr"> ganzes Jahr</label><br />
  70.                     <p /><p>
  71.                         <label style="display:inline-block;width:5em" for="monat">Monat: </label><input id="monat" value="<?=intval($_GET['monat']);?>" type="number" min="1" max="12" style="width:4em" name="monat" />
  72.                             <input type="checkbox" id="gMonat" name="gMonat" <?=$cMonat;?> /> <label for="gMonat"> ganzer Monat</label><br />
  73.                     <p /><p>
  74.                         <label style="display:inline-block;width:5em" for="tag">Tag: </label><input id="tag" value="<?=intval($_GET['tag']);?>" type="number" min="1" max="31" style="width:4em" name="tag" /><br />
  75.                     <p />
  76.                         <input type="checkbox" name="show[BRD]" id="BRD"<?php if(isset($_GET['show']['BRD'])){echo  " checked  "; } ?>/> <label for="BRD">Nur bundesweite, gesetzliche Feiertage</label>
  77.                         <br>
  78.                         <input type="checkbox" name="show[BRD_HF]" id="BRD_HF"<?php if(isset($_GET['show']['BRD_HF'])){echo  " checked  "; } ?>/> <label for="BRD_HF"> einschließlich <q>Halbfeiertage</q></label>
  79.                     </p>
  80.                     <p>und/oder nur:</p>
  81.                     <p>
  82.                         <input type="checkbox" name="show[BRD_BB]" id="BRD_BB"<?php if(isset($_GET['show']['BRD_BB'])){echo  " checked  "; } ?>/> <label for="BRD_BB">die Feiertage in Brandenburg</label>,<br>
  83.                         <input type="checkbox" name="show[BRD_BL]" id="BRD_BL"<?php if(isset($_GET['show']['BRD_BL'])){echo  " checked  "; } ?>/> <label for="BRD_BL">die Feiertage in Berlin</label>,<br>
  84.                         <input type="checkbox" name="show[BRD_BW]" id="BRD_BW"<?php if(isset($_GET['show']['BRD_BW'])){echo  " checked  "; } ?>/> <label for="BRD_BW">die Feiertage in Baden-Württemberg</label>,<br>
  85.                         <input type="checkbox" name="show[BRD_BY]" id="BRD_BY"<?php if(isset($_GET['show']['BRD_BY'])){echo  " checked  "; } ?>/> <label for="BRD_BY">die Feiertage in Bayern</label>,<br>
  86.                         <input type="checkbox" name="show[BRD_BYKAT]" id="BRD_BYKAT"<?php if(isset($_GET['show']['BRD_BYKAT'])){echo  " checked  "; } ?>/> <label for="BRD_BYKAT">die Feiertage in Bayern (nur überwiegend katholische Gemeinden)</label>,<br>
  87.                         <input type="checkbox" name="show[BRD_AUGSB]" id="BRD_AUGSB"<?php if(isset($_GET['show']['BRD_AUGSB'])){echo  " checked  "; } ?>/> <label for="BRD_AUGSB">die Feiertage in der Stadt Augsburg</label>,<br>
  88.                         <input type="checkbox" name="show[BRD_HB]" id="BRD_HB"<?php if(isset($_GET['show']['BRD_HB'])){echo  " checked  "; } ?>/> <label for="BRD_HB">die Feiertage in Bremen</label>,<br>
  89.                         <input type="checkbox" name="show[BRD_HE]" id="BRD_HE"<?php if(isset($_GET['show']['BRD_HE'])){echo  " checked  "; } ?>/> <label for="BRD_HE">die Feiertage in Hessen</label>,<br>
  90.                         <input type="checkbox" name="show[BRD_HH]" id="BRD_HH"<?php if(isset($_GET['show']['BRD_HH'])){echo  " checked  "; } ?>/> <label for="BRD_HH">die Feiertage in Hamburg</label>,<br>
  91.                         <input type="checkbox" name="show[BRD_MV]" id="BRD_MV"<?php if(isset($_GET['show']['BRD_MV'])){echo  " checked  "; } ?>/> <label for="BRD_MV">die Feiertage in Mecklenburg-Vorpommern</label>,<br>
  92.                         <input type="checkbox" name="show[BRD_NI]" id="BRD_NI"<?php if(isset($_GET['show']['BRD_NI'])){echo  " checked  "; } ?>/> <label for="BRD_NI">die Feiertage in Niedersachsen</label>,<br>
  93.                         <input type="checkbox" name="show[BRD_NW]" id="BRD_NW"<?php if(isset($_GET['show']['BRD_NW'])){echo  " checked  "; } ?>/> <label for="BRD_NW">die Feiertage in Nordrhein-Westfalen</label>,<br>
  94.                         <input type="checkbox" name="show[BRD_RP]" id="BRD_RP"<?php if(isset($_GET['show']['BRD_RP'])){echo  " checked  "; } ?>/> <label for="BRD_RP">die Feiertage in Rheinland-Pfalz</label>,<br>
  95.                         <input type="checkbox" name="show[BRD_SA]" id="BRD_SA"<?php if(isset($_GET['show']['BRD_SA'])){echo  " checked  "; } ?>/> <label for="BRD_SA">die Feiertage im Saarland</label>,<br>
  96.                         <input type="checkbox" name="show[BRD_SH]" id="BRD_SH"<?php if(isset($_GET['show']['BRD_SH'])){echo  " checked  "; } ?>/> <label for="BRD_SH">die Feiertage in Schleswig-Holstein</label>,<br>
  97.                         <input type="checkbox" name="show[BRD_SN]" id="BRD_SN"<?php if(isset($_GET['show']['BRD_SN'])){echo  " checked  "; } ?>/> <label for="BRD_SN">die Feiertage in Sachsen</label>,<br>
  98.                         <input type="checkbox" name="show[BRD_TH]" id="BRD_TH"<?php if(isset($_GET['show']['BRD_TH'])){echo  " checked  "; } ?>/> <label for="BRD_TH">die Feiertage in Thüringen</label>,<br>
  99.                         <input type="checkbox" name="show[BRD_THKAT]" id="BRD_THKAT"<?php if(isset($_GET['show']['BRD_THKAT'])){echo  " checked  "; } ?>/> <label for="BRD_THKAT">die Feiertage in Thüringen (nur einige katholische Gemeinden)</label>,<br>
  100.                     </p>
  101.                     <button>Ereignisse anzeigen</button>
  102.                 </form>
  103.             </section>
  104.  
  105.             <section id="Ausgabe">
  106.                 <h2>Ergebnisse der <a href='#Formular'>Kalenderabfrage</a></h2>
  107. <?php
  108. if ( ! isset ( $_GET['show'] ) ) {
  109.     $mustHave = false;
  110. } else {
  111.     $mustHave=array();
  112.     if ( isset( $_GET['show'] ) ) {
  113.         foreach ( array_keys($_GET['show'] ) as $k ) {
  114.             if ('' != trim($k) && '' != trim($_GET['show'][$k]) ) {
  115.                 $mustHave[] = $k;
  116.             }
  117.         }
  118.     }
  119. }
  120. $o = new feiertage( $jahr );
  121. $o -> setArrShowOnlyTypes($mustHave);
  122.  
  123. if (! isset($_GET['gMonat']) && ! isset($_GET['gJahr']) ) {
  124.     $sonne = new FtxSonne;
  125.     $sonne -> setOrt('Kassel');
  126. }
  127. echo "<ul>";
  128. for ( $i = $iStart; $i <= $iTage; $i++ ) {
  129.     $dto = mktime( 0, 0, 0, $monat, ( 0 + $i ), $jahr );
  130.     $w = date( 'w', $dto );
  131.     $y = date( 'Y', $dto );
  132.     $m = date( 'm', $dto );
  133.     $d = date( 'd', $dto );
  134.  
  135.     $ret = $o -> getDescriptionPerMD ($m, $d );
  136.     if ( $ret ) {
  137.         foreach ($ret as $r) {
  138.             echo '                        <li><span class="datum">',$o->getWdName($w), ', ',  $d, '. ', $o->getMonthName($m), ' ', $o -> getJahr(), ':</span> ' , $r['name'], PHP_EOL;
  139.             if (count($r['codes'])) {
  140.                 echo '                    <ul>', PHP_EOL;
  141.             }
  142.             foreach ( $r['codes'] as $code ) {
  143.                 if ( $code ) {
  144.                     echo '                        <li><span class="codes">', $code , ' : </span><span class="description">',  $o -> codes[$code], "<span></li>", PHP_EOL;
  145.                 }
  146.             }
  147.             if (count($r['codes'])) {
  148.                 echo '                        </ul>', PHP_EOL;
  149.             }
  150.             echo '                        </li>', PHP_EOL;
  151.         }
  152.     } else {
  153.         if (! isset($_GET['gJahr']) and ! isset($_GET['gMonat']) ) {
  154.             echo '                        <li><span class="datum">',$o->getWdName($w), ', ',  $d, '. ', $o->getMonthName($m), ' ', $o -> getJahr(), ':</span> ' , 'Kein Ereignis gespeichert.', "</li>", PHP_EOL;
  155.         }
  156.     }
  157.     if (! isset($_GET['gMonat']) && ! isset($_GET['gJahr']) ) {
  158.         $sonne -> setDate($d,$m,$jahr);
  159.         echo '                    <ul>', PHP_EOL;
  160.         echo '                      <li><strong>Sonnenaufgang in Kassel:</strong> ' . $sonne -> getSunrice('H:i') . ' </li>', PHP_EOL;
  161.         echo '                      <li><strong>Sonnenuntergang:</strong> ' . $sonne -> getSunset('H:i') . '</li>', PHP_EOL;
  162.         echo '                      <li>' . FtxMondPhase ($d, $m, $jahr) . '</li>', PHP_EOL;
  163.         echo '                    </ul>', PHP_EOL;
  164.     }
  165. }
  166. ?>
  167.  
  168.                     </ul>
  169.                     <hr>
  170.                     <ul>
  171.                         <li><a href="#Formular">Zum Abfrageformular</a></li>
  172.                     </ul>
  173.                     <ul>
  174.                         <li><strong>Systeminformationen:</strong><ul>
  175.                         <li>Gebraut in <?=round( ( microtime( true ) - $startTime ) * 1000,0 );?> ms</li>
  176.                         <li>Speicher: <?=round( memory_get_usage() / 1024 )?> KiloBytes (für Programm und <?=$o->countKalendarItems();?> Ereignisse) </li>
  177.                         <li>Gebraut mit PHP, Version <?=phpversion ();?></li>
  178.                         <li><a href="https://code.fastix.org/Projekte/PHP%3AFeiertage/">Quelltext und Projektbeschreibung</a></li>
  179.                     </ul></li>
  180.                 </ul>
  181.             </section>
  182.         </div>
  183.     </body>
  184. </html>