diff --git a/Admin/Install/Navigation.install.json b/Admin/Install/Navigation.install.json index 0b826b5..c391846 100644 --- a/Admin/Install/Navigation.install.json +++ b/Admin/Install/Navigation.install.json @@ -2,6 +2,21 @@ { "id": 1000901001, "pid": "754a08ddf8bcb1cf22f310f09206dd783d42f7dd", + "type": 1, + "subtype": 1, + "name": "Calendar", + "uri": "/{/lang}/backend/calendar/dashboard", + "target": "self", + "icon": "fa fa-calendar", + "order": 10, + "from": "Calendar", + "permission": null, + "parent": 1000201001, + "children": [] + }, + { + "id": 1000901002, + "pid": "754a08ddf8bcb1cf22f310f09206dd783d42f7dd", "type": 2, "subtype": 1, "name": "Calendar", diff --git a/Controller.php b/Controller.php index dd9dab0..825352d 100644 --- a/Controller.php +++ b/Controller.php @@ -15,9 +15,11 @@ */ namespace Modules\Calendar; +use Modules\Calendar\Models\CalendarMapper; use Modules\Navigation\Models\Navigation; use Modules\Navigation\Views\NavigationView; use phpOMS\Contract\RenderableInterface; +use phpOMS\Datatypes\SmartDateTime; use phpOMS\Message\RequestAbstract; use phpOMS\Message\RequestDestination; use phpOMS\Message\ResponseAbstract; @@ -117,6 +119,11 @@ class Controller extends ModuleAbstract implements WebInterface $view->setTemplate('/Modules/Calendar/Theme/Backend/calendar-dashboard'); $view->addData('nav', $this->app->moduleManager->get('Navigation')->createNavigationMid(1001201001, $request, $response)); + $mapper = new CalendarMapper($this->app->dbPool->get()); + $calendar = $mapper->get(1); + $calendar->setDate(new SmartDateTime($request->getData('date') ?? 'now')); + $view->addData('calendar', $calendar); + return $view; } diff --git a/Models/Calendar.php b/Models/Calendar.php index ca87d3c..82f0145 100644 --- a/Models/Calendar.php +++ b/Models/Calendar.php @@ -14,6 +14,7 @@ * @link http://orange-management.com */ namespace Modules\Calendar\Models; + use phpOMS\Datatypes\SmartDateTime; /** @@ -284,4 +285,26 @@ class Calendar { $this->date = $date; } + + /** + * Get event by date + * + * @param \DateTime $date Date of the event + * + * @return Event[] + * + * @since 1.0.0 + * @author Dennis Eichhorn + */ + public function getEventByDate(\DateTime $date) : array + { + $events = []; + foreach ($this->events as $event) { + if ($event->getCreatedAt()->format('Y-m-d') === $date->format('Y-m-d')) { + $events[] = $event; + } + } + + return $events; + } } diff --git a/Models/CalendarMapper.php b/Models/CalendarMapper.php index 21ca927..5cae0da 100644 --- a/Models/CalendarMapper.php +++ b/Models/CalendarMapper.php @@ -121,7 +121,7 @@ class CalendarMapper extends DataMapperAbstract $this->db->con->prepare($query->toSql())->execute(); } catch (\Exception $e) { - var_dump($e); + var_dump($e->getMessage()); return false; } diff --git a/Theme/backend/calendar-dashboard.tpl.php b/Theme/backend/calendar-dashboard.tpl.php index 05386fb..86bb554 100644 --- a/Theme/backend/calendar-dashboard.tpl.php +++ b/Theme/backend/calendar-dashboard.tpl.php @@ -1,11 +1,11 @@ getData('calendar'); ?>
    -
  • -
  • +
  • +
- + getDate()->format('Y') . '-' . $calendar->getDate()->format('m') . '-' . '01'); for($i = 0; $i < 6; $i++) : ?>
-
- getFirstDay() <= $i*7+$j+1 && $calendar->getDaysOfMonth() >= $i*7+$j+1) { +
+ getDate()->getFirstDayOfMonth() <= $i*7+$j+1 && $calendar->getDate()->getDaysOfMonth() >= $i*7+$j+1) { echo ($i*7+$j+1) . ' ' . $this->l11n->lang[0][jddayofweek($j, 1)]; } else { - echo (($i*7+$j+1)-$calendar->getDaysOfMonth()); + echo (($i*7+$j+1)-$calendar->getDate()->getDaysOfMonth()) . ' ' . $this->l11n->lang[0][jddayofweek($j, 1)]; } ?> +
    + getEventByDate($current); + $current->smartModify(0, 0, 1); + foreach($events as $event) : ?> +
  • getName(); ?> + +