My projects page
This commit is contained in:
		| @@ -49,4 +49,26 @@ class ProjectManager{ | |||||||
|  |  | ||||||
| 		return $project; | 		return $project; | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
|  | 	public function getByUName($uname){ | ||||||
|  | 		$query = 'SELECT * FROM projects WHERE owneruname=:uname'; | ||||||
|  | 		$statement = $this->pdo->prepare($query); | ||||||
|  | 		$statement->bindParam(':uname', $uname, PDO::PARAM_STR); | ||||||
|  | 		$statement->execute(); | ||||||
|  |  | ||||||
|  | 		$projects = []; | ||||||
|  | 		foreach($statement->fetchAll() as $dbProj){ | ||||||
|  | 			$project = new Project( | ||||||
|  | 				$dbProj['id'], | ||||||
|  | 				$dbProj['name'], | ||||||
|  | 				$dbProj['description'], | ||||||
|  | 				$dbProj['owner'], | ||||||
|  | 				$dbProj['owneruname'], | ||||||
|  | 				$dbProj['active'] | ||||||
|  | 			); | ||||||
|  | 			$projects[] = $project; | ||||||
|  | 		} | ||||||
|  |  | ||||||
|  | 		return $projects; | ||||||
|  | 	} | ||||||
| } | } | ||||||
| @@ -37,6 +37,15 @@ header.admin { | |||||||
| 	word-wrap: break-word; | 	word-wrap: break-word; | ||||||
| } | } | ||||||
|  |  | ||||||
|  | .event-info a { | ||||||
|  | 	color: black; | ||||||
|  | 	text-decoration: none; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | .event-info a:hover { | ||||||
|  | 	text-decoration: underline; | ||||||
|  | } | ||||||
|  |  | ||||||
| .event-actions { | .event-actions { | ||||||
| 	grid-column: 2; | 	grid-column: 2; | ||||||
| 	text-align: center; | 	text-align: center; | ||||||
|   | |||||||
| @@ -15,6 +15,19 @@ $pdo = new \PDO($dbDsn, $dbUser, $dbPass); | |||||||
| $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); | $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']; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | $projectID = 0; | ||||||
|  | if(isset($_GET['id'])){ | ||||||
|  | 	$projectID = $_GET['id']; | ||||||
|  | }else if($new == 0){ | ||||||
|  | 	echo "\nID not set"; | ||||||
|  | 	exit(); | ||||||
|  | } | ||||||
|  | 
 | ||||||
| $project = new \pvv\side\Project( | $project = new \pvv\side\Project( | ||||||
| 	0, | 	0, | ||||||
| 	'Nytt Prosjekt', | 	'Nytt Prosjekt', | ||||||
| @@ -23,6 +36,15 @@ $project = new \pvv\side\Project( | |||||||
| 	$attrs["uid"][0], | 	$attrs["uid"][0], | ||||||
| 	1 | 	1 | ||||||
| ); | ); | ||||||
|  | if($new == 0){ | ||||||
|  | 	$project = $projectManager->getByID($projectID); | ||||||
|  | 
 | ||||||
|  | 	if($project->getOwnerUName() != $attrs["uid"][0]){ | ||||||
|  | 		header('HTTP/1.0 403 Forbidden'); | ||||||
|  | 		echo "wrong user"; | ||||||
|  | 		exit(); | ||||||
|  | 	} | ||||||
|  | } | ||||||
| ?>
 | ?>
 | ||||||
| 
 | 
 | ||||||
| <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> | <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> | ||||||
| @@ -68,10 +90,12 @@ $project = new \pvv\side\Project( | |||||||
| 		<p class="subnote">Hva går prosjektet ditt ut på?</p> | 		<p class="subnote">Hva går prosjektet ditt ut på?</p> | ||||||
| 		<textarea name="desc" cols="40" rows="5" class="boxinput"><?= $project->getDescription() ?></textarea>
 | 		<textarea name="desc" cols="40" rows="5" class="boxinput"><?= $project->getDescription() ?></textarea>
 | ||||||
| 
 | 
 | ||||||
|  | 		<?= '<input type="hidden" name="id" value="' . $project->getID() . '" />' ?>
 | ||||||
|  | 
 | ||||||
| 		<div style="margin-top: 2em;"> | 		<div style="margin-top: 2em;"> | ||||||
| 			<hr class="ruler"> | 			<hr class="ruler"> | ||||||
| 
 | 
 | ||||||
| 			<input type="submit" class="btn" value="Opprett prosjekt"></a> | 			<?= '<input type="submit" class="btn" value="' . ($new ? 'Opprett prosjekt' : 'Lagre endringer') . '"></a>'; ?>
 | ||||||
| 		</div> | 		</div> | ||||||
| 	</form> | 	</form> | ||||||
| </article> | </article> | ||||||
| @@ -35,12 +35,14 @@ $projects = $projectManager->getAll(); | |||||||
| ?> | ?> | ||||||
| 	<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> | 	<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> | 	<br> | ||||||
| 	<a class="btn" href="ny.php">Lag prosjekt</a> | 	<a class="btn" href="edit.php?new=1">Lag prosjekt</a> | ||||||
|  | 	<a class="btn" href="mine.php">Mine prosjekter</a> | ||||||
| <?php | <?php | ||||||
| 	}else{ | 	}else{ | ||||||
| ?> | ?> | ||||||
| 	<p>Lyst til å gjøre noe kult? Her er et utvalg av de prosjektene som PVVere har laget. Mangler det noe, eller brenner du for noe annet? Sett opp et eget prosjekt!</p> | 	<p>Lyst til å gjøre noe kult? Her er et utvalg av de prosjektene som PVVere har laget. Mangler det noe, eller brenner du for noe annet? Sett opp et eget prosjekt!</p> | ||||||
| 	<a class="btn" href="ny.php">Lag prosjekt</a> | 	<a class="btn" href="edit.php?new=1">Lag prosjekt</a> | ||||||
|  | 	<a class="btn" href="mine.php">Mine prosjekter</a> | ||||||
|  |  | ||||||
| 	<ul class="calendar-events"> | 	<ul class="calendar-events"> | ||||||
| 		<?php | 		<?php | ||||||
|   | |||||||
							
								
								
									
										131
									
								
								www/prosjekt/mine.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										131
									
								
								www/prosjekt/mine.php
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,131 @@ | |||||||
|  | <?php | ||||||
|  | ini_set('display_errors', '1'); | ||||||
|  | date_default_timezone_set('Europe/Oslo'); | ||||||
|  | setlocale(LC_ALL, 'no_NO'); | ||||||
|  | error_reporting(E_ALL); | ||||||
|  | require __DIR__ . '/../../src/_autoload.php'; | ||||||
|  | require __DIR__ . '/../../sql_config.php'; | ||||||
|  | require_once(__DIR__ . '/../../vendor/simplesamlphp/simplesamlphp/lib/_autoload.php'); | ||||||
|  | $as = new SimpleSAML_Auth_Simple('default-sp'); | ||||||
|  | $as->requireAuth(); | ||||||
|  | $attrs = $as->getAttributes(); | ||||||
|  |  | ||||||
|  | $pdo = new \PDO($dbDsn, $dbUser, $dbPass); | ||||||
|  | $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); | ||||||
|  | $projectManager = new \pvv\side\ProjectManager($pdo); | ||||||
|  | $projects = $projectManager->getByUName($attrs['uid'][0]); | ||||||
|  |  | ||||||
|  | $page = 1; | ||||||
|  | if(isset($_GET['page'])){ | ||||||
|  | 	$page = $_GET['page']; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | $filterTitle = ''; | ||||||
|  | if(isset($_POST['title'])){ | ||||||
|  | 	$filterTitle = $_POST['title']; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | $filterOrganiser = ''; | ||||||
|  | if(isset($_POST['organiser'])){ | ||||||
|  | 	$filterOrganiser = $_POST['organiser']; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | // filter | ||||||
|  | $projects = array_values(array_filter( | ||||||
|  | 	$projects, | ||||||
|  | 	function($project) use ($filterTitle, $filterOrganiser){ | ||||||
|  | 		return (preg_match('/.*'.$filterTitle.'.*/i', $project->getName()) and preg_match('/.*'.$filterOrganiser.'.*/i', $project->getOwner())); | ||||||
|  | 	} | ||||||
|  | )); | ||||||
|  | ?> | ||||||
|  |  | ||||||
|  | <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> | ||||||
|  | <link rel="stylesheet" href="../css/normalize.css"> | ||||||
|  | <link rel="stylesheet" href="../css/style.css"> | ||||||
|  | <link rel="stylesheet" href="../css/events.css"> | ||||||
|  | <link rel="stylesheet" href="../css/admin.css"> | ||||||
|  |  | ||||||
|  | <nav> | ||||||
|  | 	<ul> | ||||||
|  | 	<li class="active"><a href="index.php">hjem</a></li> | ||||||
|  | 	<li><a href="aktiviteter/">aktiviteter</a></li> | ||||||
|  | 	<li><a href="../prosjekt/">prosjekter</a></li> | ||||||
|  | 	<li><a href="kontakt">kontakt</a></li> | ||||||
|  | 	<li><a href="pvv/">wiki</a></li> | ||||||
|  | 	</ul> | ||||||
|  |  | ||||||
|  | 	<?php | ||||||
|  | 		$attr = $as->getAttributes(); | ||||||
|  | 		if($attr){ | ||||||
|  | 			$uname = $attr["uid"][0]; | ||||||
|  | 			echo '<p class="login">logget inn som: ' . $uname . '</p>'; | ||||||
|  | 		}else{ | ||||||
|  | 			echo '<a class="login" href="' . $as->getLoginURL() . '">logg inn</a>'; | ||||||
|  | 		} | ||||||
|  | 	?> | ||||||
|  | </nav> | ||||||
|  |  | ||||||
|  | <header>Prosjekt­verkstedet</header> | ||||||
|  |  | ||||||
|  | <main> | ||||||
|  |  | ||||||
|  | <article class="gridsplit"> | ||||||
|  | 	<div class="gridl"> | ||||||
|  | 		<h2 class="no-chin">Mine Prosjekter</h2> | ||||||
|  |  | ||||||
|  | 		<ul class="event-list"> | ||||||
|  | 			<?php | ||||||
|  | 				$counter = 0; | ||||||
|  | 				$pageLimit = 4; | ||||||
|  |  | ||||||
|  | 				for($i = ($pageLimit * ($page - 1)); $i < count($projects); $i++){ | ||||||
|  | 					if($counter == $pageLimit){ | ||||||
|  | 						break; | ||||||
|  | 					} | ||||||
|  |  | ||||||
|  | 					$project = $projects[$i]; | ||||||
|  | 					$projectID = $project->getID(); | ||||||
|  | 			?> | ||||||
|  |  | ||||||
|  | 				<li> | ||||||
|  | 					<div class="event"> | ||||||
|  | 						<div class="event-info"> | ||||||
|  | 							<h3 class="no-chin"><?= '<a href="edit.php?id=' . $project->getID() . '">' . $project->getName() . '</a>'; ?></h3> | ||||||
|  | 							<p><?= $project->getDescription(); ?></p> | ||||||
|  | 						</div> | ||||||
|  | 					</div> | ||||||
|  | 				</li> | ||||||
|  |  | ||||||
|  | 			<?php | ||||||
|  | 					$counter++; | ||||||
|  | 				} | ||||||
|  | 			?> | ||||||
|  | 		</ul> | ||||||
|  |  | ||||||
|  | 		<?php | ||||||
|  | 			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>'; | ||||||
|  | 			} | ||||||
|  | 		?> | ||||||
|  | 	</div> | ||||||
|  |  | ||||||
|  | 	<div class="gridr"> | ||||||
|  | 		<h2>Verktøy</h2> | ||||||
|  | 		<a class="btn" href="edit.php?new=1">Lag prosjekt</a> | ||||||
|  | 		<h2>Filter</h2> | ||||||
|  | 		<form action="." method="post"> | ||||||
|  | 			<p class="no-chin">Navn</p> | ||||||
|  | 			<?= '<input type="text" name="title" class="boxinput" value="' . $filterTitle . '">' ?><br> | ||||||
|  |  | ||||||
|  | 			<div style="margin-top: 2em;"> | ||||||
|  | 				<input type="submit" class="btn" value="Filtrer"></input> | ||||||
|  | 			</div> | ||||||
|  | 		</form> | ||||||
|  | 	</div> | ||||||
|  | </article> | ||||||
|  |  | ||||||
|  | </main> | ||||||
| @@ -51,7 +51,7 @@ if($id == 0){ | |||||||
|  |  | ||||||
| $statement->execute(); | $statement->execute(); | ||||||
|  |  | ||||||
| header('Location: ..'); | header('Location: ./mine.php'); | ||||||
| ?> | ?> | ||||||
|  |  | ||||||
| <a href="..">Om du ikke ble omdirigert tilbake klikk her</a> | <a href="..">Om du ikke ble omdirigert tilbake klikk her</a> | ||||||
		Reference in New Issue
	
	Block a user