mirror of
				https://github.com/dwaxweiler/connector-mobilizon
				synced 2025-06-05 21:59:25 +02:00 
			
		
		
		
	use timezone of event
This commit is contained in:
		@@ -17,8 +17,7 @@ require_once __DIR__ . '/includes/Api.php';
 | 
			
		||||
require_once __DIR__ . '/includes/EventsCache.php';
 | 
			
		||||
require_once __DIR__ . '/includes/Settings.php';
 | 
			
		||||
require_once __DIR__ . '/includes/SiteSettings.php';
 | 
			
		||||
require_once __DIR__ . '/includes/LocalDateTime.php';
 | 
			
		||||
require_once __DIR__ . '/includes/LocalDateTimeFormatter.php';
 | 
			
		||||
require_once __DIR__ . '/includes/DateTimeFormatter.php';
 | 
			
		||||
require_once __DIR__ . '/includes/LineFormatter.php';
 | 
			
		||||
require_once __DIR__ . '/includes/GraphQlClient.php';
 | 
			
		||||
require_once __DIR__ . '/includes/EventsListBlock.php';
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										10
									
								
								source/includes/DateTimeFormatter.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								source/includes/DateTimeFormatter.php
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,10 @@
 | 
			
		||||
<?php
 | 
			
		||||
namespace MobilizonConnector;
 | 
			
		||||
 | 
			
		||||
final class DateTimeFormatter
 | 
			
		||||
{
 | 
			
		||||
  public static function format(\DateTimeImmutable $dateTime, string $format) {
 | 
			
		||||
    $timestamp = $dateTime->getTimestamp();
 | 
			
		||||
    return date_i18n($format, $timestamp);
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
@@ -53,7 +53,6 @@ class EventsListBlock {
 | 
			
		||||
 | 
			
		||||
      $dateFormat = SiteSettings::getDateFormat();
 | 
			
		||||
      $timeFormat = SiteSettings::getTimeFormat();
 | 
			
		||||
      $timeZone = SiteSettings::getTimeZone();
 | 
			
		||||
 | 
			
		||||
      require dirname(__DIR__) . '/view/events-list.php';
 | 
			
		||||
    } catch (GeneralException $e) {
 | 
			
		||||
 
 | 
			
		||||
@@ -36,7 +36,6 @@ class EventsListShortcut {
 | 
			
		||||
 | 
			
		||||
      $dateFormat = SiteSettings::getDateFormat();
 | 
			
		||||
      $timeFormat = SiteSettings::getTimeFormat();
 | 
			
		||||
      $timeZone = SiteSettings::getTimeZone();
 | 
			
		||||
 | 
			
		||||
      require dirname(__DIR__) . '/view/events-list.php';
 | 
			
		||||
    } catch (GeneralException $e) {
 | 
			
		||||
 
 | 
			
		||||
@@ -36,7 +36,6 @@ class EventsListWidget extends \WP_Widget {
 | 
			
		||||
 | 
			
		||||
      $dateFormat = SiteSettings::getDateFormat();
 | 
			
		||||
      $timeFormat = SiteSettings::getTimeFormat();
 | 
			
		||||
      $timeZone = SiteSettings::getTimeZone();
 | 
			
		||||
  
 | 
			
		||||
      require dirname(__DIR__) . '/view/events-list.php';
 | 
			
		||||
    } catch (GeneralException $e) {
 | 
			
		||||
 
 | 
			
		||||
@@ -3,16 +3,16 @@ namespace MobilizonConnector;
 | 
			
		||||
 | 
			
		||||
final class LineFormatter
 | 
			
		||||
{
 | 
			
		||||
  public static function format_date_time(\DateTimeZone $timeZone, string $dateFormat, string $timeFormat, string $start, ?string $end): string {
 | 
			
		||||
    $startDateTime = new LocalDateTime($start, $timeZone);
 | 
			
		||||
    $startDate = LocalDateTimeFormatter::format($startDateTime, $dateFormat);
 | 
			
		||||
    $startTime = LocalDateTimeFormatter::format($startDateTime, $timeFormat);
 | 
			
		||||
  public static function format_date_time(string $dateFormat, string $timeFormat, string $start, ?string $end): string {
 | 
			
		||||
    $startDateTime = new \DateTimeImmutable($start);
 | 
			
		||||
    $startDate = DateTimeFormatter::format($startDateTime, $dateFormat);
 | 
			
		||||
    $startTime = DateTimeFormatter::format($startDateTime, $timeFormat);
 | 
			
		||||
 | 
			
		||||
    $dateText = $startDate . ' ' . $startTime;
 | 
			
		||||
    if ($end) {
 | 
			
		||||
      $endDateTime = new LocalDateTime($end, $timeZone);
 | 
			
		||||
      $endDate = LocalDateTimeFormatter::format($endDateTime, $dateFormat);
 | 
			
		||||
      $endTime = LocalDateTimeFormatter::format($endDateTime, $timeFormat);
 | 
			
		||||
      $endDateTime = new \DateTimeImmutable($end);
 | 
			
		||||
      $endDate = DateTimeFormatter::format($endDateTime, $dateFormat);
 | 
			
		||||
      $endTime = DateTimeFormatter::format($endDateTime, $timeFormat);
 | 
			
		||||
 | 
			
		||||
      if ($startDate != $endDate) {
 | 
			
		||||
        $dateText .= ' - ';
 | 
			
		||||
 
 | 
			
		||||
@@ -1,15 +0,0 @@
 | 
			
		||||
<?php
 | 
			
		||||
namespace MobilizonConnector;
 | 
			
		||||
 | 
			
		||||
final class LocalDateTime {
 | 
			
		||||
  private $dateTime;
 | 
			
		||||
 | 
			
		||||
  public function __construct(string $text, \DateTimeZone $timeZone) {
 | 
			
		||||
    $date = new \DateTimeImmutable($text);
 | 
			
		||||
    $this->dateTime = $date->setTimezone($timeZone);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  public function getValue() {
 | 
			
		||||
    return $this->dateTime;
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
@@ -1,10 +0,0 @@
 | 
			
		||||
<?php
 | 
			
		||||
namespace MobilizonConnector;
 | 
			
		||||
 | 
			
		||||
final class LocalDateTimeFormatter
 | 
			
		||||
{
 | 
			
		||||
  public static function format(LocalDateTime $dateTime, string $format) {
 | 
			
		||||
    $timestamp = $dateTime->getValue()->getTimestamp();
 | 
			
		||||
    return date_i18n($format, $timestamp);
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
@@ -14,8 +14,4 @@ class SiteSettings {
 | 
			
		||||
    return get_option(self::$OPTION_NAME_TIME_FORMAT);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  public static function getTimeZone() {
 | 
			
		||||
    return wp_timezone();
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -15,7 +15,7 @@ if (!defined('ABSPATH')) {
 | 
			
		||||
      <?php } ?>
 | 
			
		||||
      <a href="<?php echo esc_attr($event['url']); ?>"><?php echo esc_html($event['title']); ?></a>
 | 
			
		||||
      <br>
 | 
			
		||||
      <?php echo esc_html(LineFormatter::format_date_time($timeZone, $dateFormat, $timeFormat, $event['beginsOn'], $event['endsOn'])); ?>
 | 
			
		||||
      <?php echo esc_html(LineFormatter::format_date_time($dateFormat, $timeFormat, $event['beginsOn'], $event['endsOn'])); ?>
 | 
			
		||||
      <?php if (isset($event['physicalAddress'])) { ?>
 | 
			
		||||
      <br>
 | 
			
		||||
      <?php echo esc_html(LineFormatter::format_location($event['physicalAddress']['description'], $event['physicalAddress']['locality'])) ?>
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user