The formattening, part 2

This commit is contained in:
Oystein Kristoffer Tveit 2025-03-12 00:38:57 +01:00
parent b6697e5750
commit da8afe735c
Signed by: oysteikt
GPG Key ID: 9F2F7D8250F35146
35 changed files with 1066 additions and 1033 deletions

@ -1,19 +1,19 @@
<?php
require __DIR__ . '/../../../src/_autoload.php';
require __DIR__ . '/../../../config.php';
$pdo = new \PDO($DB_DSN, $DB_USER, $DB_PASS);
$pdo = new PDO($DB_DSN, $DB_USER, $DB_PASS);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$userManager = new \pvv\admin\UserManager($pdo);
$userManager = new pvv\admin\UserManager($pdo);
require_once(__DIR__ . '/../../../vendor/simplesamlphp/simplesamlphp/lib/_autoload.php');
$as = new \SimpleSAML\Auth\Simple('default-sp');
require_once __DIR__ . '/../../../vendor/simplesamlphp/simplesamlphp/lib/_autoload.php';
$as = new SimpleSAML\Auth\Simple('default-sp');
$as->requireAuth();
$attrs = $as->getAttributes();
$uname = $attrs['uid'][0];
if(!$userManager->hasGroup($uname, 'aktiviteter')){
echo 'Her har du ikke lov\'t\'å\'værra!!!';
exit();
if (!$userManager->hasGroup($uname, 'aktiviteter')) {
echo 'Her har du ikke lov\'t\'å\'værra!!!';
exit;
}
$eventID = $_GET['id'];

@ -1,61 +1,60 @@
<?php
date_default_timezone_set('Europe/Oslo');
setlocale(LC_ALL, 'nb_NO');
setlocale(\LC_ALL, 'nb_NO');
require __DIR__ . '/../../../inc/navbar.php';
require __DIR__ . '/../../../src/_autoload.php';
require __DIR__ . '/../../../config.php';
$pdo = new \PDO($DB_DSN, $DB_USER, $DB_PASS);
$pdo = new PDO($DB_DSN, $DB_USER, $DB_PASS);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$userManager = new \pvv\admin\UserManager($pdo);
$userManager = new pvv\admin\UserManager($pdo);
require_once(__DIR__ . '/../../../vendor/simplesamlphp/simplesamlphp/lib/_autoload.php');
$as = new \SimpleSAML\Auth\Simple('default-sp');
require_once __DIR__ . '/../../../vendor/simplesamlphp/simplesamlphp/lib/_autoload.php';
$as = new SimpleSAML\Auth\Simple('default-sp');
$as->requireAuth();
$attrs = $as->getAttributes();
$uname = $attrs['uid'][0];
$name = $attrs['cn'][0];
if(!$userManager->hasGroup($uname, 'aktiviteter')){
echo 'Her har du ikke lov\'t\'å\'værra!!!';
exit();
if (!$userManager->hasGroup($uname, 'aktiviteter')) {
echo 'Her har du ikke lov\'t\'å\'værra!!!';
exit;
}
$customActivity = new \pvv\side\DBActivity($pdo);
$customActivity = new pvv\side\DBActivity($pdo);
$new = 0;
if(isset($_GET['new'])){
$new = $_GET['new'];
if (isset($_GET['new'])) {
$new = $_GET['new'];
}
$eventID = 0;
if(isset($_GET['id'])){
$eventID = $_GET['id'];
}else if($new == 0){
echo "\nID not set";
exit();
if (isset($_GET['id'])) {
$eventID = $_GET['id'];
} elseif ($new == 0) {
echo "\nID not set";
exit;
}
$today = new DateTimeImmutable;
$today = new DateTimeImmutable();
$today = $today->setTime(18, 15);
$defaultStart = $today->format("Y-m-d H:15:00");
$defaultStart = $today->format('Y-m-d H:15:00');
$inTwoHours = $today->add(new DateInterval('PT1H45M'));
$defaultEnd = $inTwoHours->format("Y-m-d H:00:00");
$defaultEnd = $inTwoHours->format('Y-m-d H:00:00');
$event;
if($new == 0){
$event = $customActivity->getEventByID($eventID);
}
else {
$event = new \pvv\side\SimpleEvent(
0,
'',
$today,
$inTwoHours,
'',
'',
''
);
if ($new == 0) {
$event = $customActivity->getEventByID($eventID);
} else {
$event = new pvv\side\SimpleEvent(
0,
'',
$today,
$inTwoHours,
'',
'',
''
);
}
@ -86,49 +85,49 @@ else {
<h2>Aktivietsadministrasjon</h2>
<hr class="ruler">
<h2><?= ($new == 1 ? "Ny hendelse" : "Rediger hendelse"); ?></h2>
<h2><?php echo $new == 1 ? 'Ny hendelse' : 'Rediger hendelse'; ?></h2>
<form action="update.php", method="post" class="gridsplit fullwidth_inputs">
<div class="gridl">
<p class="subtitle">Tittel</p>
<input type="text" name="title" value="<?= $event->getName() ?>" class="boxinput" required placeholder="En kul hendelse"><br>
<input type="text" name="title" value="<?php echo $event->getName(); ?>" class="boxinput" required placeholder="En kul hendelse"><br>
<div class="gridsplit5050">
<div class="gridl">
<p class="subtitle">Arrangør</p>
<input type="text" name="organiser" value="<?= $event->getOrganiser() ?>" class="boxinput" required placeholder="<?= $name ?>"><br>
<input type="text" name="organiser" value="<?php echo $event->getOrganiser(); ?>" class="boxinput" required placeholder="<?php echo $name; ?>"><br>
</div>
<div class="gridr noborder">
<p class="subtitle">Sted</p>
<input type="text" name="location" value="<?= $event->getLocation() ?>" class="boxinput" required placeholder="Terminalrommet"><br>
<input type="text" name="location" value="<?php echo $event->getLocation(); ?>" class="boxinput" required placeholder="Terminalrommet"><br>
</div>
</div>
<p class="subtitle">Beskrivelse (<i>markdown</i>)</p>
<textarea name="desc" rows="8" class="boxinput" placeholder="Beskrivelse" required><?= implode("\n", $event->getDescription()); ?></textarea>
<textarea name="desc" rows="8" class="boxinput" placeholder="Beskrivelse" required><?php echo implode("\n", $event->getDescription()); ?></textarea>
</div>
<div class="gridr" style="line-height: 1.3em;">
<h4>Starttid</h4><br>
<i>Måned:</i><br>
<input name="start_mon" type="month" class="boxinput" required value="<?= $event->getStart()->format('Y-m') ?>"><br>
<input name="start_mon" type="month" class="boxinput" required value="<?php echo $event->getStart()->format('Y-m'); ?>"><br>
<i>Dag:</i><br>
<input name="start_day" type="number" min="1" max="31" required class="boxinput" value="<?= $event->getStart()->format('d') ?>"><br>
<input name="start_day" type="number" min="1" max="31" required class="boxinput" value="<?php echo $event->getStart()->format('d'); ?>"><br>
<i>Klokkeslett:</i><br>
<input name="start_time" type="time" class="boxinput" required value="<?= $event->getStart()->format('H:i:s') ?>"><br>
<input name="start_time" type="time" class="boxinput" required value="<?php echo $event->getStart()->format('H:i:s'); ?>"><br>
<br>
<h4>Varighet</h4><br>
<?php $diff = $event->getStart()->diff($event->getStop()); ?>
<i>Timer:</i><br>
<input name="lasts_hours" type="number" min="0" class="boxinput" required value="<?= $diff->h ?>"><br>
<input name="lasts_hours" type="number" min="0" class="boxinput" required value="<?php echo $diff->h; ?>"><br>
<i>Minutter:</i><br>
<input name="lasts_minutes" type="number" min="0" max="59" class="boxinput" required value="<?= $diff->i ?>"><br>
<input name="lasts_minutes" type="number" min="0" max="59" class="boxinput" required value="<?php echo $diff->i; ?>"><br>
</div>
<input type="hidden" name="id" value="<?= $event->getID() ?>" />
<input type="hidden" name="id" value="<?php echo $event->getID(); ?>" />
<div class="allgrids" style="margin-top: 2em;">
<hr class="ruler">
@ -136,7 +135,7 @@ else {
</div>
</form>
<p>
</main>

@ -1,49 +1,47 @@
<?php
date_default_timezone_set('Europe/Oslo');
setlocale(LC_ALL, 'nb_NO');
setlocale(\LC_ALL, 'nb_NO');
require __DIR__ . '/../../../inc/navbar.php';
require __DIR__ . '/../../../src/_autoload.php';
require __DIR__ . '/../../../config.php';
$pdo = new \PDO($DB_DSN, $DB_USER, $DB_PASS);
$pdo = new PDO($DB_DSN, $DB_USER, $DB_PASS);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$userManager = new \pvv\admin\UserManager($pdo);
$userManager = new pvv\admin\UserManager($pdo);
require_once(__DIR__ . '/../../../vendor/simplesamlphp/simplesamlphp/lib/_autoload.php');
$as = new \SimpleSAML\Auth\Simple('default-sp');
require_once __DIR__ . '/../../../vendor/simplesamlphp/simplesamlphp/lib/_autoload.php';
$as = new SimpleSAML\Auth\Simple('default-sp');
$as->requireAuth();
$attrs = $as->getAttributes();
$uname = $attrs['uid'][0];
if(!$userManager->hasGroup($uname, 'aktiviteter')){
echo 'Her har du ikke lov\'t\'å\'værra!!!';
exit();
if (!$userManager->hasGroup($uname, 'aktiviteter')) {
echo 'Her har du ikke lov\'t\'å\'værra!!!';
exit;
}
$customActivity = new \pvv\side\DBActivity($pdo);
$customActivity = new pvv\side\DBActivity($pdo);
$events = $customActivity->getAllEvents();
$page = 1;
if(isset($_GET['page'])){
$page = $_GET['page'];
if (isset($_GET['page'])) {
$page = $_GET['page'];
}
$filterTitle = '';
if(isset($_GET['title'])){
$filterTitle = $_GET['title'];
if (isset($_GET['title'])) {
$filterTitle = $_GET['title'];
}
$filterOrganiser = '';
if(isset($_GET['organiser'])){
$filterOrganiser = $_GET['organiser'];
if (isset($_GET['organiser'])) {
$filterOrganiser = $_GET['organiser'];
}
// filter
$events = array_values(array_filter(
$events,
function($event) use ($filterTitle, $filterOrganiser){
return (preg_match('/.*'.$filterTitle.'.*/i', $event->getName()) and preg_match('/.*'.$filterOrganiser.'.*/i', $event->getOrganiser()));
}
$events,
static fn($event) => (preg_match('/.*' . $filterTitle . '.*/i', $event->getName()) && preg_match('/.*' . $filterOrganiser . '.*/i', $event->getOrganiser()))
));
?>
<!DOCTYPE html>
@ -62,7 +60,7 @@ $events = array_values(array_filter(
<header>Aktivitets&shy;administrasjons&shy;verk&shy;stedet</header>
<body>
<nav>
<?php echo navbar(2, 'admin'); ?>
<?php echo loginbar(null, $pdo); ?>
@ -79,53 +77,53 @@ $events = array_values(array_filter(
<ul class="event-list">
<?php
$counter = 0;
$pageLimit = 10;
$counter = 0;
$pageLimit = 10;
for($i = ($pageLimit * ($page - 1)); $i < count($events) ;$i++){
if($counter == $pageLimit){
break;
}
for ($i = ($pageLimit * ($page - 1)); $i < count($events); ++$i) {
if ($counter == $pageLimit) {
break;
}
$event = $events[$i];
$eventID = $event->getID();
?>
$event = $events[$i];
$eventID = $event->getID();
?>
<li>
<div class="event admin">
<div class="event-info">
<h3 class="no-chin"><?= $event->getName() . " (ID: " . $eventID . ")"; ?></h3>
<h3 class="no-chin"><?php echo $event->getName() . ' (ID: ' . $eventID . ')'; ?></h3>
<p class="subnote">
<?= $event->getStart()->format("(Y-m-d H:i:s)") . " - " . $event->getStop()->format("(Y-m-d H:i:s)"); ?>
<?php echo $event->getStart()->format('(Y-m-d H:i:s)') . ' - ' . $event->getStop()->format('(Y-m-d H:i:s)'); ?>
</p>
<?php
$Parsedown = new \Parsedown();
echo $Parsedown->text(implode("\n", $event->getDescription()));
?>
$Parsedown = new Parsedown();
echo $Parsedown->text(implode("\n", $event->getDescription()));
?>
</div>
<div class="event-actions">
<a class="btn" href="edit.php?id=<?= $eventID ?>">Rediger</a><br>
<a class="btn" href="delete.php?id=<?= $eventID ?>" onclick="return confirm('Knallsikker? (ID: <?= $eventID ?>)');">Slett</a>
<a class="btn" href="edit.php?id=<?php echo $eventID; ?>">Rediger</a><br>
<a class="btn" href="delete.php?id=<?php echo $eventID; ?>" onclick="return confirm('Knallsikker? (ID: <?php echo $eventID; ?>)');">Slett</a>
</div>
</div>
</li>
<?php
$counter++;
}
?>
++$counter;
}
?>
</ul>
<?php
if($page != 1){
echo '<a class="btn float-left" href="?page=' . ($page - 1) . '&title=' . urlencode($filterTitle) . '&organiser=' . urlencode($filterOrganiser) . '">Forrige side</a>';
}
if ($page != 1) {
echo '<a class="btn float-left" href="?page=' . ($page - 1) . '&title=' . urlencode($filterTitle) . '&organiser=' . urlencode($filterOrganiser) . '">Forrige side</a>';
}
if(($counter == $pageLimit) and (($pageLimit * $page) < count($events))){
echo '<a class="btn float-right" href="?page=' . ($page + 1) . '&title=' . urlencode($filterTitle) . '&organiser=' . urlencode($filterOrganiser) . '">Neste side</a>';
}
?>
if (($counter == $pageLimit) && (($pageLimit * $page) < count($events))) {
echo '<a class="btn float-right" href="?page=' . ($page + 1) . '&title=' . urlencode($filterTitle) . '&organiser=' . urlencode($filterOrganiser) . '">Neste side</a>';
}
?>
</div>
<div class="gridr">
@ -134,9 +132,9 @@ $events = array_values(array_filter(
<h2>Filter</h2>
<form action="." method="get">
<p class="no-chin">Navn</p>
<?= '<input type="text" name="title" class="boxinput" value="' . $filterTitle . '">' ?><br>
<?php echo '<input type="text" name="title" class="boxinput" value="' . $filterTitle . '">'; ?><br>
<p class="no-chin">Organisator</p>
<?= '<input type="text" name="organiser" class="boxinput" value="' . $filterOrganiser . '">' ?><br>
<?php echo '<input type="text" name="organiser" class="boxinput" value="' . $filterOrganiser . '">'; ?><br>
<div style="margin-top: 2em;">
<input type="submit" class="btn" value="Filtrer"></input>

@ -1,45 +1,45 @@
<?php
date_default_timezone_set('Europe/Oslo');
setlocale(LC_ALL, 'nb_NO');
setlocale(\LC_ALL, 'nb_NO');
require __DIR__ . '/../../../src/_autoload.php';
require __DIR__ . '/../../../config.php';
$pdo = new \PDO($DB_DSN, $DB_USER, $DB_PASS);
$pdo = new PDO($DB_DSN, $DB_USER, $DB_PASS);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$userManager = new \pvv\admin\UserManager($pdo);
$userManager = new pvv\admin\UserManager($pdo);
require_once(__DIR__ . '/../../../vendor/simplesamlphp/simplesamlphp/lib/_autoload.php');
$as = new \SimpleSAML\Auth\Simple('default-sp');
require_once __DIR__ . '/../../../vendor/simplesamlphp/simplesamlphp/lib/_autoload.php';
$as = new SimpleSAML\Auth\Simple('default-sp');
$as->requireAuth();
$attrs = $as->getAttributes();
$uname = $attrs['uid'][0];
if(!$userManager->hasGroup($uname, 'aktiviteter')){
echo 'Her har du ikke lov\'t\'å\'værra!!!';
exit();
if (!$userManager->hasGroup($uname, 'aktiviteter')) {
echo 'Her har du ikke lov\'t\'å\'værra!!!';
exit;
}
if((!isset($_POST['title']))
or (!isset($_POST['desc']))
or (!isset($_POST['organiser']))
or (!isset($_POST['location']))
or (!isset($_POST['start_mon']))
or (!isset($_POST['start_day']))
or (!isset($_POST['start_time']))
or (!isset($_POST['lasts_hours']))
or (!isset($_POST['lasts_minutes']))) {
header('Location: ' . $_SERVER['HTTP_REFERER']);
exit();
if ((!isset($_POST['title']))
|| (!isset($_POST['desc']))
|| (!isset($_POST['organiser']))
|| (!isset($_POST['location']))
|| (!isset($_POST['start_mon']))
|| (!isset($_POST['start_day']))
|| (!isset($_POST['start_time']))
|| (!isset($_POST['lasts_hours']))
|| (!isset($_POST['lasts_minutes']))) {
header('Location: ' . $_SERVER['HTTP_REFERER']);
exit;
}
$id = 0;
if(isset($_POST['id'])){
$id = $_POST['id'];
if (isset($_POST['id'])) {
$id = $_POST['id'];
}
$title = $_POST['title'];
$desc = $_POST['desc'];
//$start = $_POST['start'];
//$stop = $_POST['end'];
// $start = $_POST['start'];
// $stop = $_POST['end'];
$organiser = $_POST['organiser'];
$location = $_POST['location'];
@ -50,12 +50,12 @@ $date_part_lasts_hours = $_POST['lasts_hours'];
$date_part_lasts_minutes = $_POST['lasts_minutes'];
while (strlen($date_part_start_day) < 2) {
$date_part_start_day = "0" . $date_part_start_day;
$date_part_start_day = '0' . $date_part_start_day;
}
$start = ($date_part_start_mon . "-" . $date_part_start_day . " " . $date_part_start_time);
if (sizeof(explode(":", $date_part_start_time))==2) {
$start .= ":00";
$start = ($date_part_start_mon . '-' . $date_part_start_day . ' ' . $date_part_start_time);
if (count(explode(':', $date_part_start_time)) == 2) {
$start .= ':00';
}
$start_date = DateTimeImmutable::createFromFormat('Y-m-d H:i:s', $start);
@ -64,32 +64,32 @@ $start = $start_date->format('Y-m-d H:i:s');
$stop = $stop_date->format('Y-m-d H:i:s');
if ($start_date >= $stop_date) {
echo 'Invalid dates. End date must come after the start date!';
exit();
echo 'Invalid dates. End date must come after the start date!';
exit;
}
$statement;
if($id == 0){
$query = 'INSERT INTO events (name, start, stop, organiser, location, description) VALUES (:title, :start, :stop, :organiser, :loc, :desc)';
$statement = $pdo->prepare($query);
$statement->bindParam(':title', $title, PDO::PARAM_STR);
$statement->bindParam(':desc', $desc, PDO::PARAM_STR);
$statement->bindParam(':start', $start, PDO::PARAM_STR);
$statement->bindParam(':stop', $stop, PDO::PARAM_STR);
$statement->bindParam(':organiser', $organiser, PDO::PARAM_STR);
$statement->bindParam(':loc', $location, PDO::PARAM_STR);
}else{
$query = 'UPDATE events SET name=:title, start=:start, stop=:stop, organiser=:organiser, location=:loc, description=:desc WHERE id=:id';
$statement = $pdo->prepare($query);
if ($id == 0) {
$query = 'INSERT INTO events (name, start, stop, organiser, location, description) VALUES (:title, :start, :stop, :organiser, :loc, :desc)';
$statement = $pdo->prepare($query);
$statement->bindParam(':title', $title, PDO::PARAM_STR);
$statement->bindParam(':desc', $desc, PDO::PARAM_STR);
$statement->bindParam(':start', $start, PDO::PARAM_STR);
$statement->bindParam(':stop', $stop, PDO::PARAM_STR);
$statement->bindParam(':organiser', $organiser, PDO::PARAM_STR);
$statement->bindParam(':loc', $location, PDO::PARAM_STR);
$statement->bindParam(':id', $id, PDO::PARAM_INT);
$statement->bindParam(':title', $title, PDO::PARAM_STR);
$statement->bindParam(':desc', $desc, PDO::PARAM_STR);
$statement->bindParam(':start', $start, PDO::PARAM_STR);
$statement->bindParam(':stop', $stop, PDO::PARAM_STR);
$statement->bindParam(':organiser', $organiser, PDO::PARAM_STR);
$statement->bindParam(':loc', $location, PDO::PARAM_STR);
} else {
$query = 'UPDATE events SET name=:title, start=:start, stop=:stop, organiser=:organiser, location=:loc, description=:desc WHERE id=:id';
$statement = $pdo->prepare($query);
$statement->bindParam(':title', $title, PDO::PARAM_STR);
$statement->bindParam(':desc', $desc, PDO::PARAM_STR);
$statement->bindParam(':start', $start, PDO::PARAM_STR);
$statement->bindParam(':stop', $stop, PDO::PARAM_STR);
$statement->bindParam(':organiser', $organiser, PDO::PARAM_STR);
$statement->bindParam(':loc', $location, PDO::PARAM_STR);
$statement->bindParam(':id', $id, PDO::PARAM_INT);
}
$statement->execute();

@ -1,28 +1,28 @@
<?php
ini_set('display_errors', '1');
date_default_timezone_set('Europe/Oslo');
setlocale(LC_ALL, 'nb_NO');
error_reporting(E_ALL);
setlocale(\LC_ALL, 'nb_NO');
error_reporting(\E_ALL);
require __DIR__ . '/../../../inc/navbar.php';
require __DIR__ . '/../../../src/_autoload.php';
require __DIR__ . '/../../../config.php';
require_once(__DIR__ . '/../../../vendor/simplesamlphp/simplesamlphp/lib/_autoload.php');
$as = new \SimpleSAML\Auth\Simple('default-sp');
require_once __DIR__ . '/../../../vendor/simplesamlphp/simplesamlphp/lib/_autoload.php';
$as = new SimpleSAML\Auth\Simple('default-sp');
$attrs = $as->getAttributes();
$pdo = new \PDO($DB_DSN, $DB_USER, $DB_PASS);
$pdo = new PDO($DB_DSN, $DB_USER, $DB_PASS);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$userManager = new \pvv\admin\UserManager($pdo);
$userManager = new pvv\admin\UserManager($pdo);
require_once(__DIR__ . '/../../../vendor/simplesamlphp/simplesamlphp/lib/_autoload.php');
$as = new \SimpleSAML\Auth\Simple('default-sp');
require_once __DIR__ . '/../../../vendor/simplesamlphp/simplesamlphp/lib/_autoload.php';
$as = new SimpleSAML\Auth\Simple('default-sp');
$as->requireAuth();
$attrs = $as->getAttributes();
$uname = $attrs['uid'][0];
if(!$userManager->isAdmin($uname)){
echo 'Her har du ikke lov\'t\'å\'værra!!!';
exit();
if (!$userManager->isAdmin($uname)) {
echo 'Her har du ikke lov\'t\'å\'værra!!!';
exit;
}
$users = $userManager->getAllUserData();
@ -59,38 +59,38 @@ $users = $userManager->getAllUserData();
</tr>
<?php
$users_to_update = array();
foreach($users as $i => $data){
$uname = $data['name'];
$groupFlag = $userManager->getUsergroups($uname);
$users_to_update = [];
foreach ($users as $i => $data) {
$uname = $data['name'];
$groupFlag = $userManager->getUsergroups($uname);
array_push($users_to_update, $uname);
?>
$users_to_update[] = $uname;
?>
<tr>
<td><?= $uname ?></td>
<td><?php echo $uname; ?></td>
<?php
foreach($userManager->usergroups as $name => $group){
echo '<td><input type="checkbox" ' . (($groupFlag & $group) ? 'checked' : '') . ' name="' . $uname . '_' . $name . '" class="usergroupcheckbox">' . $name . '</td>';
}
?>
foreach ($userManager->usergroups as $name => $group) {
echo '<td><input type="checkbox" ' . (($groupFlag & $group) ? 'checked' : '') . ' name="' . $uname . '_' . $name . '" class="usergroupcheckbox">' . $name . '</td>';
}
?>
</tr>
<?php
}
foreach($users_to_update as $uname) {
echo '<input type="hidden" name="user_to_update" value="' . $uname . '" />';
}
?>
}
foreach ($users_to_update as $uname) {
echo '<input type="hidden" name="user_to_update" value="' . $uname . '" />';
}
?>
<tr class="newuserrow">
<td class="newuserelement"><input type="text" name="newuser" class="newuserinput"></td>
<?php
foreach($userManager->usergroups as $name => $group){
echo '<td><input type="checkbox" name="newuser_' . $name . '" class="usergroupcheckbox">' . $name . '</td>';
}
?>
foreach ($userManager->usergroups as $name => $group) {
echo '<td><input type="checkbox" name="newuser_' . $name . '" class="usergroupcheckbox">' . $name . '</td>';
}
?>
</tr>
</table>
<input type="submit" class="btn" value="Lagre">

@ -1,72 +1,73 @@
<?php
ini_set('display_errors', '1');
date_default_timezone_set('Europe/Oslo');
setlocale(LC_ALL, 'nb_NO');
error_reporting(E_ALL);
setlocale(\LC_ALL, 'nb_NO');
error_reporting(\E_ALL);
require __DIR__ . '/../../../src/_autoload.php';
require __DIR__ . '/../../../config.php';
$pdo = new \PDO($DB_DSN, $DB_USER, $DB_PASS);
$pdo = new PDO($DB_DSN, $DB_USER, $DB_PASS);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$userManager = new \pvv\admin\UserManager($pdo);
$userManager = new pvv\admin\UserManager($pdo);
require_once(__DIR__ . '/../../../vendor/simplesamlphp/simplesamlphp/lib/_autoload.php');
$as = new \SimpleSAML\Auth\Simple('default-sp');
require_once __DIR__ . '/../../../vendor/simplesamlphp/simplesamlphp/lib/_autoload.php';
$as = new SimpleSAML\Auth\Simple('default-sp');
$as->requireAuth();
$attrs = $as->getAttributes();
$uname = $attrs['uid'][0];
if(!$userManager->isAdmin($uname)){
echo 'Her har du ikke lov\'t\'å\'værra!!!';
exit();
if (!$userManager->isAdmin($uname)) {
echo 'Her har du ikke lov\'t\'å\'værra!!!';
exit;
}
$newUser;
if(isset($_POST['newuser'])){
$newUser = $_POST['newuser'];
unset($_POST['newuser']);
if (isset($_POST['newuser'])) {
$newUser = $_POST['newuser'];
unset($_POST['newuser']);
}
//$updatingUsers = explode('_', $_POST['users']);
$updatingUsers = array();
foreach ($_POST as $key => $value) { if ($key === "user_to_update") {
array_push($updatingUsers, $value);
}
// $updatingUsers = explode('_', $_POST['users']);
$updatingUsers = [];
foreach ($_POST as $key => $value) {
if ($key === 'user_to_update') {
$updatingUsers[] = $value;
}
}
unset($_POST['user_to_update']);
// 2d array of usernames and their corresponding group flags
$userFlags = [];
if($newUser){
$userFlags[$newUser] = 0;
if ($newUser) {
$userFlags[$newUser] = 0;
}
foreach($_POST as $namegroup => $info){
$data = explode('_', $namegroup);
$group = array_pop($data);
$uname = implode("_", $data);
if($uname == 'newuser'){
if(!$newUser){
continue;
}
foreach ($_POST as $namegroup => $info) {
$data = explode('_', $namegroup);
$group = array_pop($data);
$uname = implode('_', $data);
if ($uname == 'newuser') {
if (!$newUser) {
continue;
}
$uname = $newUser;
}
$uname = $newUser;
}
if(!isset($userFlags[$uname])){
$userFlags[$uname] = 0;
}
if (!isset($userFlags[$uname])) {
$userFlags[$uname] = 0;
}
$userFlags[$uname] = ($userFlags[$uname] | $userManager->usergroups[$group]);
$userFlags[$uname] = ($userFlags[$uname] | $userManager->usergroups[$group]);
}
foreach($updatingUsers as $uname) {
if(!array_key_exists($uname, $userFlags)){
$userFlags[$uname] = 0;
}
foreach ($updatingUsers as $uname) {
if (!array_key_exists($uname, $userFlags)) {
$userFlags[$uname] = 0;
}
}
foreach($userFlags as $uname => $flag){
$userManager->setGroups($uname, $flag);
foreach ($userFlags as $uname => $flag) {
$userManager->setGroups($uname, $flag);
}
header('Location: .');

@ -1,11 +1,11 @@
<?php
require_once dirname(dirname(__DIR__)) . implode(DIRECTORY_SEPARATOR, ['', 'inc', 'include.php']);
require_once dirname(__DIR__, 2) . implode(\DIRECTORY_SEPARATOR, ['', 'inc', 'include.php']);
$pdo = new \PDO($DB_DSN, $DB_USER, $DB_PASS);
$pdo = new PDO($DB_DSN, $DB_USER, $DB_PASS);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$userManager = new \pvv\admin\UserManager($pdo);
$userManager = new pvv\admin\UserManager($pdo);
$as = new \SimpleSAML\Auth\Simple('default-sp');
$as = new SimpleSAML\Auth\Simple('default-sp');
$as->requireAuth();
$attrs = $as->getAttributes();
$uname = $attrs['uid'][0];
@ -14,10 +14,10 @@ $isAdmin = $userManager->isAdmin($uname);
$projectGroup = $userManager->hasGroup($uname, 'prosjekt');
$activityGroup = $userManager->hasGroup($uname, 'aktiviteter');
if(!($isAdmin | $projectGroup | $activityGroup)){
header('Content-Type: text/plain', true, 403);
echo "Her har du ikke lov't'å'værra!!!\r\n";
exit();
if (!($isAdmin | $projectGroup | $activityGroup)) {
header('Content-Type: text/plain', true, 403);
echo "Her har du ikke lov't'å'værra!!!\r\n";
exit;
}
?>
<!DOCTYPE html>
@ -45,22 +45,22 @@ if(!($isAdmin | $projectGroup | $activityGroup)){
<h2>Administrasjon</h2>
<ul class="tools">
<?php
if($isAdmin | $activityGroup){
echo '<li><a class="btn" href="aktiviteter/?page=1">Aktiviteter/Hendelser</a></li>';
}
if ($isAdmin | $activityGroup) {
echo '<li><a class="btn" href="aktiviteter/?page=1">Aktiviteter/Hendelser</a></li>';
}
if($isAdmin | $projectGroup){
echo '<li><a class="btn" href="prosjekter/">Prosjekter</a></li>';
}
if ($isAdmin | $projectGroup) {
echo '<li><a class="btn" href="prosjekter/">Prosjekter</a></li>';
}
if($isAdmin) {
echo '<li><a class="btn" href="motd/">Dagens melding</a></li>';
}
if ($isAdmin) {
echo '<li><a class="btn" href="motd/">Dagens melding</a></li>';
}
if($isAdmin){
echo '<li><a class="btn" href="brukere/">Brukerrettigheter</a></li>';
}
?>
if ($isAdmin) {
echo '<li><a class="btn" href="brukere/">Brukerrettigheter</a></li>';
}
?>
<ul>
</main>
</body>

@ -1,31 +1,31 @@
<?php
ini_set('display_errors', '1');
date_default_timezone_set('Europe/Oslo');
setlocale(LC_ALL, 'no_NO');
error_reporting(E_ALL);
setlocale(\LC_ALL, 'no_NO');
error_reporting(\E_ALL);
require __DIR__ . '/../../../inc/navbar.php';
require __DIR__ . '/../../../src/_autoload.php';
require __DIR__ . '/../../../config.php';
require_once(__DIR__ . '/../../../vendor/simplesamlphp/simplesamlphp/lib/_autoload.php');
$as = new \SimpleSAML\Auth\Simple('default-sp');
require_once __DIR__ . '/../../../vendor/simplesamlphp/simplesamlphp/lib/_autoload.php';
$as = new SimpleSAML\Auth\Simple('default-sp');
$attrs = $as->getAttributes();
$pdo = new \PDO($DB_DSN, $DB_USER, $DB_PASS);
$pdo = new PDO($DB_DSN, $DB_USER, $DB_PASS);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$userManager = new \pvv\admin\UserManager($pdo);
$userManager = new pvv\admin\UserManager($pdo);
require_once(__DIR__ . '/../../../vendor/simplesamlphp/simplesamlphp/lib/_autoload.php');
$as = new \SimpleSAML\Auth\Simple('default-sp');
require_once __DIR__ . '/../../../vendor/simplesamlphp/simplesamlphp/lib/_autoload.php';
$as = new SimpleSAML\Auth\Simple('default-sp');
$as->requireAuth();
$attrs = $as->getAttributes();
$uname = $attrs['uid'][0];
if(!$userManager->isAdmin($uname)){
echo 'Her har du ikke lov\'t\'å\'værra!!!';
exit();
if (!$userManager->isAdmin($uname)) {
echo 'Her har du ikke lov\'t\'å\'værra!!!';
exit;
}
$motdfetcher = new \pvv\side\MOTD($pdo);
$motdfetcher = new pvv\side\MOTD($pdo);
$motd = $motdfetcher->getMOTD();
?>
<!DOCTYPE html>
@ -56,15 +56,15 @@ $motd = $motdfetcher->getMOTD();
<form action="update.php", method="post">
<p class="subtitle no-chin">Tittel</p>
<p class="subnote">Ikke nødvendig</p>
<input type="text" name="title" value="<?= $motd['title'] ?>" class="boxinput" style="width:66%;"><br>
<input type="text" name="title" value="<?php echo $motd['title']; ?>" class="boxinput" style="width:66%;"><br>
<p class="subtitle no-chin">Innhold (<i>markdown</i>)</p>
<textarea name="content" style="width:100%" rows="8" class="boxinput"><?= implode("\n", $motd["content"]) ?></textarea>
<textarea name="content" style="width:100%" rows="8" class="boxinput"><?php echo implode("\n", $motd['content']); ?></textarea>
<div style="margin-top: 2em;">
<hr class="ruler">
<?= '<input type="submit" class="btn" value="Lagre endringer"></a>'; ?>
<?php echo '<input type="submit" class="btn" value="Lagre endringer"></a>'; ?>
</div>
</form>
</main>

@ -1,32 +1,32 @@
<?php
ini_set('display_errors', '1');
date_default_timezone_set('Europe/Oslo');
setlocale(LC_ALL, 'no_NO');
error_reporting(E_ALL);
setlocale(\LC_ALL, 'no_NO');
error_reporting(\E_ALL);
require __DIR__ . '/../../../src/_autoload.php';
require __DIR__ . '/../../../config.php';
$pdo = new \PDO($DB_DSN, $DB_USER, $DB_PASS);
$pdo = new PDO($DB_DSN, $DB_USER, $DB_PASS);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$userManager = new \pvv\admin\UserManager($pdo);
$userManager = new pvv\admin\UserManager($pdo);
require_once(__DIR__ . '/../../../vendor/simplesamlphp/simplesamlphp/lib/_autoload.php');
$as = new \SimpleSAML\Auth\Simple('default-sp');
require_once __DIR__ . '/../../../vendor/simplesamlphp/simplesamlphp/lib/_autoload.php';
$as = new SimpleSAML\Auth\Simple('default-sp');
$as->requireAuth();
$attrs = $as->getAttributes();
$uname = $attrs['uid'][0];
if(!isset($_POST['title']) or !isset($_POST['content'])){
header('Location: ' . $_SERVER['HTTP_REFERER']);
exit();
if (!isset($_POST['title']) || !isset($_POST['content'])) {
header('Location: ' . $_SERVER['HTTP_REFERER']);
exit;
}
if(!$userManager->isAdmin($uname)){
echo 'Her har du ikke lov\'t\'å\'værra!!!';
exit();
if (!$userManager->isAdmin($uname)) {
echo 'Her har du ikke lov\'t\'å\'værra!!!';
exit;
}
$motdfetcher = new \pvv\side\MOTD($pdo);
$motdfetcher = new pvv\side\MOTD($pdo);
$motdfetcher->setMOTD($_POST['title'], $_POST['content']);
header('Location: .');

@ -1,19 +1,19 @@
<?php
require __DIR__ . '/../../../src/_autoload.php';
require __DIR__ . '/../../../config.php';
$pdo = new \PDO($DB_DSN, $DB_USER, $DB_PASS);
$pdo = new PDO($DB_DSN, $DB_USER, $DB_PASS);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$userManager = new \pvv\admin\UserManager($pdo);
$userManager = new pvv\admin\UserManager($pdo);
require_once(__DIR__ . '/../../../vendor/simplesamlphp/simplesamlphp/lib/_autoload.php');
$as = new \SimpleSAML\Auth\Simple('default-sp');
require_once __DIR__ . '/../../../vendor/simplesamlphp/simplesamlphp/lib/_autoload.php';
$as = new SimpleSAML\Auth\Simple('default-sp');
$as->requireAuth();
$attrs = $as->getAttributes();
$uname = $attrs['uid'][0];
if(!$userManager->hasGroup($uname, 'prosjekt')){
echo 'Her har du ikke lov\'t\'å\'værra!!!';
exit();
if (!$userManager->hasGroup($uname, 'prosjekt')) {
echo 'Her har du ikke lov\'t\'å\'værra!!!';
exit;
}
$projectID = $_GET['id'];

@ -1,64 +1,64 @@
<?php
date_default_timezone_set('Europe/Oslo');
setlocale(LC_ALL, 'nb_NO');
setlocale(\LC_ALL, 'nb_NO');
require __DIR__ . '/../../../inc/navbar.php';
require __DIR__ . '/../../../src/_autoload.php';
require __DIR__ . '/../../../config.php';
$pdo = new \PDO($DB_DSN, $DB_USER, $DB_PASS);
$pdo = new PDO($DB_DSN, $DB_USER, $DB_PASS);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$userManager = new \pvv\admin\UserManager($pdo);
$userManager = new pvv\admin\UserManager($pdo);
require_once(__DIR__ . '/../../../vendor/simplesamlphp/simplesamlphp/lib/_autoload.php');
$as = new \SimpleSAML\Auth\Simple('default-sp');
require_once __DIR__ . '/../../../vendor/simplesamlphp/simplesamlphp/lib/_autoload.php';
$as = new SimpleSAML\Auth\Simple('default-sp');
$as->requireAuth();
$attrs = $as->getAttributes();
$uname = $attrs['uid'][0];
if(!$userManager->hasGroup($uname, 'prosjekt')){
echo 'Her har du ikke lov\'t\'å\'værra!!!';
exit();
if (!$userManager->hasGroup($uname, 'prosjekt')) {
echo 'Her har du ikke lov\'t\'å\'værra!!!';
exit;
}
$projectManager = new \pvv\side\ProjectManager($pdo);
$projectManager = new pvv\side\ProjectManager($pdo);
$projects = $projectManager->getAll();
$new = 0;
if(isset($_GET['new'])){
$new = $_GET['new'];
if (isset($_GET['new'])) {
$new = $_GET['new'];
}
$projectID = 0;
if(isset($_GET['id'])){
$projectID = $_GET['id'];
}else if($new == 0){
echo "\nID not set";
exit();
if (isset($_GET['id'])) {
$projectID = $_GET['id'];
} elseif ($new == 0) {
echo "\nID not set";
exit;
}
$project = new \pvv\side\Project(
0,
'Kult Prosjekt',
'',
'kåre knoll',
'pvvadmin',
'drift@pvv.ntnu.no',
0
$project = new pvv\side\Project(
0,
'Kult Prosjekt',
'',
'kåre knoll',
'pvvadmin',
'drift@pvv.ntnu.no',
0
);
if($new == 0){
$project = $projectManager->getByID($projectID);
if ($new == 0) {
$project = $projectManager->getByID($projectID);
}
$members = $projectManager->getProjectMembers($projectID);
$owner = [
'name' => '',
'uname' => '',
'mail' => '',
'name' => '',
'uname' => '',
'mail' => '',
];
foreach($members as $i => $data){
if($data['owner']){
$owner = $data;
}
foreach ($members as $i => $data) {
if ($data['owner']) {
$owner = $data;
}
}
?>
<!DOCTYPE html>
@ -85,34 +85,34 @@ foreach($members as $i => $data){
<h2>Prosjektadministrasjon</h2>
<hr class="ruler">
<h2><?= ($new == 1 ? "Nytt prosjekt" : "Rediger prosjekt"); ?></h2>
<h2><?php echo $new == 1 ? 'Nytt prosjekt' : 'Rediger prosjekt'; ?></h2>
<form action="update.php", method="post" class="gridsplit5050">
<div class="gridl">
<p class="subtitle">Tittel</p>
<?= '<input type="text" name="title" value="' . $project->getName() . '" class="boxinput">' ?><br>
<?php echo '<input type="text" name="title" value="' . $project->getName() . '" class="boxinput">'; ?><br>
<p class="subtitle">Beskrivelse (<i>markdown</i>)</p>
<textarea name="desc" cols="40" rows="5" class="boxinput"><?= implode("\n", $project->getDescription()); ?></textarea>
<textarea name="desc" cols="40" rows="5" class="boxinput"><?php echo implode("\n", $project->getDescription()); ?></textarea>
</div>
<div class="gridr noborder">
<p class="subtitle">Prosjektleder (Brukernavn)</p>
<?= '<input type="text" name="organiser" value="' . $owner['uname'] . '" class="boxinput">' ?><br>
<?php echo '<input type="text" name="organiser" value="' . $owner['uname'] . '" class="boxinput">'; ?><br>
<p class="subtitle">Prosjektleder (Navn)</p>
<?= '<input type="text" name="organisername" value="' . $owner['name'] . '" class="boxinput">' ?>
<?php echo '<input type="text" name="organisername" value="' . $owner['name'] . '" class="boxinput">'; ?>
<p class="subtitle">Prosjektleder E-post</p>
<?= '<input type="text" name="organiseremail" value="' . $owner['mail'] . '" class="boxinput">' ?><br>
<?php echo '<input type="text" name="organiseremail" value="' . $owner['mail'] . '" class="boxinput">'; ?><br>
<p class="subtitle">Aktiv</p>
<?= '<input type="checkbox" '. ($project->getActive() ? 'checked' : '') . ' name="active"/>' ?>
<?php echo '<input type="checkbox" ' . ($project->getActive() ? 'checked' : '') . ' name="active"/>'; ?>
</div>
<?= '<input type="hidden" name="id" value="' . $project->getID() . '" />' ?>
<?php echo '<input type="hidden" name="id" value="' . $project->getID() . '" />'; ?>
<?php if(!$new){ ?>
<?php if (!$new) { ?>
<div style="grid-column: span 2;">
<hr class="ruler">
</div>
@ -121,11 +121,11 @@ foreach($members as $i => $data){
<table class="userlist" style="grid-column: span 2;">
<tr><th>Brukernavn</th><th>Navn</th><th>Rolle</th></tr>
<?php foreach($members as $i => $data) { ?>
<?php foreach ($members as $i => $data) { ?>
<tr>
<td><?= $data['uname']; ?></td>
<td><?= $data['name']; ?></td>
<td><?= $data['role']; ?></td>
<td><?php echo $data['uname']; ?></td>
<td><?php echo $data['name']; ?></td>
<td><?php echo $data['role']; ?></td>
</tr>
<?php } ?>
@ -136,7 +136,7 @@ foreach($members as $i => $data){
</tr>
</table>
<?php } ?>
<div class="allgrids" style="margin-top: 2em;">
<hr class="ruler">

@ -1,51 +1,49 @@
<?php
date_default_timezone_set('Europe/Oslo');
setlocale(LC_ALL, 'nb_NO');
setlocale(\LC_ALL, 'nb_NO');
require __DIR__ . '/../../../inc/navbar.php';
require __DIR__ . '/../../../src/_autoload.php';
require __DIR__ . '/../../../config.php';
$pdo = new \PDO($DB_DSN, $DB_USER, $DB_PASS);
$pdo = new PDO($DB_DSN, $DB_USER, $DB_PASS);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$userManager = new \pvv\admin\UserManager($pdo);
$userManager = new pvv\admin\UserManager($pdo);
require_once(__DIR__ . '/../../../vendor/simplesamlphp/simplesamlphp/lib/_autoload.php');
$as = new \SimpleSAML\Auth\Simple('default-sp');
require_once __DIR__ . '/../../../vendor/simplesamlphp/simplesamlphp/lib/_autoload.php';
$as = new SimpleSAML\Auth\Simple('default-sp');
$as->requireAuth();
$attrs = $as->getAttributes();
$uname = $attrs['uid'][0];
if(!$userManager->hasGroup($uname, 'prosjekt')){
echo 'Her har du ikke lov\'t\'å\'værra!!!';
exit();
if (!$userManager->hasGroup($uname, 'prosjekt')) {
echo 'Her har du ikke lov\'t\'å\'værra!!!';
exit;
}
$projectManager = new \pvv\side\ProjectManager($pdo);
$projectManager = new pvv\side\ProjectManager($pdo);
$projects = $projectManager->getAll();
$page = 1;
if(isset($_GET['page'])){
$page = $_GET['page'];
if (isset($_GET['page'])) {
$page = $_GET['page'];
}
$filterTitle = '';
if(isset($_POST['title'])){
$filterTitle = $_POST['title'];
if (isset($_POST['title'])) {
$filterTitle = $_POST['title'];
}
/* Temporarily out of service :<
$filterOrganiser = '';
if(isset($_POST['organiser'])){
$filterOrganiser = $_POST['organiser'];
$filterOrganiser = $_POST['organiser'];
}
*/
// filter
$projects = array_values(array_filter(
$projects,
function($project) use ($filterTitle){
return (preg_match('/.*'.$filterTitle.'.*/i', $project->getName()));
}
$projects,
static fn($project) => preg_match('/.*' . $filterTitle . '.*/i', $project->getName())
));
?>
<!DOCTYPE html>
@ -79,52 +77,52 @@ $projects = array_values(array_filter(
<ul class="event-list">
<?php
$counter = 0;
$pageLimit = 4;
$counter = 0;
$pageLimit = 4;
for($i = ($pageLimit * ($page - 1)); $i < count($projects); $i++){
if($counter == $pageLimit){
break;
}
for ($i = ($pageLimit * ($page - 1)); $i < count($projects); ++$i) {
if ($counter == $pageLimit) {
break;
}
$project = $projects[$i];
$projectID = $project->getID();
$owner = $projectManager->getProjectOwner($projectID);
?>
$project = $projects[$i];
$projectID = $project->getID();
$owner = $projectManager->getProjectOwner($projectID);
?>
<li>
<div class="event admin">
<div class="event-info">
<h3 class="no-chin"><?= $project->getName() . " (ID: " . $projectID . ")"; ?></h3>
<p class="subnote"><?= 'Organisert av: ' . $owner['name']; ?></p>
<h3 class="no-chin"><?php echo $project->getName() . ' (ID: ' . $projectID . ')'; ?></h3>
<p class="subnote"><?php echo 'Organisert av: ' . $owner['name']; ?></p>
<?php
$Parsedown = new \Parsedown();
echo $Parsedown->text(implode("\n", $project->getDescription()));
?>
$Parsedown = new Parsedown();
echo $Parsedown->text(implode("\n", $project->getDescription()));
?>
</div>
<div class="event-actions">
<?= '<a href="edit.php?id=' . $projectID . '">🖊</a>'; ?>
<?= '<a href="delete.php?id=' . $projectID . '" onclick="return confirm(\'Knallsikker? (ID: ' . $projectID . ')\');">🗑</a>'; ?>
<?php echo '<a href="edit.php?id=' . $projectID . '">🖊</a>'; ?>
<?php echo '<a href="delete.php?id=' . $projectID . '" onclick="return confirm(\'Knallsikker? (ID: ' . $projectID . ')\');">🗑</a>'; ?>
</div>
</div>
</li>
<?php
$counter++;
}
?>
++$counter;
}
?>
</ul>
<?php
if($page != 1){
echo '<a class="btn float-left" href="?page=' . ($page - 1) . '">Forrige side</a>';
}
if ($page != 1) {
echo '<a class="btn float-left" href="?page=' . ($page - 1) . '">Forrige side</a>';
}
if(($counter == $pageLimit) and (($pageLimit * $page) < count($projects))){
echo '<a class="btn float-right" href="?page=' . ($page + 1) . '">Neste side</a>';
}
?>
if (($counter == $pageLimit) && (($pageLimit * $page) < count($projects))) {
echo '<a class="btn float-right" href="?page=' . ($page + 1) . '">Neste side</a>';
}
?>
</div>
<div class="gridr">
@ -133,9 +131,9 @@ $projects = array_values(array_filter(
<h2>Filter</h2>
<form action="." method="post">
<p class="no-chin">Prosjektnavn</p>
<?= '<input type="text" name="title" class="boxinput" value="' . $filterTitle . '">' ?><br>
<?php echo '<input type="text" name="title" class="boxinput" value="' . $filterTitle . '">'; ?><br>
<p class="no-chin">Leders brukernavn</p>
<?= '<input type="text" name="organiser" class="boxinput" value="">' ?><br>
<?php echo '<input type="text" name="organiser" class="boxinput" value="">'; ?><br>
<div style="margin-top: 2em;">
<input type="submit" class="btn" value="Filtrer"></input>

@ -1,31 +1,31 @@
<?php
date_default_timezone_set('Europe/Oslo');
setlocale(LC_ALL, 'nb_NO');
setlocale(\LC_ALL, 'nb_NO');
require __DIR__ . '/../../../src/_autoload.php';
require __DIR__ . '/../../../config.php';
$pdo = new \PDO($DB_DSN, $DB_USER, $DB_PASS);
$pdo = new PDO($DB_DSN, $DB_USER, $DB_PASS);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$userManager = new \pvv\admin\UserManager($pdo);
$userManager = new pvv\admin\UserManager($pdo);
require_once(__DIR__ . '/../../../vendor/simplesamlphp/simplesamlphp/lib/_autoload.php');
$as = new \SimpleSAML\Auth\Simple('default-sp');
require_once __DIR__ . '/../../../vendor/simplesamlphp/simplesamlphp/lib/_autoload.php';
$as = new SimpleSAML\Auth\Simple('default-sp');
$as->requireAuth();
$attrs = $as->getAttributes();
$uname = $attrs['uid'][0];
if(!$userManager->hasGroup($uname, 'prosjekt')){
echo 'Her har du ikke lov\'t\'å\'værra!!!';
exit();
if (!$userManager->hasGroup($uname, 'prosjekt')) {
echo 'Her har du ikke lov\'t\'å\'værra!!!';
exit;
}
if(!isset($_POST['title']) or !isset($_POST['desc']) or !isset($_POST['organisername']) or !isset($_POST['organiser'])){
header('Location: ' . $_SERVER['HTTP_REFERER']);
exit();
if (!isset($_POST['title']) || !isset($_POST['desc']) || !isset($_POST['organisername']) || !isset($_POST['organiser'])) {
header('Location: ' . $_SERVER['HTTP_REFERER']);
exit;
}
$id = 0;
if(isset($_POST['id'])){
$id = $_POST['id'];
if (isset($_POST['id'])) {
$id = $_POST['id'];
}
$title = $_POST['title'];
@ -33,45 +33,45 @@ $desc = $_POST['desc'];
$name = $_POST['organisername'];
$uname = $_POST['organiser'];
$mail = $_POST['organiseremail'];
$active = (isset($_POST['active']) ? $_POST['active'] : 0);
$active = ($_POST['active'] ?? 0);
$statement;
if($id == 0){
$query = 'INSERT INTO projects (name, description, active) VALUES (:title, :desc, :active)';
$statement = $pdo->prepare($query);
$statement->bindParam(':title', $title, PDO::PARAM_STR);
$statement->bindParam(':desc', $desc, PDO::PARAM_STR);
$statement->bindParam(':active', $active, PDO::PARAM_INT);
if ($id == 0) {
$query = 'INSERT INTO projects (name, description, active) VALUES (:title, :desc, :active)';
$statement = $pdo->prepare($query);
$statement->execute();
$statement->bindParam(':title', $title, PDO::PARAM_STR);
$statement->bindParam(':desc', $desc, PDO::PARAM_STR);
$statement->bindParam(':active', $active, PDO::PARAM_INT);
$ownerQuery = 'INSERT INTO projectmembers (projectid, name, uname, mail, role, lead, owner) VALUES (last_insert_rowid(), :owner, :owneruname, :owneremail, \'Prosjektleder\', 1, 1)';
$statement = $pdo->prepare($ownerQuery);
$statement->bindParam(':owner', $name, PDO::PARAM_STR);
$statement->bindParam(':owneruname', $uname, PDO::PARAM_STR);
$statement->bindParam(':owneremail', $mail, PDO::PARAM_STR);
$statement->execute();
$statement->execute();
}else{
$query = 'UPDATE projects SET name=:title, description=:desc, active=:active WHERE id=:id';
$statement = $pdo->prepare($query);
$ownerQuery = 'INSERT INTO projectmembers (projectid, name, uname, mail, role, lead, owner) VALUES (last_insert_rowid(), :owner, :owneruname, :owneremail, \'Prosjektleder\', 1, 1)';
$statement = $pdo->prepare($ownerQuery);
$statement->bindParam(':owner', $name, PDO::PARAM_STR);
$statement->bindParam(':owneruname', $uname, PDO::PARAM_STR);
$statement->bindParam(':owneremail', $mail, PDO::PARAM_STR);
$statement->bindParam(':title', $title, PDO::PARAM_STR);
$statement->bindParam(':desc', $desc, PDO::PARAM_STR);
$statement->bindParam(':active', $active, PDO::PARAM_INT);
$statement->bindParam(':id', $id, PDO::PARAM_INT);
$statement->execute();
} else {
$query = 'UPDATE projects SET name=:title, description=:desc, active=:active WHERE id=:id';
$statement = $pdo->prepare($query);
$statement->execute();
$statement->bindParam(':title', $title, PDO::PARAM_STR);
$statement->bindParam(':desc', $desc, PDO::PARAM_STR);
$statement->bindParam(':active', $active, PDO::PARAM_INT);
$statement->bindParam(':id', $id, PDO::PARAM_INT);
$query = 'UPDATE projectmembers SET name=:name, uname=:uname, mail=:mail';
$statement = $pdo->prepare($query);
$statement->execute();
$statement->bindParam(':name', $name, PDO::PARAM_STR);
$statement->bindParam(':uname', $uname, PDO::PARAM_STR);
$statement->bindParam(':mail', $mail, PDO::PARAM_STR);
$query = 'UPDATE projectmembers SET name=:name, uname=:uname, mail=:mail';
$statement = $pdo->prepare($query);
$statement->execute();
$statement->bindParam(':name', $name, PDO::PARAM_STR);
$statement->bindParam(':uname', $uname, PDO::PARAM_STR);
$statement->bindParam(':mail', $mail, PDO::PARAM_STR);
$statement->execute();
}
header('Location: .');

@ -1,15 +1,18 @@
<?php namespace pvv\side;
require_once dirname(dirname(__DIR__)) . implode(DIRECTORY_SEPARATOR, ['', 'inc', 'include.php']);
<?php
namespace pvv\side;
require_once \dirname(__DIR__, 2) . implode(\DIRECTORY_SEPARATOR, ['', 'inc', 'include.php']);
$year = (isset($_GET['year']))
? $_GET['year']
: date("Y");
? $_GET['year']
: date('Y');
$month = (isset($_GET['month']))
? $_GET['month']
: date("m");
? $_GET['month']
: date('m');
$day = (isset($_GET['day']))
? $_GET['day']
: -1;
? $_GET['day']
: -1;
?>
<!DOCTYPE html>
@ -34,42 +37,46 @@ $day = (isset($_GET['day']))
<main>
<?php
use \DateTimeImmutable;
$events = ($day==-1)
? $agenda->getNextOfEach(new \DateTimeImmutable)
: $agenda->getEventsBetween(
new DateTimeImmutable("$year-$month-$day 00:00:00"),
new DateTimeImmutable("$year-$month-$day 23:59:59"));
use DateTimeImmutable;
$limit = 0;
foreach($events as $event) {
?>
$events = ($day == -1)
? $agenda->getNextOfEach(new DateTimeImmutable())
: $agenda->getEventsBetween(
new DateTimeImmutable("{$year}-{$month}-{$day} 00:00:00"),
new DateTimeImmutable("{$year}-{$month}-{$day} 23:59:59")
);
$limit = 0;
foreach ($events as $event) {
?>
<article>
<h2>
<?php if (\pvv\side\Agenda::isToday($event->getStart())) { ?><strong><?php } ?>
<em><?= $event->getRelativeDate() ?></em>
<?php if (\pvv\side\Agenda::isToday($event->getStart())) { ?></strong><?php } ?>
<?php if (Agenda::isToday($event->getStart())) { ?><strong><?php } ?>
<em><?php echo $event->getRelativeDate(); ?></em>
<?php if (Agenda::isToday($event->getStart())) { ?></strong><?php } ?>
<?php if ($event->getURL()) { ?>
<a href="<?= $event->getURL() ?>"><?= $event->getName() ?></a>
<a href="<?php echo $event->getURL(); ?>"><?php echo $event->getName(); ?></a>
<?php } else { ?>
<?= $event->getName() ?>
<?php echo $event->getName(); ?>
<?php } ?>
<?php if ($event->getImageURL()) { ?>
<img src="<?= $event->getImageURL() ?>">
<img src="<?php echo $event->getImageURL(); ?>">
<?php } ?>
</h2>
<ul class="subtext">
<li>Tid: <strong><?= Agenda::getFormattedDate($event->getStart()) ?></strong></li>
<li>Sted: <strong><?= $event->getLocation() ?></strong></li>
<li>Arrangør: <strong><?= $event->getOrganiser() ?></strong></li>
<li>Tid: <strong><?php echo Agenda::getFormattedDate($event->getStart()); ?></strong></li>
<li>Sted: <strong><?php echo $event->getLocation(); ?></strong></li>
<li>Arrangør: <strong><?php echo $event->getOrganiser(); ?></strong></li>
</ul>
<?php $description = $event->getDescription(); ?>
<?php if ($limit) array_splice($description, $limit); ?>
<?php if ($limit) {
array_splice($description, $limit);
} ?>
<?php
$Parsedown = new \Parsedown();
echo $Parsedown->text(implode("\n", $description));
?>
$Parsedown = new \Parsedown();
echo $Parsedown->text(implode("\n", $description));
?>
</article>
<?php } ?>

@ -1,6 +1,7 @@
<?php
require_once dirname(dirname(__DIR__)) . implode(DIRECTORY_SEPARATOR, ['', 'inc', 'include.php']);
use \pvv\side\Agenda;
require_once dirname(__DIR__, 2) . implode(\DIRECTORY_SEPARATOR, ['', 'inc', 'include.php']);
use pvv\side\Agenda;
?>
<!DOCTYPE html>
<html lang="no">
@ -20,40 +21,40 @@ use \pvv\side\Agenda;
<main>
<?php
$activity = new \pvv\side\social\AnimekveldActivity;
$nextEvent = $activity->getNextEventFrom(new DateTimeImmutable);
$activity = new pvv\side\social\AnimekveldActivity();
$nextEvent = $activity->getNextEventFrom(new DateTimeImmutable());
?>
<article>
<h2><em><?= $nextEvent->getRelativeDate()?></em> Animekveld
<h2><em><?php echo $nextEvent->getRelativeDate(); ?></em> Animekveld
<?php if ($nextEvent->getImageURL()) { ?>
<img src="<?= $nextEvent->getImageURL() ?>">
<img src="<?php echo $nextEvent->getImageURL(); ?>">
<?php } ?>
</h2>
<ul class="subtext">
<li>Tid:
<strong>
<?= Agenda::getFormattedDate($nextEvent->getStart());?>
<?php echo Agenda::getFormattedDate($nextEvent->getStart()); ?>
</strong>
<li>Sted:
<strong>
<?= $nextEvent->getLocation();?>
<?php echo $nextEvent->getLocation(); ?>
</strong>
<li>Arrangør:
<strong>
<?= $nextEvent->getOrganiser();?>
<?php echo $nextEvent->getOrganiser(); ?>
</strong>
</ul>
<?php
$Parsedown = new \Parsedown();
echo $Parsedown->text(implode("\n", $nextEvent->getDescription()));
?>
$Parsedown = new Parsedown();
echo $Parsedown->text(implode("\n", $nextEvent->getDescription()));
?>
</article>
</main>
<nav>
<?= navbar(1, 'aktiviteter'); ?>
<?= loginbar($sp, $pdo); ?>
<?php echo navbar(1, 'aktiviteter'); ?>
<?php echo loginbar($sp, $pdo); ?>
</nav>

@ -1,6 +1,7 @@
<?php
require_once dirname(dirname(__DIR__)) . implode(DIRECTORY_SEPARATOR, ['', 'inc', 'include.php']);
use \pvv\side\Agenda;
require_once dirname(__DIR__, 2) . implode(\DIRECTORY_SEPARATOR, ['', 'inc', 'include.php']);
use pvv\side\Agenda;
?>
<!DOCTYPE html>
<html lang="no">
@ -20,41 +21,41 @@ use \pvv\side\Agenda;
<main>
<?php
$activity = new \pvv\side\social\BrettspillActivity;
$nextEvent = $activity->getNextEventFrom(new DateTimeImmutable);
$activity = new pvv\side\social\BrettspillActivity();
$nextEvent = $activity->getNextEventFrom(new DateTimeImmutable());
?>
<article>
<h2><em><?= $nextEvent->getRelativeDate()?></em> Brettspillkveld
<h2><em><?php echo $nextEvent->getRelativeDate(); ?></em> Brettspillkveld
<?php if ($nextEvent->getImageURL()) { ?>
<img src="<?= $nextEvent->getImageURL() ?>">
<img src="<?php echo $nextEvent->getImageURL(); ?>">
<?php } ?>
</h2>
<ul class="subtext">
<li>Tid:
<strong>
<?= Agenda::getFormattedDate($nextEvent->getStart());?>
<?php echo Agenda::getFormattedDate($nextEvent->getStart()); ?>
</strong>
<li>Sted:
<strong>
<?= $nextEvent->getLocation();?>
<?php echo $nextEvent->getLocation(); ?>
</strong>
<li>Arrangør:
<strong>
<?= $nextEvent->getOrganiser();?>
<?php echo $nextEvent->getOrganiser(); ?>
</strong>
</ul>
<?php
$Parsedown = new \Parsedown();
echo $Parsedown->text(implode("\n", $nextEvent->getDescription()));
?>
$Parsedown = new Parsedown();
echo $Parsedown->text(implode("\n", $nextEvent->getDescription()));
?>
</article>
</main>
<nav>
<?= navbar(1, 'aktiviteter'); ?>
<?= loginbar($sp, $pdo); ?>
<?php echo navbar(1, 'aktiviteter'); ?>
<?php echo loginbar($sp, $pdo); ?>
</nav>

@ -1,93 +1,95 @@
<?php
require_once dirname(dirname(__DIR__)) . implode(DIRECTORY_SEPARATOR, ['', 'inc', 'include.php']);
declare(strict_types=1);
require_once dirname(__DIR__, 2) . implode(\DIRECTORY_SEPARATOR, ['', 'inc', 'include.php']);
header('Content-Type: application/json');
$door = new \pvv\side\Door($pdo);
$door = new pvv\side\Door($pdo);
if($_SERVER['REQUEST_METHOD'] === 'POST') {
if (isset($_SERVER["HTTP_AUTHORIZATION"])) {
list($type, $data) = explode(" ", $_SERVER["HTTP_AUTHORIZATION"], 2);
if (strcasecmp($type, "Bearer") == 0) {
if (hash_equals($data, $DOOR_SECRET)) {
handleSetState();
} else {
echo '{"status": "error", "message": "Invalid authentication key"}';
die();
}
} else {
echo '{"status": "error", "message": "Invalid authentication method"}';
die();
}
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
if (isset($_SERVER['HTTP_AUTHORIZATION'])) {
[$type, $data] = explode(' ', $_SERVER['HTTP_AUTHORIZATION'], 2);
if (strcasecmp($type, 'Bearer') == 0) {
if (hash_equals($data, $DOOR_SECRET)) {
handleSetState();
} else {
echo '{"status": "error", "message": "Invalid authentication key"}';
exit;
}
} else {
echo '{"status": "error", "message": "Missing authentication"}';
die();
echo '{"status": "error", "message": "Invalid authentication method"}';
exit;
}
} else {
echo '{"status": "error", "message": "Missing authentication"}';
exit;
}
} elseif ($_SERVER['REQUEST_METHOD'] === 'GET') {
if (isset($_GET["period"])) {
$period = (string)htmlspecialchars($_GET["period"]);
if ($period == "day") {
$startTime = time() - (60*60*24);
} else if ($period == "week") {
$startTime = time() - (60*60*24*7);
} else {
echo '{"status": "error", "message": "Invalid period"}';
die();
}
if (isset($_GET['period'])) {
$period = (string) htmlspecialchars($_GET['period']);
$lines = $door->getEntriesAfter($startTime);
if (isset($_GET["edgeonly"]) && (bool)htmlspecialchars($_GET["edgeonly"])) {
//Ignore repeats
$lines = getChanges($lines);
}
echo json_encode([
'status' => "OK",
'entries' => $lines
]);
if ($period == 'day') {
$startTime = time() - (60 * 60 * 24);
} elseif ($period == 'week') {
$startTime = time() - (60 * 60 * 24 * 7);
} else {
//Only last entry
$line = (object)$door->getCurrent();
echo json_encode([
'status' => "OK",
'time' => $line->time,
'open' => $line->open
]);
echo '{"status": "error", "message": "Invalid period"}';
exit;
}
$lines = $door->getEntriesAfter($startTime);
if (isset($_GET['edgeonly']) && (bool) htmlspecialchars($_GET['edgeonly'])) {
// Ignore repeats
$lines = getChanges($lines);
}
echo json_encode([
'status' => 'OK',
'entries' => $lines,
]);
} else {
// Only last entry
$line = (object) $door->getCurrent();
echo json_encode([
'status' => 'OK',
'time' => $line->time,
'open' => $line->open,
]);
}
}
function handleSetState() {
global $door;
function handleSetState(): void {
global $door;
$jsonobj = file_get_contents('php://input');
$event = json_decode($jsonobj);
$jsonobj = file_get_contents('php://input');
$event = json_decode($jsonobj);
if ((!isset($event->time)) || (!is_numeric($event->time))) {
echo '{"status": "error", "message": "Invalid timestamp"}';
die();
}
if ((!isset($event->isDoorOpen)) || (!is_bool($event->isDoorOpen))) {
echo '{"status": "error", "message": "Invalid door state"}';
die();
}
if ((!isset($event->time)) || (!is_numeric($event->time))) {
echo '{"status": "error", "message": "Invalid timestamp"}';
exit;
}
if ((!isset($event->isDoorOpen)) || (!is_bool($event->isDoorOpen))) {
echo '{"status": "error", "message": "Invalid door state"}';
exit;
}
$door->createEvent((int)($event->time), $event->isDoorOpen ? 1 : 0);
echo '{"status": "OK"}';
}
$door->createEvent((int) $event->time, $event->isDoorOpen ? 1 : 0);
echo '{"status": "OK"}';
}
function getChanges($items) {
$prevState = 2;
$res = [];
$prevState = 2;
$res = [];
foreach($items as $item) {
if ($item["open"] !== $prevState) {
array_push($res, $item);
$prevState = $item["open"];
}
foreach ($items as $item) {
if ($item['open'] !== $prevState) {
$res[] = $item;
$prevState = $item['open'];
}
}
return $res;
return $res;
}

@ -1,6 +1,7 @@
<?php
require_once dirname(dirname(__DIR__)) . implode(DIRECTORY_SEPARATOR, ['', 'inc', 'include.php']);
use \pvv\side\Agenda;
require_once dirname(__DIR__, 2) . implode(\DIRECTORY_SEPARATOR, ['', 'inc', 'include.php']);
use pvv\side\Agenda;
?>
<!DOCTYPE html>
<html lang="no">
@ -20,40 +21,40 @@ use \pvv\side\Agenda;
<main>
<?php
$activity = new \pvv\side\social\DriftkveldActivity;
$nextEvent = $activity->getNextEventFrom(new DateTimeImmutable);
$activity = new pvv\side\social\DriftkveldActivity();
$nextEvent = $activity->getNextEventFrom(new DateTimeImmutable());
?>
<article>
<h2><em><?= $nextEvent->getRelativeDate()?></em> Driftkveld
<h2><em><?php echo $nextEvent->getRelativeDate(); ?></em> Driftkveld
<?php if ($nextEvent->getImageURL()) { ?>
<img src="<?= $nextEvent->getImageURL() ?>">
<img src="<?php echo $nextEvent->getImageURL(); ?>">
<?php } ?>
</h2>
<ul class="subtext">
<li>Tid:
<strong>
<?= Agenda::getFormattedDate($nextEvent->getStart());?>
<?php echo Agenda::getFormattedDate($nextEvent->getStart()); ?>
</strong>
<li>Sted:
<strong>
<?= $nextEvent->getLocation();?>
<?php echo $nextEvent->getLocation(); ?>
</strong>
<li>Arrangør:
<strong>
<?= $nextEvent->getOrganiser();?>
<?php echo $nextEvent->getOrganiser(); ?>
</strong>
</ul>
<?php
$Parsedown = new \Parsedown();
echo $Parsedown->text(implode("\n", $nextEvent->getDescription()));
?>
$Parsedown = new Parsedown();
echo $Parsedown->text(implode("\n", $nextEvent->getDescription()));
?>
</article>
</main>
<nav>
<?= navbar(1, 'aktiviteter'); ?>
<?= loginbar($sp, $pdo); ?>
<?php echo navbar(1, 'aktiviteter'); ?>
<?php echo loginbar($sp, $pdo); ?>
</nav>

@ -1,67 +1,68 @@
<?php
error_reporting(0);
require_once dirname(dirname(__DIR__)) . implode(DIRECTORY_SEPARATOR, ['', 'inc', 'include.php']);
require_once dirname(__DIR__, 2) . implode(\DIRECTORY_SEPARATOR, ['', 'inc', 'include.php']);
$pdo = new \PDO($DB_DSN, $DB_USER, $DB_PASS);
$pdo = new PDO($DB_DSN, $DB_USER, $DB_PASS);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$userManager = new \pvv\admin\UserManager($pdo);
$userManager = new pvv\admin\UserManager($pdo);
$as = new \SimpleSAML\Auth\Simple('default-sp');
$as = new SimpleSAML\Auth\Simple('default-sp');
$as->requireAuth();
$attrs = $as->getAttributes();
$loginname = $attrs['uid'][0];
if(!$loginname) {
header('Content-Type: text/plain', true, 403);
echo "Du må være logget inn for å se bildegalleriet.\r\n";
exit();
if (!$loginname) {
header('Content-Type: text/plain', true, 403);
echo "Du må være logget inn for å se bildegalleriet.\r\n";
exit;
}
# Sourced from config.php through include.php
// Sourced from config.php through include.php
$galleryDir = $GALLERY_DIR;
$serverPath = $GALLERY_SERVER_PATH;
$allowedExtensions = ['jpg', 'jpeg', 'png', 'gif', 'bmp', 'svg', 'webp'];
$unamefile = $galleryDir . "/usernames.txt";
$unamefile = $galleryDir . '/usernames.txt';
$unamepairs = file($unamefile);
function getDirContents($dir, &$results = array()) {
$files = scandir($dir);
foreach ($files as $key => $value) {
$path = realpath($dir . DIRECTORY_SEPARATOR . $value);
if (!is_dir($path)) {
//Remove the full path on disk, keep username and relative path to image.
$pos = strpos($path, $GLOBALS["galleryDir"]);
if ($pos !== false) {
$cleanPath = substr_replace($path, "", $pos, strlen($GLOBALS["galleryDir"]));
}
function getDirContents($dir, &$results = []) {
$files = scandir($dir);
foreach ($files as $key => $value) {
$path = realpath($dir . \DIRECTORY_SEPARATOR . $value);
if (!is_dir($path)) {
// Remove the full path on disk, keep username and relative path to image.
$pos = strpos($path, $GLOBALS['galleryDir']);
if ($pos !== false) {
$cleanPath = substr_replace($path, '', $pos, strlen($GLOBALS['galleryDir']));
}
//Check if the file is an image
$ext = strtolower(pathinfo($path, PATHINFO_EXTENSION));
if (in_array($ext, $GLOBALS["allowedExtensions"])) {
$results[] = $cleanPath;
}
} else if ($value != "." && $value != ".." && $value != ".thumbnails") {
//recursively scan directories
getDirContents($path, $results);
}
// Check if the file is an image
$ext = strtolower(pathinfo($path, \PATHINFO_EXTENSION));
if (in_array($ext, $GLOBALS['allowedExtensions'], true)) {
$results[] = $cleanPath;
}
} elseif ($value != '.' && $value != '..' && $value != '.thumbnails') {
// recursively scan directories
getDirContents($path, $results);
}
return $results;
}
return $results;
}
$images = getDirContents($galleryDir);
function cmpModifyTime($a, $b) {
global $galleryDir;
global $galleryDir;
$mtime_a = filemtime($galleryDir . $a);
$mtime_b = filemtime($galleryDir . $b);
$mtime_a = filemtime($galleryDir . $a);
$mtime_b = filemtime($galleryDir . $b);
return ($mtime_a > $mtime_b) ? -1 : 1;
return ($mtime_a > $mtime_b) ? -1 : 1;
}
usort($images, "cmpModifyTime");
usort($images, 'cmpModifyTime');
$imageTemplate = '
<div class="card">
@ -77,7 +78,7 @@ $imageTemplate = '
<p class="card-footer-item">%time</p>
</div>
</div>
'
';
?>
@ -101,34 +102,34 @@ $imageTemplate = '
<main class="gallery-container">
<?php
foreach ($images as $key => $value) {
$modTime = date("d.m.Y H:i", filemtime($galleryDir . $value));
$imguser = explode("/", $value)[1];
$displaypath = implode("/", array_slice(explode("/", $value), 2));
$realname = "Ukjent";
foreach ($unamepairs as $unamepair) {
$unamepair = explode(":", $unamepair);
if ($unamepair[0] == $imguser) {
$realname = $unamepair[1];
break;
}
$modTime = date('d.m.Y H:i', filemtime($galleryDir . $value));
$imguser = explode('/', $value)[1];
$displaypath = implode('/', array_slice(explode('/', $value), 2));
$realname = 'Ukjent';
foreach ($unamepairs as $unamepair) {
$unamepair = explode(':', $unamepair);
if ($unamepair[0] == $imguser) {
$realname = $unamepair[1];
break;
}
}
$vars = [
"%user" => htmlspecialchars($imguser),
"%time" => $modTime,
"%name" => htmlspecialchars($displaypath),
"%path" => $serverPath . $value,
"%thumbnail" => $serverPath . "/.thumbnails" . $value . ".png",
"%realname" => htmlspecialchars($realname)
];
echo strtr($imageTemplate, $vars);
$vars = [
'%user' => htmlspecialchars($imguser),
'%time' => $modTime,
'%name' => htmlspecialchars($displaypath),
'%path' => $serverPath . $value,
'%thumbnail' => $serverPath . '/.thumbnails' . $value . '.png',
'%realname' => htmlspecialchars($realname),
];
echo strtr($imageTemplate, $vars);
}
if (count($images) == 0) {
echo "<h3 class='no-images'>Det er dessverre ingen bilder å vise.</h3>";
}
?>
?>
</main>
<div id="modal" class="modal">
<span id="modal-close" class="modal-close">&#10006;</span>

@ -1,34 +1,36 @@
<?php
declare(strict_types=1);
require __DIR__ . '/../../config.php';
$searchDir = $SLIDESHOW_DIR;
$serverPath = $SLIDESHOW_SERVER_PATH;
$splashImg = "/PNG/PVV-logo-big-bluebg.png";
$splashImg = '/PNG/PVV-logo-big-bluebg.png';
// Note: This does not support nested directories
$filenames = sCaNdIr($searchDir);
$filenames = scandir($searchDir);
//Remove the expected non-images
foreach($filenames as $k => $value) {
if(in_array($value, [".", ".."])) {
unset($filenames[$k]);
}
// Remove the expected non-images
foreach ($filenames as $k => $value) {
if (in_array($value, ['.', '..'], true)) {
unset($filenames[$k]);
}
}
function getFullPath($fname) { return ($GLOBALS["serverPath"] . "/" . $fname ); }
function getFullPath($fname) {
return $GLOBALS['serverPath'] . '/' . $fname;
}
// Sort filenames alphabetically and prepend the path prefix to each item.
asort($filenames);
$slideshowimagefilenames = aRrAy_MaP("getFullPath", $filenames);
$slideshowimagefilenames = aRrAy_MaP('getFullPath', $filenames);
// Prepend the cover photo
ArRaY_uNsHiFt($slideshowimagefilenames, $splashImg);
eChO('<img class="slideshowimg slideshowactive" id="slideshowImage1" src="' . $slideshowimagefilenames[0] . '">');
ecHo('<img class="slideshowimg" id="slideshowImage2" src="' . $slideshowimagefilenames[1] . '">');
eChO '<img class="slideshowimg slideshowactive" id="slideshowImage1" src="' . $slideshowimagefilenames[0] . '">';
ecHo '<img class="slideshowimg" id="slideshowImage2" src="' . $slideshowimagefilenames[1] . '">';
// Store list of file names in a globel JS variable
EchO("<script> const slideshowFnames =" . jSoN_eNcOdE($slideshowimagefilenames) . "; </script>");
?>
EchO '<script> const slideshowFnames =' . jSoN_eNcOdE($slideshowimagefilenames) . '; </script>';

@ -1,5 +1,8 @@
<?php namespace pvv\side;
require_once dirname(dirname(__DIR__)) . implode(DIRECTORY_SEPARATOR, ['', 'inc', 'include.php']);
<?php
namespace pvv\side;
require_once \dirname(__DIR__, 2) . implode(\DIRECTORY_SEPARATOR, ['', 'inc', 'include.php']);
$translation = ['I dag', 'I morgen', 'Denne uka', 'Neste uke', 'Denne måneden', 'Neste måned'];
?>
@ -18,8 +21,8 @@ $translation = ['I dag', 'I morgen', 'Denne uka', 'Neste uke', 'Denne måneden',
<body>
<nav>
<?= navbar(1, 'hendelser'); ?>
<?= loginbar($sp, $pdo); ?>
<?php echo navbar(1, 'hendelser'); ?>
<?php echo loginbar($sp, $pdo); ?>
</nav>
<main>
<h1 style="pointer-events:none; text-align: left;">Hendelser</h1>
@ -27,43 +30,45 @@ $translation = ['I dag', 'I morgen', 'Denne uka', 'Neste uke', 'Denne måneden',
<a style="padding-left: 2em; padding-right: 2em;" class="btn" style="" href="../kalender/">Kalender</a>
</center>
<?php
$description_paragraphs = 2; //description length
foreach($agenda->getNextDays() as $period => $events) {
if ($events) { ?>
<h2 style="text-align: left;"><?= $translation[$period] ?></h2>
$description_paragraphs = 2; // description length
foreach ($agenda->getNextDays() as $period => $events) {
if ($events) { ?>
<h2 style="text-align: left;"><?php echo $translation[$period]; ?></h2>
<ul class="events">
<?php foreach($events as $event) {?>
<li style="border-color: <?= $event->getColor() ?>">
<?php foreach ($events as $event) {?>
<li style="border-color: <?php echo $event->getColor(); ?>">
<h4><strong>
<?php if ($event->getURL()) { ?>
<a href="<?= $event->getURL() ?>"><?= $event->getName() ?></a>
<a href="<?php echo $event->getURL(); ?>"><?php echo $event->getName(); ?></a>
<?php } else { ?>
<?= $event->getName() ?>
<?php echo $event->getName(); ?>
<?php } ?>
</strong></h4>
<?php $description = $event->getDescription(); ?>
<?php if ($description_paragraphs) array_splice($description, $description_paragraphs); ?>
<?php if ($description_paragraphs) {
array_splice($description, $description_paragraphs);
} ?>
<?php
$Parsedown = new \Parsedown();
echo $Parsedown->text(implode("\n", $description));
?>
$Parsedown = new \Parsedown();
echo $Parsedown->text(implode("\n", $description));
?>
<ul class="subtext">
<li>Tid: <strong><?= Agenda::getFormattedDate($event->getStart()) ?></strong></li>
<li>Sted: <strong><?= $event->getLocation() ?></strong></li>
<li>Arrangør: <strong><?= $event->getOrganiser() ?></strong></li>
<li>Tid: <strong><?php echo Agenda::getFormattedDate($event->getStart()); ?></strong></li>
<li>Sted: <strong><?php echo $event->getLocation(); ?></strong></li>
<li>Arrangør: <strong><?php echo $event->getOrganiser(); ?></strong></li>
</ul>
</li>
<?php } ?>
</ul>
<?php } ?>
<?php } ?>
<div style="text-align: center; margin-bottom: 2em;">
<a style="padding-left: 2em; padding-right: 2em;" class="btn" style="" href="../kalender/">Kalender</a>
</div>
</main>
</body>

@ -1,20 +1,20 @@
<?php
require_once dirname(dirname(__DIR__)) . implode(DIRECTORY_SEPARATOR, ['', 'inc', 'include.php']);
use \pvv\side\Agenda;
require_once dirname(__DIR__, 2) . implode(\DIRECTORY_SEPARATOR, ['', 'inc', 'include.php']);
use pvv\side\Agenda;
$eventID = 0;
if(isset($_GET['id'])){
$eventID = $_GET['id'];
}else{
echo 'No event ID provided';
exit();
if (isset($_GET['id'])) {
$eventID = $_GET['id'];
} else {
echo 'No event ID provided';
exit;
}
$dbActivity = new \pvv\side\DBActivity($pdo);
$dbActivity = new pvv\side\DBActivity($pdo);
$event = $dbActivity->getEventByID($eventID);
if(!$event){
echo 'Failed to retrieve event info';
exit();
if (!$event) {
echo 'Failed to retrieve event info';
exit;
}
?>
<!DOCTYPE html>
@ -34,23 +34,23 @@ if(!$event){
<main>
<article>
<h2>
<?php if (\pvv\side\Agenda::isToday($event->getStart())) { ?><strong><?php } ?>
<em><?= $event->getRelativeDate() ?></em>
<?php if (\pvv\side\Agenda::isToday($event->getStart())) { ?></strong><?php } ?>
<?= $event->getName() ?>
<?php if (Agenda::isToday($event->getStart())) { ?><strong><?php } ?>
<em><?php echo $event->getRelativeDate(); ?></em>
<?php if (Agenda::isToday($event->getStart())) { ?></strong><?php } ?>
<?php echo $event->getName(); ?>
</h2>
<ul class="subtext">
<li>Tid: <strong><?= Agenda::getFormattedDate($event->getStart()) ?></strong></li>
<li>Sted: <strong><?= $event->getLocation() ?></strong></li>
<li>Arrangør: <strong><?= $event->getOrganiser() ?></strong></li>
<li>Tid: <strong><?php echo Agenda::getFormattedDate($event->getStart()); ?></strong></li>
<li>Sted: <strong><?php echo $event->getLocation(); ?></strong></li>
<li>Arrangør: <strong><?php echo $event->getOrganiser(); ?></strong></li>
</ul>
<?php $description = $event->getDescription(); ?>
<?php
$Parsedown = new \Parsedown();
echo $Parsedown->text(implode("\n", $description));
?>
$Parsedown = new Parsedown();
echo $Parsedown->text(implode("\n", $description));
?>
</article>
</main>

@ -1,22 +1,25 @@
<?php
require_once dirname(__DIR__) . implode(DIRECTORY_SEPARATOR, ['', 'inc', 'include.php']);
require_once dirname(__DIR__) . implode(\DIRECTORY_SEPARATOR, ['', 'inc', 'include.php']);
$translation = ['I dag', 'I morgen', 'Denne uka', 'Neste uke', 'Denne måneden', 'Neste måned'];
$pdo = new \PDO($DB_DSN, $DB_USER, $DB_PASS);
$pdo = new PDO($DB_DSN, $DB_USER, $DB_PASS);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$motdfetcher = new \pvv\side\MOTD($pdo);
$motdfetcher = new pvv\side\MOTD($pdo);
$motd = $motdfetcher->getMOTD();
$door = new \pvv\side\Door($pdo);
$doorEntry = (object)($door->getCurrent());
if ($doorEntry->time < (time() - 60*30)) {
$doorStateText = "Ingen data fra dørsensor";
$door = new pvv\side\Door($pdo);
$doorEntry = (object) $door->getCurrent();
if ($doorEntry->time < (time() - 60 * 30)) {
$doorStateText = 'Ingen data fra dørsensor';
} else {
if ($doorEntry->open) { $doorStateText = "Døren er <b>åpen</b>";
} else { $doorStateText = "Døren er <b>ikke åpen</b>"; }
if ($doorEntry->open) {
$doorStateText = 'Døren er <b>åpen</b>';
} else {
$doorStateText = 'Døren er <b>ikke åpen</b>';
}
}
$doorTime = date("H:i", $doorEntry->time);
$doorTime = date('H:i', $doorEntry->time);
?>
<!DOCTYPE html>
<html lang="no">
@ -41,7 +44,7 @@ $doorTime = date("H:i", $doorEntry->time);
<header class="landing">
<div id="imageSlideshow">
<?php include("galleri/slideshow.php"); ?>
<?php include 'galleri/slideshow.php'; ?>
<script src="js/slideshow.js"></script>
</div>
<div class="info">
@ -52,9 +55,9 @@ $doorTime = date("H:i", $doorEntry->time);
<a class="btn" href="om/"><li>Om PVV</li></a>
<a class="btn focus" href="paamelding/"><li>Bli medlem!</li></a>
<a class="btn" href="https://use.mazemap.com/#config=ntnu&v=1&zlevel=2&center=10.406281,63.417093&zoom=19.5&campuses=ntnu&campusid=1&sharepoitype=poi&sharepoi=38159&utm_medium=longurl">Veibeskrivelse</li></a>
<div id="doorIndicator" class="<?php echo($doorEntry->open ? "doorIndicator_OPEN" : "doorIndicator_CLOSED"); ?>" onclick="location.href='/door/graph.html'">
<p class="doorStateText"><?php echo($doorStateText) ?></p>
<p class="doorStateTime">(Oppdatert <?php echo($doorTime) ?>)</p>
<div id="doorIndicator" class="<?php echo $doorEntry->open ? 'doorIndicator_OPEN' : 'doorIndicator_CLOSED'; ?>" onclick="location.href='/door/graph.html'">
<p class="doorStateText"><?php echo $doorStateText; ?></p>
<p class="doorStateTime">(Oppdatert <?php echo $doorTime; ?>)</p>
</div>
</ul>
</div>
@ -66,54 +69,60 @@ $doorTime = date("H:i", $doorEntry->time);
<div class="calendar-events">
<?php $counter1 = 0; ?>
<?php $counter2 = 0; ?>
<?php foreach($agenda->getNextDays() as $period => $events) if ($events && $counter1 < 3 && $counter2 < 10) { $counter1++ ?>
<p class="no-chin"><?= $translation[$period] ?></p>
<?php foreach ($agenda->getNextDays() as $period => $events) {
if ($events && $counter1 < 3 && $counter2 < 10) {
$counter1++; ?>
<p class="no-chin"><?php echo $translation[$period]; ?></p>
<hr>
<ul>
<?php foreach($events as $event) { $counter2++ ?>
<?php foreach ($events as $event) {
$counter2++; ?>
<li>
<?php if ($event->getURL()) { ?>
<a href="<?= htmlspecialchars($event->getURL()) ?>"><?= $event->getName(); ?></a>
<a href="<?php echo htmlspecialchars($event->getURL()); ?>"><?php echo $event->getName(); ?></a>
<?php } else { ?>
<strong><?= $event->getName(); ?></strong>
<strong><?php echo $event->getName(); ?></strong>
<?php } ?>
<span class="datetime">
<?php if ($period !== \pvv\side\Agenda::TODAY) {
echo $event->getStart()->format('H:i') . " " ;
if (\pvv\side\Agenda::isThisWeek($event->getStart()) || $event->getStart()->sub(new DateInterval('P3D'))->getTimestamp() < time()) {
echo $event->getStart()->format('D');
} else {
echo $event->getStart()->format('j. F');
}
<?php if ($period !== pvv\side\Agenda::TODAY) {
echo $event->getStart()->format('H:i') . ' ';
if (pvv\side\Agenda::isThisWeek($event->getStart()) || $event->getStart()->sub(new DateInterval('P3D'))->getTimestamp() < time()) {
echo $event->getStart()->format('D');
} else {
echo $event->getStart()->format('j. F');
}
} else {
echo $event->getStart()->format('H:i');
echo $event->getStart()->format('H:i');
}
?>
</span>
</li>
<?php } ?>
</ul>
<?php } ?>
<?php
}
}
?>
</div>
<p><a class="btn" href="hendelser/">Flere aktiviteter</a></p>
</div>
<div class="gridl">
<?php
$title = $motd["title"];
$title = $motd['title'];
echo "<h1>";
if($title == ""){
echo "Dagens melding";
}else{
echo $title;
}
echo "</h1>";
echo '<h1>';
if ($title == '') {
echo 'Dagens melding';
} else {
echo $title;
}
echo '</h1>';
$Parsedown = new Parsedown();
echo $Parsedown->text(implode("\n", $motd["content"]));
?>
$Parsedown = new Parsedown();
echo $Parsedown->text(implode("\n", $motd['content']));
?>
</div>
</main>
</body>

@ -1,17 +1,19 @@
<?php
require_once dirname(dirname(__DIR__)) . implode(DIRECTORY_SEPARATOR, ['', 'inc', 'include.php']);
require_once dirname(__DIR__, 2) . implode(\DIRECTORY_SEPARATOR, ['', 'inc', 'include.php']);
$year = (isset($_GET['year']))
? $_GET['year']
: date("Y");
? $_GET['year']
: date('Y');
$month = (isset($_GET['month']))
? $_GET['month']
: date("m");
$days_before_the_first = (new DateTime($year."-".$month."-01"))->format("w") - 1;
if ($days_before_the_first==-1) {$days_before_the_first = 6;}
$day_of_month = ($month == date("m"))
? date("j")
: -1;
? $_GET['month']
: date('m');
$days_before_the_first = (new DateTime($year . '-' . $month . '-01'))->format('w') - 1;
if ($days_before_the_first == -1) {
$days_before_the_first = 6;
}
$day_of_month = ($month == date('m'))
? date('j')
: -1;
$days_in_month = date('t', mktime(0, 0, 0, $month, 1, $year));
?><!DOCTYPE html>
@ -36,20 +38,27 @@ $days_in_month = date('t', mktime(0, 0, 0, $month, 1, $year));
</nav>
<main>
<h2 style="text-align:center;">PVV Kalender for <?=$months_translations[$month-1]?> <?=$year?></h2>
<div class="pagination_bar"><?php
$pmonth = $month-1;
$nmonth = $month+1;
$pyear=$year;
$nyear=$year;
if ($pmonth==0) {$pmonth=12; $pyear--;}
if ($nmonth==13) {$nmonth=1; $nyear++;}
?>
<a class="btn noselect" href="../kalender?year=<?=$pyear?>&amp;month=<?=$pmonth?>">Forrige måned</a>
<a class="btn noselect" href="../kalender?year=<?=$nyear?>&amp;month=<?=$nmonth?>">Neste måned</a>
<h2 style="text-align:center;">PVV Kalender for <?php echo $months_translations[$month - 1]; ?> <?php echo $year; ?></h2>
<div class="pagination_bar">
<?php
$pmonth = $month - 1;
$nmonth = $month + 1;
$pyear = $year;
$nyear = $year;
if ($pmonth == 0) {
$pmonth = 12;
--$pyear;
}
if ($nmonth == 13) {
$nmonth = 1;
++$nyear;
}
?>
<a class="btn noselect" href="../kalender?year=<?php echo $pyear; ?>&amp;month=<?php echo $pmonth; ?>">Forrige måned</a>
<a class="btn noselect" href="../kalender?year=<?php echo $nyear; ?>&amp;month=<?php echo $nmonth; ?>">Neste måned</a>
</div>
<figure class="calendar">
<ul>
<li class="header noselect">mandag
@ -59,32 +68,32 @@ $days_in_month = date('t', mktime(0, 0, 0, $month, 1, $year));
<li class="header noselect">fredag
<li class="header noselect">lørdag
<li class="header noselect">søndag
<?php if ($days_before_the_first != 0) { ?>
<li class="outOfMonth" style="grid-column: 1/<?=$days_before_the_first+1?>;">
<li class="outOfMonth" style="grid-column: 1/<?php echo $days_before_the_first + 1; ?>;">
<?php } ?>
<?php for ($day=1; $day <= $days_in_month; $day++) { ?>
<?php for ($day = 1; $day <= $days_in_month; ++$day) { ?>
<?php $events = $agenda->getEventsBetween(
new DateTimeImmutable("$year-$month-$day 00:00:00"),
new DateTimeImmutable("$year-$month-$day 23:59:59")); ?>
<?php if ($day==$day_of_month) { ?>
new DateTimeImmutable("{$year}-{$month}-{$day} 00:00:00"),
new DateTimeImmutable("{$year}-{$month}-{$day} 23:59:59")
); ?>
<?php if ($day == $day_of_month) { ?>
<li class="active">
<?php } else { ?>
<li>
<?php } ?>
<?php if (sizeof($events)!=0) { ?>
<a href="../aktiviteter/?<?="year=$year&amp;month=$month&amp;day=$day"?>"><div>
<span class="noselect day"><?= $day ?>.</span>
<?php foreach($events as $event) { ?>
<section style="background: <?=$event->getColor()?>"><?=$event->getName()?></section>
<?php if (count($events) != 0) { ?>
<a href="../aktiviteter/?<?php echo "year={$year}&amp;month={$month}&amp;day={$day}"; ?>"><div>
<span class="noselect day"><?php echo $day; ?>.</span>
<?php foreach ($events as $event) { ?>
<section style="background: <?php echo $event->getColor(); ?>"><?php echo $event->getName(); ?></section>
<?php } ?>
</div></a>
<?php } else { ?>
<span class="noselect day"><?= $day ?>.</span>
<span class="noselect day"><?php echo $day; ?>.</span>
<?php } ?>
<?php } ?>
</ul>
</figure>
</main>

@ -1,5 +1,5 @@
<?php
require_once dirname(dirname(__DIR__)) . implode(DIRECTORY_SEPARATOR, ['', 'inc', 'include.php']);
require_once dirname(__DIR__, 2) . implode(\DIRECTORY_SEPARATOR, ['', 'inc', 'include.php']);
?>
<!DOCTYPE html>
<html lang="no">
@ -44,7 +44,7 @@ require_once dirname(dirname(__DIR__)) . implode(DIRECTORY_SEPARATOR, ['', 'inc'
<p>Vi har en <a href="http://list.pvv.org/mailman/listinfo/aktive">e-postliste for aktive medlemmer</a>. All offisiell informasjon blir sendt denne listen, og alle arrengementer blir også annonsert her.</p>
<p>Vi har et <a target="_blank" href="https://matrix.to/#/#pvv:pvv.ntnu.no">Matrix Space™</a> for chat, memes, og all annen kommunikasjon. Den er bridget med IRC-kanalen og Discord-serveren vår. Hvis du er medlem kan du bruke vår egen instans av <a href="https://chat.pvv.ntnu.no">Element web</a>.</p>
<p>Vi har en IRC-kanal <a href="http://webchat.ircnet.net/">IRCnet</a> kalt #pvv.</p>
<p>Vi har en <a target="_blank" href="https://discord.gg/8VTBr6Q">Discord-server</a> for de som foretrekker Discord over Matrix. </p>

@ -1,6 +1,7 @@
<?php
require_once dirname(dirname(__DIR__)) . implode(DIRECTORY_SEPARATOR, ['', 'inc', 'include.php']);
use \pvv\side\Agenda;
require_once dirname(__DIR__, 2) . implode(\DIRECTORY_SEPARATOR, ['', 'inc', 'include.php']);
use pvv\side\Agenda;
?>
<!DOCTYPE html>
<html lang="no">
@ -34,40 +35,40 @@ use \pvv\side\Agenda;
<main>
<div id="outDatedBanner"><p><br>Denne siden er trolig utdatert! Hvis du er interessert, ta kontakt i discord-kanalen. <br> This page is probably outdated! If you're interested, check in with someone in our discord-channel. </p></div>
<?php
$activity = new \pvv\side\social\NerdepitsaActivity;
$nextEvent = $activity->getNextEventFrom(new DateTimeImmutable);
$activity = new pvv\side\social\NerdepitsaActivity();
$nextEvent = $activity->getNextEventFrom(new DateTimeImmutable());
?>
<article>
<h2><em><?= $nextEvent->getRelativeDate()?></em> Nerdepitsa
<h2><em><?php echo $nextEvent->getRelativeDate(); ?></em> Nerdepitsa
<?php if ($nextEvent->getImageURL()) { ?>
<img src="<?= $nextEvent->getImageURL() ?>">
<img src="<?php echo $nextEvent->getImageURL(); ?>">
<?php } ?>
</h2>
<ul class="subtext">
<li>Tid:
<strong>
<?= Agenda::getFormattedDate($nextEvent->getStart());?>
<?php echo Agenda::getFormattedDate($nextEvent->getStart()); ?>
</strong>
<li>Sted:
<strong>
<?= $nextEvent->getLocation();?>
<?php echo $nextEvent->getLocation(); ?>
</strong>
<li>Arrangør:
<strong>
<?= $nextEvent->getOrganiser();?>
<?php echo $nextEvent->getOrganiser(); ?>
</strong>
</ul>
<?php
$Parsedown = new Parsedown();
echo $Parsedown->text(implode("\n", $nextEvent->getDescription()));
?>
$Parsedown = new Parsedown();
echo $Parsedown->text(implode("\n", $nextEvent->getDescription()));
?>
</article>
</main>
<nav>
<?= navbar(1, 'aktiviteter'); ?>
<?= loginbar($sp, $pdo); ?>
<?php echo navbar(1, 'aktiviteter'); ?>
<?php echo loginbar($sp, $pdo); ?>
</nav>

@ -1,5 +1,5 @@
<?php
require_once dirname(dirname(__DIR__)) . implode(DIRECTORY_SEPARATOR, ['', 'inc', 'include.php']);
<?php
require_once dirname(__DIR__, 2) . implode(\DIRECTORY_SEPARATOR, ['', 'inc', 'include.php']);
?>
<!DOCTYPE html>
<html lang="no">
@ -34,7 +34,7 @@ p {hyphens: auto;}
width: 100%;
padding-top: 56.25%; /* 16:9 Aspect Ratio (divide 9 by 16 = 0.5625) */
}
/* Then style the iframe to fit in the container div with full height and width */
.responsive-iframe {
position: absolute;
@ -45,10 +45,10 @@ p {hyphens: auto;}
width: 100%;
height: 100%;
}
</style>
</style>
<div class="iframe-container" style="max-width: 100em;">
<iframe class="responsive-iframe" src="https://www.youtube.com/embed/Uy6HAvMdeuA" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen ></iframe>
</div>
</div>
</article>
<article>
@ -89,6 +89,6 @@ p {hyphens: auto;}
</main>
<nav>
<?= navbar(1); ?>
<?= loginbar($sp, $pdo); ?>
<?php echo navbar(1); ?>
<?php echo loginbar($sp, $pdo); ?>
</nav>

@ -1,5 +1,5 @@
<?php
require_once dirname(dirname(__DIR__)) . implode(DIRECTORY_SEPARATOR, ['', 'inc', 'include.php']);
require_once dirname(__DIR__, 2) . implode(\DIRECTORY_SEPARATOR, ['', 'inc', 'include.php']);
session_start();
@ -28,7 +28,7 @@ $attrs = $as->getAttributes();
<main>
<h2>Å bli medlem PVV</h2>
<p>
Første steg for å bli medlem i PVV er å betale
<a href="https://wiki.pvv.ntnu.no/wiki/Medlemskontingent">medlemskontingent</a> 50kr per år.
@ -44,9 +44,9 @@ $attrs = $as->getAttributes();
<p>
Mer informasjon om medlemskap finner du <a href="https://wiki.pvv.ntnu.no/wiki/Medlem">her</a>.
</p>
<h2>Registrer deg som bruker</h2>
<p>
PVV har for øyeblikket et manuelt system for å legge til nye brukere.
Se lenkene over for mer informasjon.
@ -56,10 +56,10 @@ $attrs = $as->getAttributes();
lokalene våre slik at vi kan satt ditt passord.
</p>
<iframe id="mazeMapper" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" src="https://use.mazemap.com/embed.html#v=1&zlevel=2&center=10.406194,63.417143&zoom=18&campusid=1&sharepoitype=poi&sharepoi=38159&utm_medium=iframe" style="border: 1px solid grey" allow="geolocation"></iframe><br/>
<?php if($attrs) { //logged in with pvv account?>
<?php if ($attrs) { // logged in with pvv account?>
<p>
Du er logget in som <i><?= htmlspecialchars($attrs['uid'][0]) ?></i>,
Du er logget in som <i><?php echo htmlspecialchars($attrs['uid'][0]); ?></i>,
og trenger klart ikke sende melding om å ny PVV bruker.
</p>
<?php } ?>

@ -1,50 +1,50 @@
<?php
date_default_timezone_set('Europe/Oslo');
setlocale(LC_ALL, 'nb_NO');
setlocale(\LC_ALL, 'nb_NO');
require __DIR__ . '/../../inc/navbar.php';
require __DIR__ . '/../../src/_autoload.php';
require __DIR__ . '/../../config.php';
require_once __DIR__ . '/../../vendor/simplesamlphp/simplesamlphp/lib/_autoload.php';
$as = new \SimpleSAML\Auth\Simple('default-sp');
$as = new SimpleSAML\Auth\Simple('default-sp');
$as->requireAuth();
$attrs = $as->getAttributes();
$pdo = new \PDO($DB_DSN, $DB_USER, $DB_PASS);
$pdo = new PDO($DB_DSN, $DB_USER, $DB_PASS);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$projectManager = new \pvv\side\ProjectManager($pdo);
$projectManager = new pvv\side\ProjectManager($pdo);
$new = 0;
if(isset($_GET['new'])){
$new = $_GET['new'];
if (isset($_GET['new'])) {
$new = $_GET['new'];
}
$projectID = 0;
if(isset($_GET['id'])){
$projectID = $_GET['id'];
}else if($new == 0){
echo "\nID not set";
exit();
if (isset($_GET['id'])) {
$projectID = $_GET['id'];
} elseif ($new == 0) {
echo "\nID not set";
exit;
}
$project = new \pvv\side\Project(
0,
'Nytt Prosjekt',
'',
$attrs["cn"][0],
$attrs["uid"][0],
$attrs["mail"][0],
1
$project = new pvv\side\Project(
0,
'Nytt Prosjekt',
'',
$attrs['cn'][0],
$attrs['uid'][0],
$attrs['mail'][0],
1
);
if($new == 0){
$project = $projectManager->getByID($projectID);
$owner = $projectManager->getProjectOwner($projectID);
if ($new == 0) {
$project = $projectManager->getByID($projectID);
$owner = $projectManager->getProjectOwner($projectID);
if($owner['uname'] != $attrs["uid"][0]){
header('HTTP/1.0 403 Forbidden');
echo "wrong user";
exit();
}
if ($owner['uname'] != $attrs['uid'][0]) {
header('HTTP/1.0 403 Forbidden');
echo 'wrong user';
exit;
}
}
?>
<!DOCTYPE html>
@ -74,20 +74,20 @@ if($new == 0){
<form action="update.php", method="post">
<p class="subtitle no-chin">Prosjektnavn</p>
<p class="subnote">Gi prosjektet ditt et passende navn</p>
<input class="wide" type="text" name="title" value="<?= $project->getName() ?>" class="boxinput"><br>
<input class="wide" type="text" name="title" value="<?php echo $project->getName(); ?>" class="boxinput"><br>
<p class="subtitle no-chin">Beskrivelse (<i style="opacity:0.5;">markdown</i>)</p>
<p class="subnote no-chin">Hva går prosjektet ditt ut ?</p>
<p class="subnote">De første to linjene blir vist prosjektkortet, prøv å gjøre de til et fint sammendrag eller intro!</p>
<textarea class="tall" name="desc" style="width:100%" rows="8" class="boxinput"><?= implode("\n", $project->getDescription()); ?></textarea>
<textarea class="tall" name="desc" style="width:100%" rows="8" class="boxinput"><?php echo implode("\n", $project->getDescription()); ?></textarea>
<?= '<input type="hidden" name="id" value="' . $project->getID() . '" />' ?>
<?php echo '<input type="hidden" name="id" value="' . $project->getID() . '" />'; ?>
<input type="hidden" name="active" value="1"/>
<div style="margin-top: 0.2em;">
<hr class="ruler">
<input type="submit" class="btn" value="<?= ($new ? 'Opprett prosjekt' : 'Lagre endringer') ?>"></input>
<?php if (!$new){?><input type="submit" class="btn" name="delete" value="Slett"></input><?php } ?>
<input type="submit" class="btn" value="<?php echo $new ? 'Opprett prosjekt' : 'Lagre endringer'; ?>"></input>
<?php if (!$new) {?><input type="submit" class="btn" name="delete" value="Slett"></input><?php } ?>
</div>
</form>
</main>

@ -1,8 +1,8 @@
<?php
require_once dirname(dirname(__DIR__)) . implode(DIRECTORY_SEPARATOR, ['', 'inc', 'include.php']);
require_once dirname(__DIR__, 2) . implode(\DIRECTORY_SEPARATOR, ['', 'inc', 'include.php']);
$translation = ['i dag', 'i morgen', 'denne uka', 'neste uke', 'denne måneden', 'neste måned'];
$projectManager = new \pvv\side\ProjectManager($pdo);
$projectManager = new pvv\side\ProjectManager($pdo);
$projects = $projectManager->getAll();
?>
<!DOCTYPE html>
@ -43,7 +43,7 @@ $projects = $projectManager->getAll();
<p>
Styret har ansvaret for den daglige driften av PVV, og har myndighet som gitt i PVVs lover.
Lederen for PVV velges om høsten og sitter i et år. Resten av styret velges for et halvår om
gangen, selv om praksis er at bare mindre justeringer gjøres i vårsemesteret.
gangen, selv om praksis er at bare mindre justeringer gjøres i vårsemesteret.
</p>
<p class="project-organizer">Organisert av Styreleder</p>
</div>
@ -52,7 +52,7 @@ $projects = $projectManager->getAll();
<div class="card-content">
<h4 class="project-title">Drift</h4>
<p>
Drift har ansvaret for å drive maskinene PVV.
Drift har ansvaret for å drive maskinene PVV.
Driftsgruppen har ingen strenge krav til aktivitet eller erfaring for å bli medlem,
selv om du er ny i virket går det fint an å bare observere og absorbere i begynnelsen.
Vi vil gjøre vårt beste for å gi god hjelp og service til våre brukere.
@ -60,13 +60,13 @@ $projects = $projectManager->getAll();
<p class="project-organizer">Organisert av Driftskordinator</p>
</div>
</div></a>
<?php /*Her kan vi legge til PR og TriKom hvis det er ønskelig*/ ?>
<?php /* Her kan vi legge til PR og TriKom hvis det er ønskelig */ ?>
</div>
<h2>Medlems-prosjekter</h2>
<?php
if(count($projects) == 0){
?>
if (count($projects) == 0) {
?>
<p>PVV har for øyeblikket ingen aktive prosjekter. Tenker du at noe bør gjøres? Har du en kul ide for noe PVV kan samarbeide om? Sett opp et prosjekt!</p>
<br>
<center>
@ -75,8 +75,8 @@ $projects = $projectManager->getAll();
</center>
<br>
<?php
}else{
?>
} else {
?>
<p>
Lyst til å gjøre noe kult? Her er et utvalg av de prosjektene som PVVere har holder med. Mangler det noe, eller brenner du for noe annet?<br>
Sett opp et eget prosjekt da vel!
@ -84,24 +84,24 @@ $projects = $projectManager->getAll();
<div class="projects-container">
<?php
$randProjects = array_rand($projects, min(6, count($projects)));
if (!is_array($randProjects)) {
$randProjects = [$randProjects];
};
foreach($randProjects as $i) {
$project = $projects[$i];
$owner = $projectManager->getProjectOwner($project->getID());
?>
$randProjects = array_rand($projects, min(6, count($projects)));
if (!is_array($randProjects)) {
$randProjects = [$randProjects];
}
foreach ($randProjects as $i) {
$project = $projects[$i];
$owner = $projectManager->getProjectOwner($project->getID());
?>
<a class="nostyle" href="info.php?id=<?= $project->getID() ?>"><div class="project-card">
<a class="nostyle" href="info.php?id=<?php echo $project->getID(); ?>"><div class="project-card">
<div class="card-content">
<h4 class="project-title"><?= $project->getName(); ?></h4>
<h4 class="project-title"><?php echo $project->getName(); ?></h4>
<?php
$Parsedown = new \Parsedown();
echo $Parsedown->text(implode("\n", array_slice($project->getDescription(), 0, 2)));
?>
$Parsedown = new Parsedown();
echo $Parsedown->text(implode("\n", array_slice($project->getDescription(), 0, 2)));
?>
</div>
<p class="project-organizer">Organisert av <?= $owner['name']; ?></p>
<p class="project-organizer">Organisert av <?php echo $owner['name']; ?></p>
</div></a>
<?php } ?>
</div>
@ -110,7 +110,7 @@ $projects = $projectManager->getAll();
<a class="btn" href="mine.php">Mine prosjekter</a>
</center>
<?php
}
?>
}
?>
</main>
</body>

@ -1,47 +1,46 @@
<?php
require_once dirname(dirname(__DIR__)) . implode(DIRECTORY_SEPARATOR, ['', 'inc', 'include.php']);
require_once dirname(__DIR__, 2) . implode(\DIRECTORY_SEPARATOR, ['', 'inc', 'include.php']);
$projectID = 0;
if(isset($_GET['id'])){
$projectID = $_GET['id'];
}else{
echo 'No project ID provided';
exit();
if (isset($_GET['id'])) {
$projectID = $_GET['id'];
} else {
echo 'No project ID provided';
exit;
}
require_once(__DIR__ . '/../../vendor/simplesamlphp/simplesamlphp/lib/_autoload.php');
$as = new \SimpleSAML\Auth\Simple('default-sp');
require_once __DIR__ . '/../../vendor/simplesamlphp/simplesamlphp/lib/_autoload.php';
$as = new SimpleSAML\Auth\Simple('default-sp');
$attrs = $as->getAttributes();
$projectManager = new \pvv\side\ProjectManager($pdo);
$projectManager = new pvv\side\ProjectManager($pdo);
$project = $projectManager->getByID($projectID);
if (!$project) {
echo ":^)";
exit();
echo ':^)';
exit;
}
$members = $projectManager->getProjectMembers($projectID);
$normal_members = $members;
foreach($normal_members as $i => $data){
if($data['lead']){
unset($normal_members[$i]);
}
foreach ($normal_members as $i => $data) {
if ($data['lead']) {
unset($normal_members[$i]);
}
}
$is_owner = False;
$is_member = False;
if ($attrs){
$uname = $attrs['uid'][0];
foreach($members as $member){
if ($member['uname'] == $uname){
if ($member['owner']==1){
$is_owner = True;
}
else if ($member['owner']==0){
$is_member = True;
}
}
}
$is_owner = false;
$is_member = false;
if ($attrs) {
$uname = $attrs['uid'][0];
foreach ($members as $member) {
if ($member['uname'] == $uname) {
if ($member['owner'] == 1) {
$is_owner = true;
} elseif ($member['owner'] == 0) {
$is_member = true;
}
}
}
}
?>
<!DOCTYPE html>
@ -66,11 +65,11 @@ if ($attrs){
<main class="contentsplit">
<div class="gridr">
<h2><?= $project->getName(); ?></h2>
<h2><?php echo $project->getName(); ?></h2>
<?php
$Parsedown = new \Parsedown();
echo $Parsedown->text(implode("\n", $project->getDescription()));
?>
$Parsedown = new Parsedown();
echo $Parsedown->text(implode("\n", $project->getDescription()));
?>
</div>
<div class="gridl">
@ -79,49 +78,49 @@ if ($attrs){
<div class="projectlead">
<h2>Prosjektledelsen</h2>
<div class="projectmember">
<?php foreach($members as $i => $data){
if($data['lead']){
?>
<p><?= $data['name']; ?></p>
<p class="memberrole"><?= $data['role'] ?></p>
<p class="memberuname"><?= $data['uname']; ?></p>
<p class="memberemail"><?= $data['mail']; ?></p>
<?php foreach ($members as $i => $data) {
if ($data['lead']) {
?>
<p><?php echo $data['name']; ?></p>
<p class="memberrole"><?php echo $data['role']; ?></p>
<p class="memberuname"><?php echo $data['uname']; ?></p>
<p class="memberemail"><?php echo $data['mail']; ?></p>
<?php }
} ?>
} ?>
</div>
</div>
<?php
if(sizeof($normal_members) > 0){
?>
if (count($normal_members) > 0) {
?>
<div class="projectmembers">
<h2>Medlemmer</h2>
<?php foreach($normal_members as $i => $data){
?>
<?php foreach ($normal_members as $i => $data) {
?>
<div class="projectmember" style="border-color: #6a0;">
<p><?= $data['name']; ?></p>
<p class="memberrole"><?= $data['role'] ? $data['role'] : 'Deltaker' ?></p>
<p class="memberuname"><?= $data['uname']; ?></p>
<p class="memberemail"><?= $data['mail']; ?></p>
<p><?php echo $data['name']; ?></p>
<p class="memberrole"><?php echo $data['role'] ?: 'Deltaker'; ?></p>
<p class="memberuname"><?php echo $data['uname']; ?></p>
<p class="memberemail"><?php echo $data['mail']; ?></p>
</div>
<?php } ?>
</div>
<?php
}
}
if(!$is_owner){
?>
if (!$is_owner) {
?>
<form action="update.php", method="post"><p>
<input type="hidden" name="title" value="derp"/>
<input type="hidden" name="desc" value="derp"/>
<input type="hidden" name="active" value="derp"/>
<input type="hidden" name="id" value="<?= $projectID ?>"/>
<input type="submit" class="btn" name="join_or_leave" value="<?= ($is_member ? 'Forlat' : 'Bli med!') ?>"></input>
<input type="hidden" name="id" value="<?php echo $projectID; ?>"/>
<input type="submit" class="btn" name="join_or_leave" value="<?php echo $is_member ? 'Forlat' : 'Bli med!'; ?>"></input>
</p></form>
<?php
}
?>
}
?>
</div>
</div>
</main>

@ -1,36 +1,34 @@
<?php
date_default_timezone_set('Europe/Oslo');
setlocale(LC_ALL, 'nb_NO');
setlocale(\LC_ALL, 'nb_NO');
require __DIR__ . '/../../inc/navbar.php';
require __DIR__ . '/../../src/_autoload.php';
require __DIR__ . '/../../config.php';
require_once(__DIR__ . '/../../vendor/simplesamlphp/simplesamlphp/lib/_autoload.php');
$as = new \SimpleSAML\Auth\Simple('default-sp');
require_once __DIR__ . '/../../vendor/simplesamlphp/simplesamlphp/lib/_autoload.php';
$as = new SimpleSAML\Auth\Simple('default-sp');
$as->requireAuth();
$attrs = $as->getAttributes();
$pdo = new \PDO($DB_DSN, $DB_USER, $DB_PASS);
$pdo = new PDO($DB_DSN, $DB_USER, $DB_PASS);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$projectManager = new \pvv\side\ProjectManager($pdo);
$projectManager = new pvv\side\ProjectManager($pdo);
$projects = $projectManager->getByOwner($attrs['uid'][0]);
$page = 1;
if(isset($_GET['page'])){
$page = $_GET['page'];
if (isset($_GET['page'])) {
$page = $_GET['page'];
}
$filter = '';
if(isset($_GET['filter'])){
$filter = $_GET['filter'];
if (isset($_GET['filter'])) {
$filter = $_GET['filter'];
}
// filter
$projects = array_values(array_filter(
$projects,
function($project) use ($filter){
return (preg_match('/.*'.$filter.'.*/i', $project->getName()) or preg_match('/.*'.$filter.'.*/i', implode(" ", $project->getDescription())));
}
$projects,
static fn($project) => (preg_match('/.*' . $filter . '.*/i', $project->getName()) || preg_match('/.*' . $filter . '.*/i', implode(' ', $project->getDescription())))
));
?>
<!DOCTYPE html>
@ -50,8 +48,8 @@ $projects = array_values(array_filter(
<body>
<nav>
<?= navbar(1, 'prosjekt'); ?>
<?= loginbar(); ?>
<?php echo navbar(1, 'prosjekt'); ?>
<?php echo loginbar(); ?>
</nav>
<main class="gridsplit">
@ -60,49 +58,49 @@ $projects = array_values(array_filter(
<ul class="event-list">
<?php
$counter = 0;
$pageLimit = 8;
$counter = 0;
$pageLimit = 8;
for($i = ($pageLimit * ($page - 1)); $i < count($projects); $i++){
if($counter == $pageLimit){
break;
}
for ($i = ($pageLimit * ($page - 1)); $i < count($projects); ++$i) {
if ($counter == $pageLimit) {
break;
}
$project = $projects[$i];
$projectID = $project->getID();
$project = $projects[$i];
$projectID = $project->getID();
$owner = $projectManager->getProjectOwner($projectID);
if($owner['uname'] != $attrs['uid'][0]){
continue;
}
?>
$owner = $projectManager->getProjectOwner($projectID);
if ($owner['uname'] != $attrs['uid'][0]) {
continue;
}
?>
<li>
<div class="event">
<div class="event-info">
<a href="edit.php?id=<?= $project->getID() ?>">
<h3 class="no-chin"><?= $project->getName()?></h3>
<a href="edit.php?id=<?php echo $project->getID(); ?>">
<h3 class="no-chin"><?php echo $project->getName(); ?></h3>
</a>
<p style="text-decoration: none;"><?= implode("<br>", array_slice($project->getDescription(), 0, 4)); ?></p>
<p style="text-decoration: none;"><?php echo implode('<br>', array_slice($project->getDescription(), 0, 4)); ?></p>
</div>
</div>
</li>
<?php
$counter++;
}
?>
++$counter;
}
?>
</ul>
<?php
if($page != 1){
echo '<a class="btn float-left" href="?page=' . ($page - 1) . '&filter=' . urlencode($filter) . '">Forrige side</a>';
}
if ($page != 1) {
echo '<a class="btn float-left" href="?page=' . ($page - 1) . '&filter=' . urlencode($filter) . '">Forrige side</a>';
}
if(($counter == $pageLimit) and (($pageLimit * $page) < count($projects))){
echo '<a class="btn float-right" href="?page=' . ($page + 1) . '&filter=' . urlencode($filter) . '">Neste side</a>';
}
?>
if (($counter == $pageLimit) && (($pageLimit * $page) < count($projects))) {
echo '<a class="btn float-right" href="?page=' . ($page + 1) . '&filter=' . urlencode($filter) . '">Neste side</a>';
}
?>
</div>
<div class="gridr">
@ -111,7 +109,7 @@ $projects = array_values(array_filter(
<h2>Filter</h2>
<form action="mine.php" method="get">
<p class="no-chin">Navn</p>
<?= '<input type="text" name="filter" class="boxinput" value="' . $filter . '">' ?><br>
<?php echo '<input type="text" name="filter" class="boxinput" value="' . $filter . '">'; ?><br>
<div style="margin-top: 2em;">
<input type="submit" class="btn" value="Filtrer"></input>

@ -1,18 +1,18 @@
<?php
date_default_timezone_set('Europe/Oslo');
setlocale(LC_ALL, 'nb_NO');
setlocale(\LC_ALL, 'nb_NO');
require __DIR__ . '/../../src/_autoload.php';
require __DIR__ . '/../../config.php';
$pdo = new \PDO($DB_DSN, $DB_USER, $DB_PASS);
$pdo = new PDO($DB_DSN, $DB_USER, $DB_PASS);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
if(!isset($_POST['title']) or !isset($_POST['desc']) or !isset($_POST['active'])){
header('Location: ' . $_SERVER['HTTP_REFERER']);
exit();
if (!isset($_POST['title']) || !isset($_POST['desc']) || !isset($_POST['active'])) {
header('Location: ' . $_SERVER['HTTP_REFERER']);
exit;
}
require_once(__DIR__ . '/../../vendor/simplesamlphp/simplesamlphp/lib/_autoload.php');
$as = new \SimpleSAML\Auth\Simple('default-sp');
require_once __DIR__ . '/../../vendor/simplesamlphp/simplesamlphp/lib/_autoload.php';
$as = new SimpleSAML\Auth\Simple('default-sp');
$as->requireAuth();
$attrs = $as->getAttributes();
@ -28,95 +28,93 @@ $name = $attrs['cn'][0];
$uname = $attrs['uid'][0];
$mail = $attrs['mail'][0];
$statement;
if($id == 0){
$query = 'INSERT INTO projects (name, description, active) VALUES (:title, :desc, 1)';
$statement = $pdo->prepare($query);
$statement->bindParam(':title', $title, PDO::PARAM_STR);
$statement->bindParam(':desc', $desc, PDO::PARAM_STR);
if ($id == 0) {
$query = 'INSERT INTO projects (name, description, active) VALUES (:title, :desc, 1)';
$statement = $pdo->prepare($query);
$statement->execute();
$new_id = $pdo->lastInsertId();
$statement->bindParam(':title', $title, PDO::PARAM_STR);
$statement->bindParam(':desc', $desc, PDO::PARAM_STR);
$ownerQuery = "INSERT INTO projectmembers (projectid, name, uname, mail, role, lead, owner) VALUES (:id, :owner, :owneruname, :owneremail, 'Prosjektleder', 1, 1)";
$statement = $pdo->prepare($ownerQuery);
$statement->bindParam(':id', $new_id, PDO::PARAM_STR);
$statement->bindParam(':owner', $name, PDO::PARAM_STR);
$statement->bindParam(':owneruname', $uname, PDO::PARAM_STR);
$statement->bindParam(':owneremail', $mail, PDO::PARAM_STR);
$statement->execute();
$new_id = $pdo->lastInsertId();
$statement->execute();
}
else {
$projectManager = new \pvv\side\ProjectManager($pdo);
$owner = $projectManager->getProjectOwner($id);
$members = $projectManager->getProjectMembers($id);
$ownerQuery = "INSERT INTO projectmembers (projectid, name, uname, mail, role, lead, owner) VALUES (:id, :owner, :owneruname, :owneremail, 'Prosjektleder', 1, 1)";
$statement = $pdo->prepare($ownerQuery);
$statement->bindParam(':id', $new_id, PDO::PARAM_STR);
$statement->bindParam(':owner', $name, PDO::PARAM_STR);
$statement->bindParam(':owneruname', $uname, PDO::PARAM_STR);
$statement->bindParam(':owneremail', $mail, PDO::PARAM_STR);
//if ($do_join_or_leave and $owner['uname'] != $uname) {
if ($do_join_or_leave) {
$is_member = False;
foreach($members as $member){
if ($member['uname'] == $uname and $member['owner']==0){
$is_member = True;
break;
}
}
if ($is_member){//leave
$query = "DELETE FROM projectmembers WHERE projectid=:id AND uname=:uname and lead=0 and owner=0;";
$statement = $pdo->prepare($query);
$statement->bindParam(':id', $id, PDO::PARAM_STR);
$statement->bindParam(':uname', $uname, PDO::PARAM_STR);
$statement->execute();
} else {
$projectManager = new pvv\side\ProjectManager($pdo);
$owner = $projectManager->getProjectOwner($id);
$members = $projectManager->getProjectMembers($id);
$statement->execute();
print("leave");
}
else{//join
$query = "INSERT INTO projectmembers (projectid, name, uname, mail, role, lead, owner) VALUES (:id, :name, :uname, :mail, 'Medlem', 0, 0)";
$statement = $pdo->prepare($query);
$statement->bindParam(':id', $id, PDO::PARAM_STR);
$statement->bindParam(':name', $name, PDO::PARAM_STR);
$statement->bindParam(':uname', $uname, PDO::PARAM_STR);
$statement->bindParam(':mail', $mail, PDO::PARAM_STR);
// if ($do_join_or_leave and $owner['uname'] != $uname) {
if ($do_join_or_leave) {
$is_member = false;
foreach ($members as $member) {
if ($member['uname'] == $uname && $member['owner'] == 0) {
$is_member = true;
break;
}
}
if ($is_member) {// leave
$query = 'DELETE FROM projectmembers WHERE projectid=:id AND uname=:uname and lead=0 and owner=0;';
$statement = $pdo->prepare($query);
$statement->bindParam(':id', $id, PDO::PARAM_STR);
$statement->bindParam(':uname', $uname, PDO::PARAM_STR);
$statement->execute();
print("join");
}
header('Location: ./info.php?id=' . $id);
exit();
}
$statement->execute();
echo 'leave';
} else {// join
$query = "INSERT INTO projectmembers (projectid, name, uname, mail, role, lead, owner) VALUES (:id, :name, :uname, :mail, 'Medlem', 0, 0)";
$statement = $pdo->prepare($query);
$statement->bindParam(':id', $id, PDO::PARAM_STR);
$statement->bindParam(':name', $name, PDO::PARAM_STR);
$statement->bindParam(':uname', $uname, PDO::PARAM_STR);
$statement->bindParam(':mail', $mail, PDO::PARAM_STR);
if($uname != $owner['uname']){
header('Content-Type: text/plain', true, 403);
echo "Illegal action, you're not the project owner for project with ID " . $id . "\r\n";
exit();
}
if ($do_delete) {
// this should be done as a transaction...
$pdo->beginTransaction();
$query = 'DELETE FROM projects WHERE id=:id';
$statement = $pdo->prepare($query);
$statement->bindParam(':id', $id, PDO::PARAM_INT);
$statement->execute();
$query = 'DELETE FROM projectmembers WHERE projectid=:id';
$statement = $pdo->prepare($query);
$statement->bindParam(':id', $id, PDO::PARAM_INT);
$statement->execute();
$pdo->commit();
}else{
$query = 'UPDATE projects SET name=:title, description=:desc WHERE id=:id';
$statement = $pdo->prepare($query);
$statement->execute();
echo 'join';
}
header('Location: ./info.php?id=' . $id);
exit;
}
$statement->bindParam(':title', $title, PDO::PARAM_STR);
$statement->bindParam(':desc', $desc, PDO::PARAM_STR);
$statement->bindParam(':id', $id, PDO::PARAM_INT);
$statement->execute();
}
if ($uname != $owner['uname']) {
header('Content-Type: text/plain', true, 403);
echo "Illegal action, you're not the project owner for project with ID " . $id . "\r\n";
exit;
}
if ($do_delete) {
// this should be done as a transaction...
$pdo->beginTransaction();
$query = 'DELETE FROM projects WHERE id=:id';
$statement = $pdo->prepare($query);
$statement->bindParam(':id', $id, PDO::PARAM_INT);
$statement->execute();
$query = 'DELETE FROM projectmembers WHERE projectid=:id';
$statement = $pdo->prepare($query);
$statement->bindParam(':id', $id, PDO::PARAM_INT);
$statement->execute();
$pdo->commit();
} else {
$query = 'UPDATE projects SET name=:title, description=:desc WHERE id=:id';
$statement = $pdo->prepare($query);
$statement->bindParam(':title', $title, PDO::PARAM_STR);
$statement->bindParam(':desc', $desc, PDO::PARAM_STR);
$statement->bindParam(':id', $id, PDO::PARAM_INT);
$statement->execute();
}
}
header('Location: ./mine.php');

@ -1,15 +1,15 @@
<?php
require_once dirname(__DIR__) . implode(DIRECTORY_SEPARATOR, ['', 'inc', 'include.php']);
require_once dirname(__DIR__) . implode(\DIRECTORY_SEPARATOR, ['', 'inc', 'include.php']);
header('Content-Type: application/json');
header('Access-Control-Allow-Origin: *');
$pdo = new \PDO($DB_DSN, $DB_USER, $DB_PASS);
$pdo = new PDO($DB_DSN, $DB_USER, $DB_PASS);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$door = new \pvv\side\Door($pdo);
$doorEntry = (object)($door->getCurrent());
$door = new pvv\side\Door($pdo);
$doorEntry = (object) $door->getCurrent();
?>
{
@ -35,9 +35,9 @@ $doorEntry = (object)($door->getCurrent());
},
"issue_report_channels": ["email"],
"state": {
"open": <?php echo($doorEntry->open ? "true" : "false"); ?>,
"lastchange": <?php echo($doorEntry->time ? $doorEntry->time : 0); ?>,
"message": "<?php echo($doorEntry->open ? "open for public, members are present" : "closed"); ?>"
"open": <?php echo $doorEntry->open ? 'true' : 'false'; ?>,
"lastchange": <?php echo $doorEntry->time ? $doorEntry->time : 0; ?>,
"message": "<?php echo $doorEntry->open ? 'open for public, members are present' : 'closed'; ?>"
},
"feeds": {
"wiki": {

@ -1,5 +1,8 @@
<?php namespace pvv\side;
require_once dirname(dirname(__DIR__)) . implode(DIRECTORY_SEPARATOR, ['', 'inc', 'include.php']);
<?php
namespace pvv\side;
require_once \dirname(__DIR__, 2) . implode(\DIRECTORY_SEPARATOR, ['', 'inc', 'include.php']);
?>
<!DOCTYPE html>
<html lang="no">
@ -16,8 +19,8 @@ require_once dirname(dirname(__DIR__)) . implode(DIRECTORY_SEPARATOR, ['', 'inc'
<body>
<nav>
<?= navbar(1, 'tjenester'); ?>
<?= loginbar($sp, $pdo); ?>
<?php echo navbar(1, 'tjenester'); ?>
<?php echo loginbar($sp, $pdo); ?>
</nav>
<main>
@ -189,7 +192,7 @@ require_once dirname(dirname(__DIR__)) . implode(DIRECTORY_SEPARATOR, ['', 'inc'
<img class="serviceImage" src="img/gallery.png" alt="RSS-Ikon">
</div>
<!-- Bokhylle /brzeczyszczykiewicz ? -->
<!-- Bokhylle /brzeczyszczykiewicz ? -->
</div>
</div>