consolidate all repos to one for archive
This commit is contained in:
71
semester_1/uvod_v_svetovni_splet/Vaja_6/Demo/fruits.php
Normal file
71
semester_1/uvod_v_svetovni_splet/Vaja_6/Demo/fruits.php
Normal file
@@ -0,0 +1,71 @@
|
||||
<?php
|
||||
session_start();
|
||||
|
||||
if(empty($_SESSION['username'])){
|
||||
header('Location: index.php');
|
||||
exit();
|
||||
}
|
||||
?>
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html lang="sl">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>Demo vaja 6 - PHP</title>
|
||||
|
||||
<!-- Bootstrap v5.1.3 CSS -->
|
||||
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-1BmE4kWBq78iYhFldvKuhfTAU6auU8tT94WrHftjDbrCEXSU1oBoqyl2QvZ6jIW3" crossorigin="anonymous">
|
||||
|
||||
<!-- jQuery v3.6.0 -->
|
||||
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
|
||||
|
||||
<script src="script.js"></script>
|
||||
<link rel="stylesheet" href="styles.css">
|
||||
</head>
|
||||
<body>
|
||||
<?php
|
||||
require('fruits_db.php');
|
||||
$isRequestedFruitInDB = FALSE;
|
||||
$requestedFruitProperties = NULL;
|
||||
|
||||
if(isset($_GET['fruit'])){
|
||||
|
||||
$requestedFruitName = $_GET['fruit'];
|
||||
foreach($fruits as $fruit){
|
||||
|
||||
$fruitProperties = get_object_vars($fruit);
|
||||
if($fruitProperties['name'] == $requestedFruitName){
|
||||
|
||||
$isRequestedFruitInDB = TRUE;
|
||||
$requestedFruitProperties = $fruitProperties;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if ($isRequestedFruitInDB == TRUE){
|
||||
require('header.php');
|
||||
|
||||
$card = "
|
||||
<div class='col-md-6 p-4'>
|
||||
<div class='card mx-auto' style='width: 16rem;'>
|
||||
<div class='card-body'>
|
||||
<h5 class = 'card-title'>{$requestedFruitProperties['name']}</h5>
|
||||
<p class='card-text'>{$requestedFruitProperties['description']}</p>
|
||||
<p>Za vec informacij obiscite <a href = '{$requestedFruitProperties['wiki_url']}'>povezavo</a>.</p>
|
||||
<br>
|
||||
<a href = 'index.php'>Nazaj na vsa sadja</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
";
|
||||
echo($card);
|
||||
}
|
||||
else{
|
||||
header('Location: index.php');
|
||||
exit();
|
||||
}
|
||||
?>
|
||||
</body>
|
||||
</html>
|
19
semester_1/uvod_v_svetovni_splet/Vaja_6/Demo/fruits_db.php
Normal file
19
semester_1/uvod_v_svetovni_splet/Vaja_6/Demo/fruits_db.php
Normal file
@@ -0,0 +1,19 @@
|
||||
<?php
|
||||
$fruits = array(
|
||||
(object)array(
|
||||
"name" => "Banane",
|
||||
"description" => "Zdrav tropski sadež odličnega okusa, ki ohranja zdravje vaših oči",
|
||||
"wiki_url" => "https://en.wikipedia.org/wiki/Banana"
|
||||
),
|
||||
(object)array(
|
||||
"name" => "Češnje",
|
||||
"description" => "Sladek sadež, ki se ga obira v mesecu maju in juniju",
|
||||
"wiki_url" => "https://en.wikipedia.org/wiki/Cherry"
|
||||
),
|
||||
(object)array(
|
||||
"name" => "Borovnice",
|
||||
"description" => "Slastni in zdravi sadeži iz gozda",
|
||||
"wiki_url" => "https://en.wikipedia.org/wiki/Blueberry"
|
||||
)
|
||||
);
|
||||
?>
|
26
semester_1/uvod_v_svetovni_splet/Vaja_6/Demo/header.php
Normal file
26
semester_1/uvod_v_svetovni_splet/Vaja_6/Demo/header.php
Normal file
@@ -0,0 +1,26 @@
|
||||
<?php
|
||||
session_start();
|
||||
?>
|
||||
|
||||
<nav class="navbar navbar-expand-md navbar-light bg-light">
|
||||
<div class="container-fluid">
|
||||
<a class="navbar-brand" href="#">Demo vaja 5 - jQuery in Bootstrap</a>
|
||||
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNavAltMarkup" aria-controls="navbarNavAltMarkup" aria-expanded="false" aria-label="Toggle navigation">
|
||||
<span class="navbar-toggler-icon"></span>
|
||||
</button>
|
||||
<div class="collapse navbar-collapse" id="navbarNavAltMarkup">
|
||||
<div class="navbar-nav">
|
||||
<a class="nav-item nav-link" href="#">Prodajalne sadja</a>
|
||||
<a class="nav-item nav-link disabled" href="#">Cene sadja</a>
|
||||
</div>
|
||||
|
||||
<?php
|
||||
if(isset($_SESSION['username'])){
|
||||
$username = $_SESSION['username'];
|
||||
echo "<div class ='navbar-nav'><a class = 'nav-item nav-link' href='logout.php'>Izpis - {$username}</a></div>";
|
||||
}
|
||||
?>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
BIN
semester_1/uvod_v_svetovni_splet/Vaja_6/Demo/images/ananas.jpg
Normal file
BIN
semester_1/uvod_v_svetovni_splet/Vaja_6/Demo/images/ananas.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 59 KiB |
BIN
semester_1/uvod_v_svetovni_splet/Vaja_6/Demo/images/hruška.jpg
Normal file
BIN
semester_1/uvod_v_svetovni_splet/Vaja_6/Demo/images/hruška.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 17 KiB |
BIN
semester_1/uvod_v_svetovni_splet/Vaja_6/Demo/images/jabolko.jpg
Normal file
BIN
semester_1/uvod_v_svetovni_splet/Vaja_6/Demo/images/jabolko.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 208 KiB |
Binary file not shown.
After Width: | Height: | Size: 66 KiB |
BIN
semester_1/uvod_v_svetovni_splet/Vaja_6/Demo/images/češnje.jpg
Normal file
BIN
semester_1/uvod_v_svetovni_splet/Vaja_6/Demo/images/češnje.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 42 KiB |
95
semester_1/uvod_v_svetovni_splet/Vaja_6/Demo/index.php
Normal file
95
semester_1/uvod_v_svetovni_splet/Vaja_6/Demo/index.php
Normal file
@@ -0,0 +1,95 @@
|
||||
<?php
|
||||
session_start();
|
||||
?>
|
||||
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html lang="sl">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>Demo vaja 6 - PHP</title>
|
||||
|
||||
<!-- Bootstrap v5.1.3 CSS -->
|
||||
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-1BmE4kWBq78iYhFldvKuhfTAU6auU8tT94WrHftjDbrCEXSU1oBoqyl2QvZ6jIW3" crossorigin="anonymous">
|
||||
|
||||
<!-- jQuery v3.6.0 -->
|
||||
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
|
||||
|
||||
<script src="script.js"></script>
|
||||
<link rel="stylesheet" href="styles.css">
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<?php
|
||||
require('fruits_db.php');
|
||||
require('header.php');
|
||||
?>
|
||||
|
||||
<div class="container-fluid">
|
||||
<div class="row">
|
||||
|
||||
<?php if(!empty($_SESSION['username'])) : ?>
|
||||
|
||||
<div class="col-md-6 p-4">
|
||||
<span class="lead">Dodaj sadje v seznam</span><br>
|
||||
<div class="input-group mb-3 mt-3">
|
||||
<input type="text" id="addFruitInput" class="form-control">
|
||||
<div class="input-group-append">
|
||||
<button class="btn btn-outline-secondary" type="button" id="addFruitButton" disabled>Dodaj</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<ol id="fruitList" class="list-group mb-4">
|
||||
<?php
|
||||
foreach($fruits as $fruit){
|
||||
|
||||
$fruitProperties = get_object_vars($fruit);
|
||||
$fruitName = $fruitProperties['name'];
|
||||
echo("<li class='list-group-item'>$fruitName<a style = 'float:right;' href='/fruits.php?fruit=$fruitName'>Vec informacij</a></li>");
|
||||
}
|
||||
?>
|
||||
</ol>
|
||||
|
||||
<button id="deleteFruitButton" class="btn btn-danger mb-2" disabled>Izbriši sadje</button>
|
||||
<div class="alert alert-light" role="alert" id="lastAddedFruitTimeSpan">Zadnji vnos ob ?</div>
|
||||
</div>
|
||||
<div class="col-md-6 p-4">
|
||||
<div class="card mx-auto" style="width: 16rem;">
|
||||
<img class="img-fluid" id="fruitImage">
|
||||
<div class="card-body">
|
||||
<p class="card-text">Izbrano sadje je prikazano na zgornji sliki</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<?php else : ?>
|
||||
<div class="col-md-6 p-4">
|
||||
<form action="/login.php" method="post">
|
||||
<div class="form-group">
|
||||
<div class="mb-3">
|
||||
<label for="username">Vpis uporabnika</label>
|
||||
</div>
|
||||
<div class="mb-3">
|
||||
<input type="text" class="form-control" id="username" name="username" placeholder="Uporabnisko ime">
|
||||
</div>
|
||||
</div>
|
||||
<button type="submit" class="btn btn-primary">Prijava</button>
|
||||
</form>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
</div>
|
||||
<footer class="footer">
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-6"></div>
|
||||
</div>
|
||||
<span>Avtor: Nikola Petrov</span>
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
<!-- Bootstrap v5.1.3 JS -->
|
||||
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/js/bootstrap.bundle.min.js" integrity="sha384-ka7Sk0Gln4gmtz2MlQnikT1wXgYsOg+OMhuP+IlRH9sENBO0LRn5q+8nbTov4+1p" crossorigin="anonymous"></script>
|
||||
</body>
|
||||
</html>
|
15
semester_1/uvod_v_svetovni_splet/Vaja_6/Demo/login.php
Normal file
15
semester_1/uvod_v_svetovni_splet/Vaja_6/Demo/login.php
Normal file
@@ -0,0 +1,15 @@
|
||||
<?php
|
||||
session_start();
|
||||
|
||||
if($_SERVER['REQUEST_METHOD'] == 'POST'){
|
||||
|
||||
if(!empty($_POST['username'])){
|
||||
|
||||
$username = $_POST['username'];
|
||||
$_SESSION['username'] = $username;
|
||||
}
|
||||
}
|
||||
|
||||
header('Location: index.php');
|
||||
exit();
|
||||
?>
|
9
semester_1/uvod_v_svetovni_splet/Vaja_6/Demo/logout.php
Normal file
9
semester_1/uvod_v_svetovni_splet/Vaja_6/Demo/logout.php
Normal file
@@ -0,0 +1,9 @@
|
||||
<?php
|
||||
session_start();
|
||||
|
||||
session_unset();
|
||||
session_destroy();
|
||||
|
||||
header('Location: index.php');
|
||||
exit();
|
||||
?>
|
86
semester_1/uvod_v_svetovni_splet/Vaja_6/Demo/script.js
Normal file
86
semester_1/uvod_v_svetovni_splet/Vaja_6/Demo/script.js
Normal file
@@ -0,0 +1,86 @@
|
||||
var addFruitButton;
|
||||
var addFruitInput;
|
||||
var fruitList;
|
||||
var deleteFruitButton;
|
||||
var lastAddedFruitTimeSpan;
|
||||
var fruitImage;
|
||||
|
||||
const fruitImagesPaths = {
|
||||
"ananas": "./images/ananas.jpg",
|
||||
"češnje": "./images/češnje.jpg",
|
||||
"hruška": "./images/hruška.jpg",
|
||||
"jabolko": "./images/jabolko.jpg"
|
||||
};
|
||||
const notFoundFruitImagePath = "./images/not_found.jpg";
|
||||
|
||||
$(document).ready(() => {
|
||||
|
||||
addFruitButton = $("#addFruitButton");
|
||||
addFruitInput = $("#addFruitInput");
|
||||
fruitList = $("#fruitList");
|
||||
deleteFruitButton = $("#deleteFruitButton");
|
||||
lastAddedFruitTimeSpan = $("#lastAddedFruitTimeSpan");
|
||||
fruitImage = $("#fruitImage");
|
||||
|
||||
addFruitInput.on("input", () => {
|
||||
const isTextPresentInInput = addFruitInput.val().length > 0;
|
||||
|
||||
if (isTextPresentInInput)
|
||||
{
|
||||
addFruitButton.prop("disabled", false);
|
||||
}
|
||||
else
|
||||
{
|
||||
addFruitButton.prop("disabled", true);
|
||||
}
|
||||
});
|
||||
|
||||
addFruitButton.click(() => {
|
||||
const addedFruit = addFruitInput.val();
|
||||
|
||||
fruitList.append("<li class='list-group-item'>" + addedFruit + "</li>");
|
||||
addFruitInput.val("");
|
||||
|
||||
addFruitButton.prop("disabled", true);
|
||||
|
||||
|
||||
fruitList.children().last().trigger("click");
|
||||
|
||||
|
||||
const currentDate = new Date();
|
||||
const options = {hour: "numeric", minute: "numeric", second: "numeric"};
|
||||
const currentDateString = new Intl.DateTimeFormat("de-AT", options).format(currentDate);
|
||||
lastAddedFruitTimeSpan.text("Zadnji vnos ob: " + currentDateString);
|
||||
});
|
||||
|
||||
$(document).on("click", "li", onClickFruit);
|
||||
|
||||
deleteFruitButton.click(() => {
|
||||
$("li.selectedFruit").first().remove();
|
||||
deleteFruitButton.prop("disabled", true);
|
||||
fruitImage.attr("src", "");
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
function onClickFruit()
|
||||
{
|
||||
const fruit = $(this).text().replace(/<a(.*)>(.*)<\/a>/g, "").replace('Več informacij',"").toLowerCase();
|
||||
|
||||
$(this).siblings().removeClass("selectedFruit");
|
||||
|
||||
$(this).addClass("selectedFruit");
|
||||
|
||||
if (fruit in fruitImagesPaths)
|
||||
{
|
||||
const fruitImagePath = fruitImagesPaths[fruit];
|
||||
fruitImage.attr("src", fruitImagePath);
|
||||
}
|
||||
else
|
||||
{
|
||||
fruitImage.attr("src", notFoundFruitImagePath);
|
||||
}
|
||||
|
||||
deleteFruitButton.prop("disabled", false);
|
||||
}
|
||||
|
28
semester_1/uvod_v_svetovni_splet/Vaja_6/Demo/styles.css
Normal file
28
semester_1/uvod_v_svetovni_splet/Vaja_6/Demo/styles.css
Normal file
@@ -0,0 +1,28 @@
|
||||
html {
|
||||
min-height: 100%;
|
||||
height: 100%;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
body
|
||||
{
|
||||
box-sizing: border-box;
|
||||
min-height: 100%;
|
||||
height: 100%;
|
||||
background-color: skyblue;
|
||||
}
|
||||
|
||||
.footer {
|
||||
position: absolute;
|
||||
bottom: 0;
|
||||
width: 100%;
|
||||
height: 60px;
|
||||
line-height: 60px;
|
||||
background-color: #f5f5f5;
|
||||
}
|
||||
|
||||
.selectedFruit
|
||||
{
|
||||
color: red;
|
||||
}
|
||||
|
Reference in New Issue
Block a user