custom/plugins/ASENextFreeDelivery/src/Twig/HolidayChecker.php line 54

Open in your IDE?
  1. <?php
  2. namespace ASEServices\ASENextFreeDelivery\Twig;
  3. use Twig\Extension\AbstractExtension;
  4. use Twig\TwigFilter;
  5. class HolidayChecker extends AbstractExtension
  6. {
  7.     public function getFilters()
  8.     {
  9.         return [
  10.             new TwigFilter('holiday', [$this'holiday']),
  11.         ];
  12.     }
  13.     public function holiday($date$land 'ö') {
  14.         if (!function_exists('easter_date')) {
  15.             return false;
  16.         }
  17.         if (empty($date)) {
  18.             $werktag time();
  19.         } else {
  20.             $werktag strtotime($date);
  21.         }
  22.         $feiertag false;
  23.         $os easter_date(date('Y'$werktag));
  24.         $tag date('d'$os);
  25.         $monat date('m'$os);
  26.         $jahr date('Y'$os);
  27.         $arr = array(
  28.             mktime(0,0,011$jahr) => array('Neujahr' => array('ö')),
  29.             mktime(0,0,016$jahr) => array('Heilige 3 Könige' => array('ö')),
  30.             mktime(0,0,051$jahr) => array('Staatsfeiertag' => array('ö')),
  31.             mktime(0,0,08,15$jahr) => array('Maria Himmelfahrt' => array('ö')),
  32.             mktime(0,0,0,10,26$jahr) => array('Nationalfeiertag' => array('ö')),
  33.             mktime(0,0,0,111$jahr) => array('Allerheiligen' => array('ö')),
  34.             mktime(0,0,0,128$jahr) => array('Maria Empfängnis' => array('ö')),
  35.             mktime(0,0,0,12,25$jahr) => array('Christtag' => array('ö')),
  36.             mktime(0,0,0,12,26$jahr) => array('Stephanitag' => array('ö')),
  37.             mktime(0,0,0,$monat,$tag-46,$jahr) => array('Aschermittwoch' => array('ö')),
  38.             mktime(0,0,0,$monat,$tag2,$jahr) => array('Karfreitag' => array('ö')),
  39.             mktime(0,0,0,$monat,$tag,   $jahr) => array('Ostersonntag' => array('ö')),
  40.             mktime(0,0,0,$monat,$tag1,$jahr) => array('Ostermontag' => array('ö')),
  41.             mktime(0,0,0,$monat,$tag+39,$jahr) => array('Christi Himmelfahrt' => array('ö')),
  42.             mktime(0,0,0,$monat,$tag+49,$jahr) => array('Pfingstsonntag' => array('ö')),
  43.             mktime(0,0,0,$monat,$tag+50,$jahr) => array('Pfingstmontag' => array('ö')),
  44.             mktime(0,0,0,$monat,$tag+60,$jahr) => array('Fronleichnam' => array('ö'))
  45.         );
  46.         if ($feiertag = @$arr[$werktag]) {
  47.             foreach ($feiertag as $fname=>$wo) {
  48.                 if(in_array($land$wo)) {
  49.                     $feiertag true;
  50.                 }
  51.             }
  52.         }
  53.         return $feiertag;
  54.     }
  55. }