|
|
|
@ -1,245 +1,457 @@
|
|
|
|
|
<?php |
|
|
|
|
|
|
|
|
|
require_once("shoppingListConfig.php"); |
|
|
|
|
|
|
|
|
|
class DBLink |
|
|
|
|
{ |
|
|
|
|
static $sqlLink = null; |
|
|
|
|
|
|
|
|
|
public static function getDbLink() |
|
|
|
|
{ |
|
|
|
|
if(DBLink::$sqlLink == null) |
|
|
|
|
{ |
|
|
|
|
DBLink::$sqlLink = new mysqli(Configuration::$mysqlserver, Configuration::$mysqluser, Configuration::$mysqlpw, Configuration::$mysqldb, Configuration::$mysqlPort); |
|
|
|
|
|
|
|
|
|
// Verbindung überprüfen |
|
|
|
|
if (mysqli_connect_errno()) |
|
|
|
|
{ |
|
|
|
|
printf("Database connection error:%s\n", mysqli_connect_error()); |
|
|
|
|
exit(); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
return DBLink::$sqlLink; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if(isset($_GET['command']) && $_GET['command'] == "printProductList" || $_GET['command'] == "printRhasspyProductList") |
|
|
|
|
{ |
|
|
|
|
displayProductList(); |
|
|
|
|
exit(0); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
echo "<html> |
|
|
|
|
<head> |
|
|
|
|
<title>Shopping list</title> |
|
|
|
|
<style type=\"text/css\"> |
|
|
|
|
table |
|
|
|
|
{ |
|
|
|
|
border-collapse:separate; |
|
|
|
|
border-spacing:10px 10px; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
.smallButton |
|
|
|
|
{ |
|
|
|
|
font-size:10px;; |
|
|
|
|
height:5000em; |
|
|
|
|
width:5000em; |
|
|
|
|
} |
|
|
|
|
</style> |
|
|
|
|
</head> |
|
|
|
|
<body>"; |
|
|
|
|
|
|
|
|
|
$command = $_POST['command']; |
|
|
|
|
|
|
|
|
|
if(isset($command)) |
|
|
|
|
{ |
|
|
|
|
switch($command) |
|
|
|
|
{ |
|
|
|
|
case "addToList": |
|
|
|
|
$productId = $_POST['productToAdd']; |
|
|
|
|
addToList($productId); |
|
|
|
|
break; |
|
|
|
|
case "removeFromList": |
|
|
|
|
$productId = $_POST['productToRemove']; |
|
|
|
|
removeFromList($productId); |
|
|
|
|
break; |
|
|
|
|
case "displayShoppingList": |
|
|
|
|
displayShoppingList(); |
|
|
|
|
break; |
|
|
|
|
case "createNewShoppingList": |
|
|
|
|
createNewShoppingList(); |
|
|
|
|
break; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
displayShoppingList(); |
|
|
|
|
|
|
|
|
|
echo "</body></html>"; |
|
|
|
|
|
|
|
|
|
mysqli_close(DBLink::getDbLink()); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
function addToList($productId) |
|
|
|
|
{ |
|
|
|
|
if($productId > 0) |
|
|
|
|
{ |
|
|
|
|
$SQL_command; |
|
|
|
|
|
|
|
|
|
if(oneListExists()) |
|
|
|
|
$SQL_command = "INSERT IGNORE INTO listEntries (listId, productId) VALUES ((SELECT id FROM `lists` ORDER BY creationTime DESC LIMIT 1), ".$productId.")"; |
|
|
|
|
else |
|
|
|
|
$SQL_command = "INSERT IGNORE INTO listEntries (listId, productId) VALUES ((INSERT INTO `lists` (creationTime) VALUES (".round(microtime(true) * 1000).") RETURN @id, ".$productId."))"; |
|
|
|
|
|
|
|
|
|
if (DBLink::getDbLink()->query($SQL_command)) |
|
|
|
|
echo "Product added to list.<br>"; |
|
|
|
|
else |
|
|
|
|
echo "Product could not be added to list.<br>"; |
|
|
|
|
} |
|
|
|
|
else |
|
|
|
|
echo "Select a product."; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
function removeFromList($productId) |
|
|
|
|
{ |
|
|
|
|
if($productId > 0) |
|
|
|
|
{ |
|
|
|
|
if(oneListExists()) |
|
|
|
|
{ |
|
|
|
|
$SQL_command = "DELETE FROM listEntries WHERE listId=(SELECT id FROM `lists` ORDER BY creationTime DESC LIMIT 1) AND productId=".$productId; |
|
|
|
|
|
|
|
|
|
if (DBLink::getDbLink()->query($SQL_command)) |
|
|
|
|
echo "Product removed from list.<br>"; |
|
|
|
|
else |
|
|
|
|
echo "Product could not be removed from list.<br>"; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
else |
|
|
|
|
echo "Select a product."; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
function oneListExists() |
|
|
|
|
{ |
|
|
|
|
$SQL_command = "SELECT COUNT(id) as listAmount FROM lists"; |
|
|
|
|
$mysqli_result = DBLink::getDbLink()->query($SQL_command); |
|
|
|
|
if ($row = mysqli_fetch_object($mysqli_result)) |
|
|
|
|
{ |
|
|
|
|
if($row->listAmount > 0) |
|
|
|
|
return true; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
return false; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
function displayShoppingList() |
|
|
|
|
{ |
|
|
|
|
echo " <form action=\"".$_SERVER['PHP_SELF']."\" method=\"POST\" onSubmit=\"if(!confirm('Are you sure you want to create a new list?')){return false;}\"> |
|
|
|
|
<input type=\"hidden\" id=\"command\" name=\"command\" value=\"createNewShoppingList\" /> |
|
|
|
|
<input type=\"submit\" value=\"Create new list\" /> |
|
|
|
|
</form>"; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
echo " <form action=\"".$_SERVER['PHP_SELF']."\" method=\"POST\"> |
|
|
|
|
<input type=\"hidden\" id=\"command\" name=\"command\" value=\"addToList\" /> |
|
|
|
|
<select name=\"productToAdd\" id=\"productToAdd\"> |
|
|
|
|
<option value=\"0\">Select product to add</option> |
|
|
|
|
"; |
|
|
|
|
|
|
|
|
|
$SQL_command = "SELECT id, name FROM `products` ORDER BY name ASC"; |
|
|
|
|
$mysqli_result = DBLink::getDbLink()->query($SQL_command); |
|
|
|
|
while ($row = mysqli_fetch_object($mysqli_result)) |
|
|
|
|
{ |
|
|
|
|
echo "<option value=\"".$row->id."\">".$row->name."</option>"; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
echo " </select> |
|
|
|
|
<input type=\"submit\" value=\"add\" /> |
|
|
|
|
</form>"; |
|
|
|
|
|
|
|
|
|
if(oneListExists()) |
|
|
|
|
{ |
|
|
|
|
$SQL_command = "SELECT * FROM lists ORDER BY creationTime DESC LIMIT 0,1"; |
|
|
|
|
|
|
|
|
|
$mysqli_result = DBLink::getDbLink()->query($SQL_command); |
|
|
|
|
|
|
|
|
|
if ($row = mysqli_fetch_object($mysqli_result)) |
|
|
|
|
{ |
|
|
|
|
echo "List created on ".date("l, d.m.Y", ($row->creationTime)/1000)." at ".date("G:i:s", ($row->creationTime)/1000)."<br />"; |
|
|
|
|
|
|
|
|
|
if(isset($row->comment) && strlen($row->comment) > 0) |
|
|
|
|
echo "<i>".$row->comment."</i><br />"; |
|
|
|
|
|
|
|
|
|
echo "<br />"; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
$SQL_command = "SELECT * FROM listEntries INNER JOIN products ON listEntries.productId=products.id INNER JOIN storeTypes ON products.storeTypeId = storeTypes.id WHERE listEntries.listId=(SELECT id FROM `lists` ORDER BY creationTime DESC LIMIT 1) ORDER BY storeTypes.name, products.name ASC"; |
|
|
|
|
|
|
|
|
|
$mysqli_result = DBLink::getDbLink()->query($SQL_command); |
|
|
|
|
|
|
|
|
|
$lastShop=""; |
|
|
|
|
|
|
|
|
|
while ($row = mysqli_fetch_array($mysqli_result)) |
|
|
|
|
{ |
|
|
|
|
if(isset($lastShop) && $lastShop != "" && $row[7] != $lastShop) |
|
|
|
|
echo "</table>"; |
|
|
|
|
|
|
|
|
|
if(!isset($lastShop) || $row[7] != $lastShop) |
|
|
|
|
{ |
|
|
|
|
$lastShop = $row[7]; |
|
|
|
|
echo $lastShop."<br>================"; |
|
|
|
|
echo "<table border=\"0\">"; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
echo "<tr> |
|
|
|
|
<td style=\"vertical-align:top;\">".$row[3]."</td> |
|
|
|
|
<td style=\"vertical-align:top;\"> |
|
|
|
|
<form action=\"".$_SERVER['PHP_SELF']."\" method=\"POST\"> |
|
|
|
|
<input type=\"hidden\" id=\"command\" name=\"command\" value=\"removeFromList\" /> |
|
|
|
|
<input type=\"hidden\" id=\"productToRemove\" name=\"productToRemove\" value=\"".$row[1]."\" /> |
|
|
|
|
<input class=\"smallButton\" type=\"submit\" value=\"remove\" /> |
|
|
|
|
</form> |
|
|
|
|
</td> |
|
|
|
|
</tr>"; |
|
|
|
|
} |
|
|
|
|
echo "</table>"; |
|
|
|
|
} |
|
|
|
|
else |
|
|
|
|
echo "No list exists, yet."; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
function displayProductList() |
|
|
|
|
{ |
|
|
|
|
$SQL_Befehl = "SELECT name, synonyms FROM products ORDER BY products.name ASC"; |
|
|
|
|
|
|
|
|
|
$mysqli_result = DBLink::getDbLink()->query($SQL_Befehl); |
|
|
|
|
|
|
|
|
|
$lastShop=""; |
|
|
|
|
|
|
|
|
|
while ($row = mysqli_fetch_array($mysqli_result)) |
|
|
|
|
{ |
|
|
|
|
if(is_null($row[1])) |
|
|
|
|
echo $row[0]."\n"; |
|
|
|
|
else |
|
|
|
|
echo "(".str_replace(";", "|", $row[1])."|".$row[0]."):".$row[0]."\n"; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
function createNewShoppingList() |
|
|
|
|
{ |
|
|
|
|
$date = new DateTime(); |
|
|
|
|
|
|
|
|
|
$SQL_command = "INSERT INTO lists (creationTime) VALUES (".($date->getTimestamp() * 1000).")"; |
|
|
|
|
|
|
|
|
|
if (DBLink::getDbLink()->query($SQL_command)) |
|
|
|
|
echo "New list has been created.<br>"; |
|
|
|
|
else |
|
|
|
|
echo "Error creating new list.<br>"; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
<?php |
|
|
|
|
|
|
|
|
|
require_once("shoppingListConfig.php"); |
|
|
|
|
|
|
|
|
|
$justCreatedProductId; |
|
|
|
|
|
|
|
|
|
class DBLink |
|
|
|
|
{ |
|
|
|
|
static $sqlLink = null; |
|
|
|
|
|
|
|
|
|
public static function getDbLink() |
|
|
|
|
{ |
|
|
|
|
if(DBLink::$sqlLink == null) |
|
|
|
|
{ |
|
|
|
|
DBLink::$sqlLink = new mysqli(Configuration::$mysqlserver, Configuration::$mysqluser, Configuration::$mysqlpw, Configuration::$mysqldb, Configuration::$mysqlPort); |
|
|
|
|
|
|
|
|
|
// Verbindung überprüfen |
|
|
|
|
if (mysqli_connect_errno()) |
|
|
|
|
{ |
|
|
|
|
printf("Database connection error:%s\n", mysqli_connect_error()); |
|
|
|
|
exit(); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
return DBLink::$sqlLink; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if(isset($_GET['command']) && $_GET['command'] == "printProductList" || $_GET['command'] == "printRhasspyProductList") |
|
|
|
|
{ |
|
|
|
|
displayProductList(); |
|
|
|
|
exit(0); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
?> |
|
|
|
|
|
|
|
|
|
<html> |
|
|
|
|
<head> |
|
|
|
|
<title>Shopping list</title> |
|
|
|
|
<style type="text/css"> |
|
|
|
|
body |
|
|
|
|
{ |
|
|
|
|
font-family: Arial, Geneva, Helvetica, sans-serif; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
table |
|
|
|
|
{ |
|
|
|
|
border-collapse:separate; |
|
|
|
|
border-spacing:10px 10px; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
.smallButton |
|
|
|
|
{ |
|
|
|
|
font-size:10px;; |
|
|
|
|
height:5000em; |
|
|
|
|
width:5000em; |
|
|
|
|
} |
|
|
|
|
</style> |
|
|
|
|
|
|
|
|
|
<script language="javascript" type="text/javascript"> |
|
|
|
|
|
|
|
|
|
function checkCreateProduct() |
|
|
|
|
{ |
|
|
|
|
var productToCreate = document.forms["createProductForm"]["productToCreateName"].value; |
|
|
|
|
if (productToCreate == "") |
|
|
|
|
{ |
|
|
|
|
alert("Product name must be filled out"); |
|
|
|
|
return false; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
var storeTypeId = document.forms["createProductForm"]["storeType"].value; |
|
|
|
|
if (storeTypeId == "" || storeTypeId == "0") |
|
|
|
|
{ |
|
|
|
|
alert("Store type must be selected"); |
|
|
|
|
return false; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
return true; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
</script> |
|
|
|
|
|
|
|
|
|
</head> |
|
|
|
|
|
|
|
|
|
<body> |
|
|
|
|
|
|
|
|
|
<?php |
|
|
|
|
|
|
|
|
|
$command = $_POST['command']; |
|
|
|
|
$listId; |
|
|
|
|
|
|
|
|
|
if(isset($command)) |
|
|
|
|
{ |
|
|
|
|
switch($command) |
|
|
|
|
{ |
|
|
|
|
case "addToList": |
|
|
|
|
$productId = $_POST['productToAdd']; |
|
|
|
|
addToList($productId); |
|
|
|
|
break; |
|
|
|
|
case "removeFromList": |
|
|
|
|
$productId = $_POST['productToRemove']; |
|
|
|
|
$listId = $_POST['listId']; |
|
|
|
|
removeFromList($productId, $listId); |
|
|
|
|
break; |
|
|
|
|
case "displayShoppingList": |
|
|
|
|
displayShoppingList(); |
|
|
|
|
break; |
|
|
|
|
case "createNewShoppingList": |
|
|
|
|
createNewShoppingList(); |
|
|
|
|
break; |
|
|
|
|
case "createProduct": |
|
|
|
|
$productNames = $_POST['productToCreateName']; |
|
|
|
|
$storeTypeId = $_POST['storeType']; |
|
|
|
|
$rc = createProduct($productNames, $storeTypeId); |
|
|
|
|
if($rc > 0) |
|
|
|
|
$justCreatedProductId = $rc; |
|
|
|
|
break; |
|
|
|
|
case "oldList": |
|
|
|
|
$listId = $_POST['oldListId']; |
|
|
|
|
$subCommand = $_POST['bSubmit']; |
|
|
|
|
if($subCommand == "remove") |
|
|
|
|
{ |
|
|
|
|
removeShoppingList($listId); |
|
|
|
|
$listId = null; |
|
|
|
|
} |
|
|
|
|
break; |
|
|
|
|
case "trainRhasspy": |
|
|
|
|
echo "Triggering training in Rhasspy has not been implemented, yet."; |
|
|
|
|
break; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
displayShoppingList($listId, $justCreatedProductId); |
|
|
|
|
|
|
|
|
|
showDataMaintenance(); |
|
|
|
|
|
|
|
|
|
echo "</body></html>"; |
|
|
|
|
|
|
|
|
|
mysqli_close(DBLink::getDbLink()); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
function addToList($productId) |
|
|
|
|
{ |
|
|
|
|
if($productId > 0) |
|
|
|
|
{ |
|
|
|
|
$SQL_command; |
|
|
|
|
|
|
|
|
|
if(oneListExists()) |
|
|
|
|
$SQL_command = "INSERT IGNORE INTO listEntries (listId, productId) VALUES ((SELECT id FROM `lists` ORDER BY creationTime DESC LIMIT 1), ".$productId.")"; |
|
|
|
|
else |
|
|
|
|
$SQL_command = "INSERT IGNORE INTO listEntries (listId, productId) VALUES ((INSERT INTO `lists` (creationTime) VALUES (".round(microtime(true) * 1000).") RETURN @id, ".$productId."))"; |
|
|
|
|
|
|
|
|
|
if (DBLink::getDbLink()->query($SQL_command)) |
|
|
|
|
echo "Product added to list.<br>"; |
|
|
|
|
else |
|
|
|
|
echo "Product could not be added to list.<br>"; |
|
|
|
|
} |
|
|
|
|
else |
|
|
|
|
echo "Select a product."; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
function removeFromList($productId, $listId) |
|
|
|
|
{ |
|
|
|
|
if($productId > 0) |
|
|
|
|
{ |
|
|
|
|
if(oneListExists()) |
|
|
|
|
{ |
|
|
|
|
$SQL_command = "DELETE FROM listEntries WHERE listId=".$listId." AND productId=".$productId; |
|
|
|
|
|
|
|
|
|
if (DBLink::getDbLink()->query($SQL_command)) |
|
|
|
|
echo "Product removed from list.<br>"; |
|
|
|
|
else |
|
|
|
|
echo "Product could not be removed from list.<br>"; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
else |
|
|
|
|
echo "Select a product."; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
function oneListExists() |
|
|
|
|
{ |
|
|
|
|
$SQL_command = "SELECT COUNT(id) as listAmount FROM lists"; |
|
|
|
|
$mysqli_result = DBLink::getDbLink()->query($SQL_command); |
|
|
|
|
if ($row = mysqli_fetch_object($mysqli_result)) |
|
|
|
|
{ |
|
|
|
|
if($row->listAmount > 0) |
|
|
|
|
return true; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
return false; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
function twoListsExist() |
|
|
|
|
{ |
|
|
|
|
$SQL_command = "SELECT COUNT(id) as listAmount FROM lists"; |
|
|
|
|
$mysqli_result = DBLink::getDbLink()->query($SQL_command); |
|
|
|
|
if ($row = mysqli_fetch_object($mysqli_result)) |
|
|
|
|
{ |
|
|
|
|
if($row->listAmount > 1) |
|
|
|
|
return true; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
return false; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
function displayShoppingList($listId, $justCreatedProductId) |
|
|
|
|
{ |
|
|
|
|
echo " <form action=\"".$_SERVER['PHP_SELF']."\" method=\"POST\"> |
|
|
|
|
<input type=\"hidden\" id=\"command\" name=\"command\" value=\"addToList\" /> |
|
|
|
|
<select name=\"productToAdd\" id=\"productToAdd\"> |
|
|
|
|
<option value=\"0\">Select product to add</option> |
|
|
|
|
"; |
|
|
|
|
|
|
|
|
|
$SQL_command = "SELECT id, name FROM `products` ORDER BY name ASC"; |
|
|
|
|
$mysqli_result = DBLink::getDbLink()->query($SQL_command); |
|
|
|
|
while ($row = mysqli_fetch_object($mysqli_result)) |
|
|
|
|
{ |
|
|
|
|
$currentId = (int)$row->id; |
|
|
|
|
|
|
|
|
|
if(isset($justCreatedProductId) && $justCreatedProductId === $currentId) |
|
|
|
|
echo "<option value=\"".$row->id."\" selected>".$row->name."</option>"; |
|
|
|
|
else |
|
|
|
|
echo "<option value=\"".$row->id."\">".$row->name."</option>"; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
echo " </select> |
|
|
|
|
<input type=\"submit\" value=\"add\" /> |
|
|
|
|
</form>"; |
|
|
|
|
|
|
|
|
|
if(oneListExists()) |
|
|
|
|
{ |
|
|
|
|
$list_SQL_command; |
|
|
|
|
|
|
|
|
|
if(isset($listId)) |
|
|
|
|
{ |
|
|
|
|
$list_SQL_command = "SELECT * FROM lists WHERE id=".$listId; |
|
|
|
|
} |
|
|
|
|
else |
|
|
|
|
{ |
|
|
|
|
$list_SQL_command = "SELECT * FROM lists ORDER BY creationTime DESC LIMIT 0,1"; |
|
|
|
|
|
|
|
|
|
$SQL_command_listId = "SELECT id FROM lists ORDER BY creationTime DESC LIMIT 0,1"; |
|
|
|
|
|
|
|
|
|
$mysqli_result = DBLink::getDbLink()->query($SQL_command_listId); |
|
|
|
|
if ($row = mysqli_fetch_object($mysqli_result)) |
|
|
|
|
$listId = $row->id; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
$mysqli_result = DBLink::getDbLink()->query($list_SQL_command); |
|
|
|
|
|
|
|
|
|
if ($row = mysqli_fetch_object($mysqli_result)) |
|
|
|
|
{ |
|
|
|
|
echo "List created on ".date("l, d.m.Y", ($row->creationTime)/1000)." at ".date("G:i:s", ($row->creationTime)/1000)."<br />"; |
|
|
|
|
|
|
|
|
|
if(isset($row->comment) && strlen($row->comment) > 0) |
|
|
|
|
echo "<i>".$row->comment."</i><br />"; |
|
|
|
|
|
|
|
|
|
echo "<br />"; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
$SQL_command = "SELECT * FROM listEntries INNER JOIN products ON listEntries.productId=products.id INNER JOIN storeTypes ON products.storeTypeId = storeTypes.id WHERE listEntries.listId=".$listId." ORDER BY storeTypes.name, products.name ASC"; |
|
|
|
|
|
|
|
|
|
$mysqli_result = DBLink::getDbLink()->query($SQL_command); |
|
|
|
|
|
|
|
|
|
$lastShop=""; |
|
|
|
|
|
|
|
|
|
while ($row = mysqli_fetch_array($mysqli_result)) |
|
|
|
|
{ |
|
|
|
|
if(isset($lastShop) && $lastShop != "" && $row[7] != $lastShop) |
|
|
|
|
echo "</table>"; |
|
|
|
|
|
|
|
|
|
if(!isset($lastShop) || $row[7] != $lastShop) |
|
|
|
|
{ |
|
|
|
|
$lastShop = $row[7]; |
|
|
|
|
echo $lastShop."<br>================"; |
|
|
|
|
echo "<table border=\"0\">"; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
echo "<tr> |
|
|
|
|
<td style=\"vertical-align:top;\">".$row[3]."</td> |
|
|
|
|
<td style=\"vertical-align:top;\"> |
|
|
|
|
<form action=\"".$_SERVER['PHP_SELF']."\" method=\"POST\"> |
|
|
|
|
<input type=\"hidden\" id=\"command\" name=\"command\" value=\"removeFromList\" /> |
|
|
|
|
<input type=\"hidden\" id=\"listId\" name=\"listId\" value=\"".$listId."\" /> |
|
|
|
|
<input type=\"hidden\" id=\"productToRemove\" name=\"productToRemove\" value=\"".$row[1]."\" /> |
|
|
|
|
<input class=\"smallButton\" type=\"submit\" value=\"remove\" /> |
|
|
|
|
</form> |
|
|
|
|
</td> |
|
|
|
|
</tr>"; |
|
|
|
|
} |
|
|
|
|
echo "</table>"; |
|
|
|
|
} |
|
|
|
|
else |
|
|
|
|
echo "No list exists, yet."; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
function showDataMaintenance() |
|
|
|
|
{ |
|
|
|
|
echo "<hr />"; |
|
|
|
|
|
|
|
|
|
echo " <h2>Data maintenance</h3> |
|
|
|
|
|
|
|
|
|
<h3>Create new list</h3> |
|
|
|
|
|
|
|
|
|
<form action=\"".$_SERVER['PHP_SELF']."\" method=\"POST\" onSubmit=\"if(!confirm('Are you sure you want to create a new list?')){return false;}\"> |
|
|
|
|
<input type=\"hidden\" id=\"command\" name=\"command\" value=\"createNewShoppingList\" /> |
|
|
|
|
<input type=\"submit\" value=\"Create new list\" /> |
|
|
|
|
</form> |
|
|
|
|
|
|
|
|
|
<h3>Create new product</h3> |
|
|
|
|
|
|
|
|
|
<form action=\"".$_SERVER['PHP_SELF']."\" method=\"POST\" onSubmit=\"return checkCreateProduct()\" id=\"createProductForm\"> |
|
|
|
|
<input type=\"hidden\" id=\"command\" name=\"command\" value=\"createProduct\" /> |
|
|
|
|
<input type=\"text\" id=\"productToCreateName\" name=\"productToCreateName\" /> |
|
|
|
|
|
|
|
|
|
<select name=\"storeType\" id=\"storeType\"> |
|
|
|
|
<option value=\"0\">Select store type</option> |
|
|
|
|
"; |
|
|
|
|
|
|
|
|
|
$SQL_command = "SELECT id, name FROM storeTypes ORDER BY name ASC"; |
|
|
|
|
$mysqli_result = DBLink::getDbLink()->query($SQL_command); |
|
|
|
|
while ($row = mysqli_fetch_object($mysqli_result)) |
|
|
|
|
{ |
|
|
|
|
echo "<option value=\"".$row->id."\">".$row->name."</option>"; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
echo " </select> |
|
|
|
|
|
|
|
|
|
<input type=\"submit\" value=\"Create new product\" /> |
|
|
|
|
</form> |
|
|
|
|
<font size=\"2\">You can enter synonyms. Separate all terms with semikolons.</font>"; |
|
|
|
|
|
|
|
|
|
if(twoListsExist()) |
|
|
|
|
{ |
|
|
|
|
$SQL_command = "SELECT * FROM lists ORDER BY creationTime DESC"; |
|
|
|
|
|
|
|
|
|
$mysqli_result = DBLink::getDbLink()->query($SQL_command); |
|
|
|
|
|
|
|
|
|
echo "<h3>Show specific list</h3>"; |
|
|
|
|
|
|
|
|
|
echo "<form action=\"".$_SERVER['PHP_SELF']."\" method=\"POST\" id=\"oldListForm\"> |
|
|
|
|
<input type=\"hidden\" id=\"command\" name=\"command\" value=\"oldList\" /> |
|
|
|
|
<select name=\"oldListId\" id=\"oldListId\">"; |
|
|
|
|
|
|
|
|
|
while ($row = mysqli_fetch_object($mysqli_result)) |
|
|
|
|
{ |
|
|
|
|
echo "<option value=\"".$row->id."\">List created on ".date("l, d.m.Y", ($row->creationTime)/1000)." at ".date("G:i:s", ($row->creationTime)/1000); |
|
|
|
|
|
|
|
|
|
if(isset($row->comment) && strlen($row->comment) > 0) |
|
|
|
|
echo "<i>(".$row->comment.")</i>"; |
|
|
|
|
|
|
|
|
|
echo "</option>"; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
echo " |
|
|
|
|
</select> |
|
|
|
|
<input type=\"submit\" name=\"bSubmit\" value=\"show\" /> |
|
|
|
|
<input type=\"submit\" name=\"bSubmit\" value=\"remove\" onClick=\"if(!confirm('Are you sure you want to delete that list?')){return false;}\"/> |
|
|
|
|
|
|
|
|
|
</form>"; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
echo " <h3>Train Rhasspy</h3> |
|
|
|
|
|
|
|
|
|
<form action=\"".$_SERVER['PHP_SELF']."\" method=\"POST\"> |
|
|
|
|
<input type=\"hidden\" id=\"command\" name=\"command\" value=\"trainRhasspy\" /> |
|
|
|
|
<input type=\"submit\" value=\"Train Rhasspy\" /> |
|
|
|
|
</form>"; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
function displayProductList() |
|
|
|
|
{ |
|
|
|
|
$SQL_Befehl = "SELECT name, synonyms FROM products ORDER BY products.name ASC"; |
|
|
|
|
|
|
|
|
|
$mysqli_result = DBLink::getDbLink()->query($SQL_Befehl); |
|
|
|
|
|
|
|
|
|
$lastShop=""; |
|
|
|
|
|
|
|
|
|
while ($row = mysqli_fetch_array($mysqli_result)) |
|
|
|
|
{ |
|
|
|
|
if(is_null($row[1])) |
|
|
|
|
echo $row[0]."\n"; |
|
|
|
|
else |
|
|
|
|
echo "(".str_replace(";", "|", $row[1])."|".$row[0]."):".$row[0]."\n"; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
function createNewShoppingList() |
|
|
|
|
{ |
|
|
|
|
$date = new DateTime(); |
|
|
|
|
|
|
|
|
|
$SQL_command = "INSERT INTO lists (creationTime) VALUES (".($date->getTimestamp() * 1000).")"; |
|
|
|
|
|
|
|
|
|
if (DBLink::getDbLink()->query($SQL_command)) |
|
|
|
|
echo "New list has been created.<br>"; |
|
|
|
|
else |
|
|
|
|
echo "Error creating new list.<br>"; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
function removeShoppingList($listId) |
|
|
|
|
{ |
|
|
|
|
$date = new DateTime(); |
|
|
|
|
|
|
|
|
|
$SQL_command = "DELETE FROM lists WHERE id=".$listId; |
|
|
|
|
|
|
|
|
|
if (DBLink::getDbLink()->query($SQL_command)) |
|
|
|
|
echo "List has been deleted.<br>"; |
|
|
|
|
else |
|
|
|
|
echo "Error deleting list.<br>"; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
function createProduct($productNames, $storeTypeId) |
|
|
|
|
{ |
|
|
|
|
$date = new DateTime(); |
|
|
|
|
|
|
|
|
|
$SQL_command; |
|
|
|
|
|
|
|
|
|
if(strpos($productNames, ";") !== false) |
|
|
|
|
{ |
|
|
|
|
$terms = explode(";", $productNames); |
|
|
|
|
$mainName = $terms[0]; |
|
|
|
|
|
|
|
|
|
$syns = ""; |
|
|
|
|
for($i=1; $i<count($terms); $i++) |
|
|
|
|
{ |
|
|
|
|
$currentWord = trim($terms[$i]); |
|
|
|
|
|
|
|
|
|
if(strlen($currentWord) > 0) |
|
|
|
|
$syns .= ";".$currentWord; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
$syns = ltrim($syns, ';'); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if(strlen($syns) > 0) |
|
|
|
|
$SQL_command = "INSERT INTO products (name, synonyms, storeTypeId) VALUES (\"".$mainName."\", \"".$syns."\",".$storeTypeId.")"; |
|
|
|
|
else |
|
|
|
|
$SQL_command = "INSERT INTO products (name, storeTypeId) VALUES (\"".$productNames."\", ".$storeTypeId.")"; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (DBLink::getDbLink()->query($SQL_command)) |
|
|
|
|
{ |
|
|
|
|
echo "New product has been created.<br>"; |
|
|
|
|
return DBLink::getDbLink()->insert_id; |
|
|
|
|
} |
|
|
|
|
else |
|
|
|
|
echo "Error creating new product.<br>"; |
|
|
|
|
|
|
|
|
|
return -1; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
?> |