The formattening, part 2
This commit is contained in:
		| @@ -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­administrasjons­verk­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">✖</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¢er=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?>&month=<?=$pmonth?>">Forrige måned</a> | ||||
| 		<a class="btn noselect" href="../kalender?year=<?=$nyear?>&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; ?>&month=<?php echo $pmonth; ?>">Forrige måned</a> | ||||
| 		<a class="btn noselect" href="../kalender?year=<?php echo $nyear; ?>&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&month=$month&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}&month={$month}&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 på 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 på <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 på PVV</h2> | ||||
| 		 | ||||
|  | ||||
| 		<p> | ||||
| 			Første steg for å bli medlem i PVV er å betale | ||||
| 			<a href="https://wiki.pvv.ntnu.no/wiki/Medlemskontingent">medlemskontingent</a> på 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 få 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¢er=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 nå logget in som <i><?= htmlspecialchars($attrs['uid'][0]) ?></i>, | ||||
| 				Du er nå logget in som <i><?php echo htmlspecialchars($attrs['uid'][0]); ?></i>, | ||||
| 				og trenger klart ikke sende melding om å få 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> | ||||
| 			<p class="subnote">De første to linjene blir vist på 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 på PVV.  | ||||
| 						Drift har ansvaret for å drive maskinene på PVV. | ||||
| 						Driftsgruppen har ingen strenge krav til aktivitet eller erfaring for å bli medlem, | ||||
| 						så 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 på 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> | ||||
|   | ||||
		Reference in New Issue
	
	Block a user