diff --git a/events/0.md b/events/0.md new file mode 100644 index 0000000..b510cce --- /dev/null +++ b/events/0.md @@ -0,0 +1,9 @@ +Testeintrag +Ein wunderbarer Testeintrag. +2023-05-10 - 2023-05-16 +16:00 - 20:00 +Chaostreff Dortmund e.V. +------------------------ +# Testeintrag + +Dies ist ein wundervoller Test! \ No newline at end of file diff --git a/events/repaircafe.md b/events/repaircafe.md new file mode 100644 index 0000000..6a493a3 --- /dev/null +++ b/events/repaircafe.md @@ -0,0 +1,26 @@ +RepairCafe +“ Wegwerfen? Denk’ste! „ +{{ repaircafedatum }} +19:00 - 23:00 +Chaostreff Dortmund e.V. +------------------------ +# RepairCafe + +![ctdo repaircafe logo](/images/events/ctdo-logo-reperaturcafe.png) + +Seit Ende Juni 2014 bietet der Chaostreff Dortmund an jedem letzten Donnerstag im Monat ab 19 Uhr ein Repair Café an. Dazu ist jeder eingeladen, defekte Geräte, sei es der Küchenmixer, Notebook oder der alte Plattenspieler, mitzubringen und selber zu reparieren. Technischen Sachverstand, Rat und auch Tat wird es von uns geben. Wir helfen wo wir können – reparieren müsst ihr aber selber – das ist der Grundgedanke des Repair Cafés. Als Stärkung haben wir natürlich Getränke und Snacks. + +Bereits Anfang Juni 2014 startete unser Repair Cafe, welches wir im Rahmen des Projekts Selber Machen! speziell für Kinder und Jugendliche zwischen 8 und 16 Jahren angeboten haben. + +Seit dem Start des normalen Repair Cafes für jedermann/frau konnten wir bereits einigen Geräten neues Leben einhauchen. Manchmal ist es nur eine kalte Lötstelle, ein gebrochenes Kabel oder eine defekte Sicherung, die das gesamte Gerät lahmlegen. Im Wiki gibt es weitere Informationen zum Repair Cafe. + +Hier noch mal auf einen Blick: + +Repair Café: jeden letzten Donnerstag im Monat ab 19 Uhr im Chaostreff Dortmund +Wir sind auch auf [www.repaircafe.org](https://www.repaircafe.org/) eingetragen. + +Du findest uns in der Braunschweiger Str 22, 44145 Dortmund im „Langen August“. Geh durch das große rote Tor und klingel beim „Chaostreff“. Zweites OG. Per E-Mail kannst du uns über die [Mailingliste](/?page=mail) erreichen. + +Anmeldung nicht erforderlich! + +Achtung: Bei Smartphones, Tablets und zum Großteil bei Apple Produkten können wir leider nicht behilflich sein. \ No newline at end of file diff --git a/events/topictreff.md b/events/topictreff.md new file mode 100644 index 0000000..c051460 --- /dev/null +++ b/events/topictreff.md @@ -0,0 +1,9 @@ +TopicTreff (Plenum) +Der Topictreff ist das zweimal im Monat stattfindende Plenum des CTDO. +{{ topicdatum }} +20:00 - 21:00 +Chaostreff Dortmund e.V. +------------------------ +# TopicTreff (Plenum) + +Der Topictreff ist das zweimal im Monat stattfindende Plenum des CTDO. Aktuelle Themen können im [Wiki](https://wiki.ctdo.de/de/verein/topictreff) eingesehen werden. \ No newline at end of file diff --git a/events/treff.md b/events/treff.md new file mode 100644 index 0000000..61bc487 --- /dev/null +++ b/events/treff.md @@ -0,0 +1,13 @@ +Treff +Einmal in der Woche treffen wir uns regulär zum quatschen, basteln, frickeln, programmieren, hacken, kochen, essen, … +{{ treffdatum }} +19:00 - ende offen +Chaostreff Dortmund e.V. +------------------------ +# Treff + +Einmal in der Woche treffen wir uns regulär zum quatschen, basteln, frickeln, programmieren, hacken, kochen, essen, … + +Los gehts wenn Jemand da ist (meist ab 19 Uhr). Ende offen. + +Es darf jeder kommen, egal ob Mitglied oder nicht. Wenn du unsicher bist, ob Jemand da ist, wie lange Jemand bleibt: ruf gerne an, oder frage im Chat nach. \ No newline at end of file diff --git a/images/events/ctdo-logo-reperaturcafe.png b/images/events/ctdo-logo-reperaturcafe.png new file mode 100644 index 0000000..cd13be6 Binary files /dev/null and b/images/events/ctdo-logo-reperaturcafe.png differ diff --git a/index.php b/index.php index 58f5d75..4c7ea3e 100644 --- a/index.php +++ b/index.php @@ -43,15 +43,44 @@ if(gettype($raumstatus_b) == "boolean") { } $topic = $util->get_next_topic(); +$topiclink = 'Topictreff'; switch ($topic->days) { case 0: - $topic_output = '

Der nächste Topictreff findet heute statt!

'; + $topic_output = '

Der nächste '.$topiclink.' findet heute statt!

'; break; case 1: - $topic_output = '

Der nächste Topictreff findet morgen statt!

'; + $topic_output = '

Der nächste '.$topiclink.' findet morgen statt!

'; break; default: - $topic_output = '

Der nächste Topictreff findet in '.$topic->days.' Tagen ['.$topic->date.'] statt.

'; + $topic_output = '

Der nächste '.$topiclink.' findet in '.$topic->days.' Tagen ['.$topic->date.'] statt.

'; + break; +} + +$treff = $util->get_next_treff(); +$trefflink = 'Treff'; +switch ($topic->days) { + case 0: + $treff_output = '

Der nächste '.$trefflink.' findet heute statt!

'; + break; + case 1: + $treff_output = '

Der nächste '.$trefflink.' findet morgen statt!

'; + break; + default: + $treff_output = '

Der nächste '.$trefflink.' findet in '.$treff->days.' Tagen ['.$treff->date.'] statt.

'; + break; +} + +$repaircafe = $util->get_next_repaircafe(); +$repaircafelink = 'RepairCafe'; +switch ($topic->days) { + case 0: + $repaircafe_output = '

Das nächste '.$repaircafelink.' findet heute statt!

'; + break; + case 1: + $repaircafe_output = '

Das nächste '.$repaircafelink.' findet morgen statt!

'; + break; + default: + $repaircafe_output = '

Das nächste '.$repaircafelink.' findet in '.$repaircafe->days.' Tagen ['.$repaircafe->date.'] statt.

'; break; } @@ -82,11 +111,11 @@ if(isset($_GET['page'])) { } break; case 'events': - if(!isset($_GET['e'])) { - $content = $twig_pages->render('events.html.twig', [ 'topic' => $topic_output, 'events' => $util->generate_post_list() ]); + if(!isset($_GET['id'])) { + $content = $twig_pages->render('events.html.twig', [ 'topic' => $topic_output, 'treff' => $treff_output, 'repaircafe' => $repaircafe_output, 'events' => $util->generate_event_list() ]); $head = $util->css_link('css/main.css').$util->css_link('css/events.css'); } else { - $content = $converter->convert($util->get_post_content($_GET['e'])); + $content = $util->str_mass_replace(array('{{ topicdatum }}', 'Chaostreff Dortmund e.V.', '{{ treffdatum }}', '{{ repaircafedatum }}'), array($util->get_next_topic()->date, $util->html_link('/?page=treff', '', 'Chaostreff Dortmund e.V.', FALSE), $util->get_next_treff()->date, $util->get_next_repaircafe()->date), $converter->convert($util->get_event_content($_GET['id']))); $head = $util->css_link('css/main.css').$util->css_link('css/event.css'); } break; @@ -130,6 +159,7 @@ if(isset($_GET['page'])) { break; default: $content = $twig_pages->render('404.html.twig', ['page' => $_GET['page']]); + $head = $util->css_link('css/main.css'); break; } } else { diff --git a/pages/events.html.twig b/pages/events.html.twig index c0a3f2c..7cdc6e1 100644 --- a/pages/events.html.twig +++ b/pages/events.html.twig @@ -1,3 +1,5 @@

Events

{{ topic | raw }} + {{ treff | raw }} + {{ repaircafe | raw }} {{ events | raw }} \ No newline at end of file diff --git a/php/util.php b/php/util.php index 26ec256..8eb10b8 100644 --- a/php/util.php +++ b/php/util.php @@ -38,6 +38,7 @@ class Util { return $string; } + //Posts function scan_for_posts() { $s = scandir(__DIR__ . '/../posts/', SCANDIR_SORT_DESCENDING); $output = array(); @@ -69,7 +70,7 @@ class Util { $desc = $lines[1]; $date = $lines[2]; $signatur = $lines[3]; - $output .= '

'.$signatur.'

'.$date.'

'.$title.'

'.$desc.'

'; + $output .= '

'.$signatur.'

'.$date.'

'.$title.'

'.$desc.'

'; } } return $output; @@ -82,7 +83,57 @@ class Util { $output .= $lines[$i] . "\n"; return $output; } - + //Posts end + + //Events + function scan_for_events() { + $s = scandir(__DIR__ . '/../events/', SCANDIR_SORT_DESCENDING); + $output = array(); + foreach ($s as $f) { + if(count(str_split($f)) >= 4 && $f != 'treff.md' && $f != 'topictreff.md' && $f != 'repaircafe.md') + $output[] = $f; + } + return $output; + } + + function generate_event_list($limit = -1) { + $events = $this->scan_for_events(); + $output = ""; + if ($limit == -1) { + foreach ($events as $event) { + $lines = file(__DIR__ . '/../events/' . $event); + $title = $lines[0]; + $desc = $lines[1]; + $date = $lines[2]; + $veranstaltungsort = $lines[4]; + $output .= '

'.$veranstaltungsort.'

'.$date.'

'.$title.'

'.$desc.'

'; + } + } else { + if($limit > count($events)) + $limit = count($events); + for ($i = 0; $i < $limit; $i++) { + $lines = file(__DIR__ . '/../events/' . $event); + $title = $lines[0]; + $desc = $lines[1]; + $date = $lines[2]; + $veranstaltungsort = $lines[4]; + $output .= '

'.$veranstaltungsort.'

'.$date.'

'.$title.'

'.$desc.'

'; + } + } + return $output; + } + + function get_event_content($id) { + $lines = file(__DIR__ . '/../events/' . str_replace('.', '', $id) . '.md'); + $output = ""; + $output .= '## Datum/Zeit'."\n\n"; + $output .= $lines[2]."\n".$lines[3]."\n\n## Veranstaltungsort\n\n".$lines[4]."\n\n"; + for ($i = 6; $i < count($lines); $i++) + $output .= $lines[$i] . "\n"; + return $output; + } + //Events end + function get_next_topic() { $output = new stdClass(); $currentDate = new DateTime(); @@ -98,6 +149,44 @@ class Util { return $output; } + + function get_next_treff() { + $output = new stdClass(); + // Get current date and time + $now = new DateTime(); + + // Find the next Friday + $now->modify('next Friday'); + + // Calculate the number of days until the next Friday + $diff = $now->diff(new DateTime()); + $days_until = $diff->format('%a'); + + $output->days = $days_until; + $output->date = $now->format('Y-m-d'); + // Return an array with the count and date of the next Friday + return $output; + } + + function get_next_repaircafe() { + $output = new stdClass(); + $today = new DateTime(); + $lastDayOfMonth = clone $today; + $lastDayOfMonth->modify('last day of this month'); + $lastThursday = clone $lastDayOfMonth; + + while ($lastThursday->format('w') != 4) { // Thursday is represented by 4 (0-6, where 0 is Sunday) + $lastThursday->modify('-1 day'); + } + + $daysUntilLastThursday = $today->diff($lastThursday)->days; + + $output->days = $daysUntilLastThursday + 1; + $output->date = $lastThursday->format('Y-m-d'); + + return $output; + } + } ?> \ No newline at end of file diff --git a/tester.php b/tester.php index 70aa55f..b95adab 100644 --- a/tester.php +++ b/tester.php @@ -4,4 +4,4 @@ require __DIR__ . '/php/util.php'; $u = new Util(); -echo var_dump($u->scan_for_posts()); \ No newline at end of file +echo var_dump($u->get_next_repaircafe()); \ No newline at end of file