Merge branch 'master' of https://github.com/Programvareverkstedet/nettsiden
This commit is contained in:
commit
e0fcf5f265
|
@ -5,10 +5,8 @@ use \DateTimeImmutable;
|
||||||
|
|
||||||
interface Activity {
|
interface Activity {
|
||||||
|
|
||||||
public function getName(); /* : string */
|
public function getNextEventFrom(DateTimeImmutable $date) /* : Event */;
|
||||||
|
|
||||||
public function getLocation(); /* : Location */
|
public function getPreviousEventFrom(DateTimeImmutable $date) /* : Event */;
|
||||||
|
|
||||||
public function getOrganiser(); /* : User */
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,7 +4,7 @@ namespace pvv\side;
|
||||||
use \DateTimeImmutable;
|
use \DateTimeImmutable;
|
||||||
use \PDO;
|
use \PDO;
|
||||||
|
|
||||||
class DBActivity implements RepeatingActivity {
|
class DBActivity implements Activity {
|
||||||
|
|
||||||
public function __construct(PDO $pdo) {
|
public function __construct(PDO $pdo) {
|
||||||
$this->pdo = $pdo;
|
$this->pdo = $pdo;
|
||||||
|
@ -48,18 +48,4 @@ class DBActivity implements RepeatingActivity {
|
||||||
return "User";
|
return "User";
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
public function getAllEvents(){
|
|
||||||
global $url, $user,$pass,$db;
|
|
||||||
$events = array();
|
|
||||||
$mysqli = new mysqli($url,$user,$pass,$db);
|
|
||||||
$result = $mysqli->query("SELECT name,start,stop,organiser,location FROM events");
|
|
||||||
while($row = $result->fetch_assoc()){
|
|
||||||
$ev = new OnceEvent($row['name'],$row['start'],$row['stop'],$row['organiser'],$row['location']);
|
|
||||||
array_push($events,$ev);
|
|
||||||
}
|
|
||||||
#array_sort($events);
|
|
||||||
return $events;
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,7 +3,7 @@ namespace pvv\side;
|
||||||
|
|
||||||
use \DateTimeImmutable;
|
use \DateTimeImmutable;
|
||||||
|
|
||||||
abstract class Event implements Activity {
|
abstract class Event {
|
||||||
|
|
||||||
private $start;
|
private $start;
|
||||||
|
|
||||||
|
@ -17,4 +17,6 @@ abstract class Event implements Activity {
|
||||||
|
|
||||||
public abstract function getStop(); /* : DateTimeImmutable */
|
public abstract function getStop(); /* : DateTimeImmutable */
|
||||||
|
|
||||||
|
public abstract function getURL(); /* : string */
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,21 +0,0 @@
|
||||||
<?php
|
|
||||||
namespace pvv\side;
|
|
||||||
use \mysqli;
|
|
||||||
require __DIR__.'/sql_config.php';
|
|
||||||
|
|
||||||
Class Events {
|
|
||||||
public function getAllEvents(){
|
|
||||||
global $url, $user,$pass,$db;
|
|
||||||
$events = array();
|
|
||||||
$mysqli = new mysqli($url,$user,$pass,$db);
|
|
||||||
$result = $mysqli->query("SELECT name,start,stop,organiser,location FROM events");
|
|
||||||
while($row = $result->fetch_assoc()){
|
|
||||||
$ev = new OnceEvent($row['name'],$row['start'],$row['stop'],$row['organiser'],$row['location']);
|
|
||||||
array_push($events,$ev);
|
|
||||||
}
|
|
||||||
#array_sort($events);
|
|
||||||
return $events;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
?>
|
|
|
@ -1,30 +0,0 @@
|
||||||
<?php
|
|
||||||
namespace pvv\side;
|
|
||||||
|
|
||||||
Class OnceEvent extends Event {
|
|
||||||
private $name, $start, $end, $org, $loc;
|
|
||||||
public function __construct($name,\DateTimeImmutable $start,\DateTimeImmutable $end,$org, $loc){
|
|
||||||
$this->name = $name;
|
|
||||||
$this->start = $start;
|
|
||||||
$this->end = $end;
|
|
||||||
$this->org = $org;
|
|
||||||
$this->log = $loc;
|
|
||||||
}
|
|
||||||
public function getStart(){
|
|
||||||
return $this->start;
|
|
||||||
}
|
|
||||||
public function getStop(){
|
|
||||||
return $this->end;
|
|
||||||
}
|
|
||||||
public function getOrganiser(){
|
|
||||||
return $this->org;
|
|
||||||
}
|
|
||||||
public function getLocation(){
|
|
||||||
return $this->loc;
|
|
||||||
}
|
|
||||||
public function getName(){
|
|
||||||
return $this->name;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
|
@ -1,12 +0,0 @@
|
||||||
<?php //declare(strict_types=1);
|
|
||||||
namespace pvv\side;
|
|
||||||
|
|
||||||
use \DateTimeImmutable;
|
|
||||||
|
|
||||||
interface RepeatingActivity extends Activity {
|
|
||||||
|
|
||||||
public function getNextEventFrom(DateTimeImmutable $date) /* : Event */;
|
|
||||||
|
|
||||||
public function getPreviousEventFrom(DateTimeImmutable $date) /* : Event */;
|
|
||||||
|
|
||||||
}
|
|
|
@ -0,0 +1,36 @@
|
||||||
|
<?php
|
||||||
|
namespace pvv\side;
|
||||||
|
|
||||||
|
Class SimpleEvent extends Event {
|
||||||
|
|
||||||
|
private $name, $start, $end, $org, $loc;
|
||||||
|
|
||||||
|
public function __construct($name,\DateTimeImmutable $start,\DateTimeImmutable $end,$org, $loc){
|
||||||
|
$this->name = $name;
|
||||||
|
$this->start = $start;
|
||||||
|
$this->end = $end;
|
||||||
|
$this->org = $org;
|
||||||
|
$this->log = $loc;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getStart(){
|
||||||
|
return $this->start;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getStop(){
|
||||||
|
return $this->end;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getOrganiser(){
|
||||||
|
return $this->org;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getLocation(){
|
||||||
|
return $this->loc;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getName(){
|
||||||
|
return $this->name;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -1,11 +1,11 @@
|
||||||
<?php //declare(strict_types=1);
|
<?php //declare(strict_types=1);
|
||||||
namespace pvv\side\social;
|
namespace pvv\side\social;
|
||||||
|
|
||||||
use \pvv\side\RepeatingActivity;
|
use \pvv\side\Activity;
|
||||||
use \DateTimeImmutable;
|
use \DateTimeImmutable;
|
||||||
use \DateInterval;
|
use \DateInterval;
|
||||||
|
|
||||||
class AnimekveldActivity implements RepeatingActivity {
|
class AnimekveldActivity implements Activity {
|
||||||
|
|
||||||
public function nextDate(DateTimeImmutable $date) {
|
public function nextDate(DateTimeImmutable $date) {
|
||||||
if ($date->format('H') > 20 || $date->format('H') == 19 && $date->format('i') > 30)
|
if ($date->format('H') > 20 || $date->format('H') == 19 && $date->format('i') > 30)
|
||||||
|
@ -33,16 +33,4 @@ class AnimekveldActivity implements RepeatingActivity {
|
||||||
return new AnimekveldEvent($this->prevDate($date));
|
return new AnimekveldEvent($this->prevDate($date));
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getName() /* : string */ {
|
|
||||||
return "Animekveld";
|
|
||||||
}
|
|
||||||
|
|
||||||
public function getLocation() /* : Location */ {
|
|
||||||
return "Koserommet";
|
|
||||||
}
|
|
||||||
|
|
||||||
public function getOrganiser() /* : User */ {
|
|
||||||
return "Liang Zhu";
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -23,4 +23,8 @@ class AnimekveldEvent extends Event {
|
||||||
return "Liang Zhu";
|
return "Liang Zhu";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function getURL() /* : string */ {
|
||||||
|
return '/anime/';
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
<?php //declare(strict_types=1);
|
<?php //declare(strict_types=1);
|
||||||
namespace pvv\side\social;
|
namespace pvv\side\social;
|
||||||
|
|
||||||
use \pvv\side\RepeatingActivity;
|
use \pvv\side\Activity;
|
||||||
use \DateTimeImmutable;
|
use \DateTimeImmutable;
|
||||||
use \DateInterval;
|
use \DateInterval;
|
||||||
|
|
||||||
class BrettspillActivity implements RepeatingActivity {
|
class BrettspillActivity implements Activity {
|
||||||
|
|
||||||
public function nextDate(DateTimeImmutable $date) {
|
public function nextDate(DateTimeImmutable $date) {
|
||||||
if ($date->format('H') > 20 || $date->format('H') == 19 && $date->format('i') > 30)
|
if ($date->format('H') > 20 || $date->format('H') == 19 && $date->format('i') > 30)
|
||||||
|
@ -33,16 +33,4 @@ class BrettspillActivity implements RepeatingActivity {
|
||||||
return new BrettspillEvent($this->prevDate($date));
|
return new BrettspillEvent($this->prevDate($date));
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getName() /* : string */ {
|
|
||||||
return "Brettspillkveld";
|
|
||||||
}
|
|
||||||
|
|
||||||
public function getLocation() /* : Location */ {
|
|
||||||
return "Koserommet";
|
|
||||||
}
|
|
||||||
|
|
||||||
public function getOrganiser() /* : User */ {
|
|
||||||
return "PVV";
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -23,4 +23,8 @@ class BrettspillEvent extends Event {
|
||||||
return "PVV";
|
return "PVV";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function getURL() /* : string */ {
|
||||||
|
return '/brettspill/';
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
<?php //declare(strict_types=1);
|
<?php //declare(strict_types=1);
|
||||||
namespace pvv\side\social;
|
namespace pvv\side\social;
|
||||||
|
|
||||||
use \pvv\side\RepeatingActivity;
|
use \pvv\side\Activity;
|
||||||
use \DateTimeImmutable;
|
use \DateTimeImmutable;
|
||||||
use \DateInterval;
|
use \DateInterval;
|
||||||
|
|
||||||
class NerdepitsaActivity implements RepeatingActivity {
|
class NerdepitsaActivity implements Activity {
|
||||||
|
|
||||||
public function nextDate(DateTimeImmutable $date) {
|
public function nextDate(DateTimeImmutable $date) {
|
||||||
if ($date->format('H') > 19)
|
if ($date->format('H') > 19)
|
||||||
|
@ -37,16 +37,4 @@ class NerdepitsaActivity implements RepeatingActivity {
|
||||||
return new NerdepitsaEvent($this->prevDate($date));
|
return new NerdepitsaEvent($this->prevDate($date));
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getName() /* : string */ {
|
|
||||||
return "Nerdepitsa";
|
|
||||||
}
|
|
||||||
|
|
||||||
public function getLocation() /* : Location */ {
|
|
||||||
return "Peppes Kjøpmansgata";
|
|
||||||
}
|
|
||||||
|
|
||||||
public function getOrganiser() /* : User */ {
|
|
||||||
return "Anders Christensen";
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -23,4 +23,8 @@ class NerdepitsaEvent extends Event {
|
||||||
return "Anders Christensen";
|
return "Anders Christensen";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function getURL() /* : string */ {
|
||||||
|
return '/nerdepitsa/';
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +0,0 @@
|
||||||
<?php
|
|
||||||
$url = "127.0.0.1";
|
|
||||||
$user = "user";
|
|
||||||
$pass = "password";
|
|
||||||
$db = "events";
|
|
||||||
?>
|
|
|
@ -1,8 +1,9 @@
|
||||||
<?php
|
<?php
|
||||||
require '../src/_autoload.php';
|
|
||||||
date_default_timezone_set('Europe/Oslo');
|
date_default_timezone_set('Europe/Oslo');
|
||||||
require __DIR__ . '/../sql_config.php';
|
|
||||||
setlocale(LC_ALL, 'no_NO');
|
setlocale(LC_ALL, 'no_NO');
|
||||||
|
require __DIR__ . '/../src/_autoload.php';
|
||||||
|
require __DIR__ . '/../sql_config.php';
|
||||||
|
$translation = ['i dag', 'i morgen', 'denne uka', 'neste uke', 'denne måneden', 'neste måned'];
|
||||||
$pdo = new \PDO($dbDsn, $dbUser, $dbPass);
|
$pdo = new \PDO($dbDsn, $dbUser, $dbPass);
|
||||||
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
|
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
|
||||||
$agenda = new \pvv\side\Agenda([
|
$agenda = new \pvv\side\Agenda([
|
||||||
|
@ -31,7 +32,13 @@ $agenda = new \pvv\side\Agenda([
|
||||||
<header>Program­vare­verk­stedet</header>
|
<header>Program­vare­verk­stedet</header>
|
||||||
|
|
||||||
<ul id="ticker">
|
<ul id="ticker">
|
||||||
<li>I DAG: <a href="">nerdepitsa</a>
|
<?php
|
||||||
|
foreach($agenda->getNextDays() as $period => $events) {
|
||||||
|
$event = reset($events);
|
||||||
|
echo '<li>' . strtoupper($translation[$period]) . ': <a href="' . $event->getURL() . '">' . $event->getName() . '</a>';
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
?>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<main>
|
<main>
|
||||||
|
@ -50,25 +57,27 @@ $agenda = new \pvv\side\Agenda([
|
||||||
<article>
|
<article>
|
||||||
<h2>Kommende arrangement</h2>
|
<h2>Kommende arrangement</h2>
|
||||||
<ul class="calendar-events">
|
<ul class="calendar-events">
|
||||||
<?php $translation = ['i dag', 'i morgen', 'denne uka', 'neste uke', 'denne måneden', 'neste måned'] ?>
|
|
||||||
<?php $counter1 = 0; ?>
|
<?php $counter1 = 0; ?>
|
||||||
<?php $counter2 = 0; ?>
|
<?php $counter2 = 0; ?>
|
||||||
<?php foreach($agenda->getNextDays() as $period => $events) if ($events && $counter1 < 3 && $counter2 < 10) { $counter1++ ?>
|
<?php foreach($agenda->getNextDays() as $period => $events) if ($events && $counter1 < 2 && $counter2 < 10) { $counter1++ ?>
|
||||||
<li>
|
<li>
|
||||||
<p><?= $translation[$period] ?></p>
|
<p><?= $translation[$period] ?></p>
|
||||||
<ul>
|
<ul>
|
||||||
<?php foreach($events as $event) { $counter2++ ?>
|
<?php foreach($events as $event) { $counter2++ ?>
|
||||||
<li>
|
<li>
|
||||||
<a><?= $event->getName(); ?></a>
|
<a href="<?= htmlspecialchars($event->getURL()) ?>"><?= $event->getName(); ?></a>
|
||||||
<a class="icon subscribe" href="">+</a>
|
<?php /* <a class="icon subscribe">+</a> */ ?>
|
||||||
<?php if ($period) {
|
<?php if ($period) {
|
||||||
if (\pvv\side\Agenda::isThisWeek($event->getStart()) || $event->getStart()->sub(new DateInterval('P3D'))->getTimestamp() < time()) {
|
if (\pvv\side\Agenda::isThisWeek($event->getStart()) || $event->getStart()->sub(new DateInterval('P3D'))->getTimestamp() < time()) {
|
||||||
echo '<span class="date">' . strftime('%A', $event->getStart()->getTimestamp()) . '</span>';
|
echo '<span class="time">' . strftime('%a', $event->getStart()->getTimestamp()) . '</span>';
|
||||||
} else {
|
} else {
|
||||||
echo '<span class="date">' . strftime('%e. %b', $event->getStart()->getTimestamp()) . '</span>';
|
echo '<span class="time">' . strftime('%e. %b', $event->getStart()->getTimestamp()) . '</span>';
|
||||||
}
|
}
|
||||||
} ?>
|
echo '<span class="date">' . $event->getStart()->format('H:i') . '</span>';
|
||||||
<span class="time"><?= $event->getStart()->format('H:i'); ?></span>
|
} else {
|
||||||
|
echo '<span class="time">' . $event->getStart()->format('H:i') . '</span>';
|
||||||
|
}
|
||||||
|
?>
|
||||||
</li>
|
</li>
|
||||||
<?php } ?>
|
<?php } ?>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
Loading…
Reference in New Issue