Backup Commit
This commit is contained in:
@@ -0,0 +1,195 @@
|
||||
<head>
|
||||
<style>
|
||||
@font-face{
|
||||
font-family: rubik;
|
||||
src: url(https://mfgames.net/assets/Rubik-VariableFont_wght.ttf);
|
||||
}
|
||||
|
||||
* {
|
||||
font-family: rubik;
|
||||
}
|
||||
|
||||
input {
|
||||
color: white;
|
||||
background-color: #2e2e2e;
|
||||
border: none;
|
||||
font-size: 20px;
|
||||
margin: 3px;
|
||||
padding: 5px;
|
||||
border-radius: 5px;
|
||||
}
|
||||
|
||||
button {
|
||||
color: white;
|
||||
background-color: #3e3e3e;
|
||||
border: none;
|
||||
font-size: 20px;
|
||||
margin: 3px;
|
||||
padding: 5px 10px;
|
||||
border-radius: 10px;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
|
||||
<?php
|
||||
|
||||
/*$_POST["url"] = "https://polycrow.gumroad.com/l/airhocks";
|
||||
$_POST["species"] = "Rexouium Novabeast";
|
||||
$_POST["nsfw"] = 0;
|
||||
$_GET["section"] = 1;*/
|
||||
|
||||
$url = $_POST["url"];
|
||||
$species = $_POST["species"];
|
||||
$nsfw = $_POST["nsfw"];
|
||||
|
||||
$section = $_GET["section"];
|
||||
|
||||
$isExisting = false;
|
||||
|
||||
if (isset($_POST["url"]) && isset($_POST["species"]) && isset($_POST["nsfw"])) {
|
||||
|
||||
//if (true) {
|
||||
$servername = "localhost";
|
||||
$username = "database_access";
|
||||
$password = "DataAccess1.";
|
||||
$dbname = "avali_shop";
|
||||
|
||||
if (str_contains($url, '?')) {
|
||||
$url = substr($url, 0, strpos($url, "?"));
|
||||
}
|
||||
|
||||
$string = file_get_contents($url);
|
||||
|
||||
$dom = new DomDocument();
|
||||
$dom->loadHTML($string);
|
||||
$finder = new DomXPath($dom);
|
||||
|
||||
$content = $finder->query("//*[contains(concat(' ', normalize-space(@data-component-name), ' '), ' ProductPage ')]")[0]->textContent;
|
||||
$content = json_decode($content);
|
||||
$c = $content->product;
|
||||
|
||||
|
||||
$currency = "{
|
||||
\"usd\": \"$\",
|
||||
\"eur\": \"€\",
|
||||
\"crc\": \"₡\",
|
||||
\"gbp\": \"£\",
|
||||
\"ils\": \"₪\",
|
||||
\"inr\": \"₹\",
|
||||
\"jpy\": \"¥\",
|
||||
\"krw\": \"₩\",
|
||||
\"ngn\": \"₦\",
|
||||
\"php\": \"₱\",
|
||||
\"pln\": \"zł\",
|
||||
\"pyg\": \"₲\",
|
||||
\"thb\": \"฿\",
|
||||
\"uah\": \"₴\",
|
||||
\"vnd\": \"₫\",
|
||||
\"aud\": \"A\$\",
|
||||
\"cad\": \"CAD\$\"
|
||||
}";
|
||||
|
||||
$currency = json_decode($currency);
|
||||
$currencyOutput = $c->currency_code;
|
||||
|
||||
if ($c->thumbnail_url == null) {
|
||||
$thumbnailURL = $c->covers[0]->url;
|
||||
} else $thumbnailURL = $c->thumbnail_url;
|
||||
|
||||
$rating = $finder->query("//*[contains(concat(' ', normalize-space(@class), ' '), ' rating-average ')]")[0]->textContent;
|
||||
|
||||
if ($rating == null || $rating == "" || $rating == " ") $rating = "None";
|
||||
|
||||
$conn = new mysqli($servername, $username, $password, $dbname);
|
||||
|
||||
if ($conn->connect_error) {
|
||||
$failed = true;
|
||||
}
|
||||
|
||||
$c->name = str_replace("'","\'",str_replace("`","\`",str_replace('"','\"',$c->name)));
|
||||
$c->seller->name = str_replace("'","\'",str_replace("`","\`",str_replace('"','\"',$c->seller->name)));
|
||||
$species = str_replace("'","\'",str_replace("`","\`",str_replace('"','\"',$species)));
|
||||
|
||||
|
||||
$sql2 = "SELECT * FROM `content` WHERE
|
||||
name LIKE \"%" . $c->name . "%\" AND
|
||||
url_link LIKE \"%" . $url . "%\" AND
|
||||
url_image LIKE \"%" . $thumbnailURL . "%\" AND
|
||||
creator LIKE \"%" . $c->seller->name . "%\";";
|
||||
|
||||
$result2 = $conn->query($sql2);
|
||||
|
||||
if ($result2->num_rows > 0) {
|
||||
$isExisting = true;
|
||||
} else {
|
||||
$isExisting = false;
|
||||
}
|
||||
|
||||
$sql = "INSERT INTO content (
|
||||
`name`,
|
||||
`price`,
|
||||
`currency`,
|
||||
`url_link`,
|
||||
`url_image`,
|
||||
`creator`,
|
||||
`rating`,
|
||||
`species`,
|
||||
`nsfw`,
|
||||
`section`
|
||||
)
|
||||
VALUES (
|
||||
'" . $c->name . "',
|
||||
'" . $c->price_cents . "',
|
||||
'" . $currency->$currencyOutput . "',
|
||||
'" . $url . "',
|
||||
'" . $thumbnailURL . "',
|
||||
'" . $c->seller->name . "',
|
||||
'" . $rating . "',
|
||||
'" . $species . "',
|
||||
'" . $nsfw . "',
|
||||
" . $section . "
|
||||
)";
|
||||
if ($isExisting == false) {
|
||||
if ($conn->query($sql) === TRUE) {
|
||||
echo "<a style=\"color: green;\">Successful !</a>";
|
||||
} else {
|
||||
$errormsg = "<a style=\"color: red;\">Error: " . $sql . "<br>" . $conn->error . "</a>";
|
||||
$failed = true;
|
||||
}
|
||||
} else {
|
||||
echo "<a style=\"color: orange;\">Already Exists!</a>";
|
||||
}
|
||||
|
||||
|
||||
$conn->close();
|
||||
}
|
||||
|
||||
|
||||
?>
|
||||
<body style="background-color: #1e1e1e; color: white">
|
||||
<form action="AutoInsertData.php?section=<?php echo $section; ?>" method="post">
|
||||
<label for="url">URL:</label><br>
|
||||
<input type="text" id="url" name="url" style="width:100%"><br>
|
||||
<label for="species">Species:</label><br>
|
||||
<input type="text" id="species" name="species" style="width:100%"><br>
|
||||
<label for="nsfw">NSFW:</label><br>
|
||||
<input type="text" id="nsfw" name="nsfw" value="0" style="width:100%">
|
||||
<button type="submit">Submit</button>
|
||||
</form>
|
||||
<br>
|
||||
<br>
|
||||
<?php
|
||||
|
||||
echo "
|
||||
'" . $c->name . "', <br>
|
||||
'" . ($c->price_cents / 100) . "', <br>
|
||||
'" . $currency->$currencyOutput . "', <br>
|
||||
'" . $url . "', <br>
|
||||
'" . $thumbnailURL . "', <br>
|
||||
'" . $c->seller->name . "', <br>
|
||||
'" . $rating . "', <br>
|
||||
'" . $species . "',<br>
|
||||
'" . $nsfw . "'";
|
||||
|
||||
?>
|
||||
@@ -0,0 +1,27 @@
|
||||
<?php
|
||||
|
||||
$url = "https://myriadd.gumroad.com";
|
||||
|
||||
if (str_contains($url, '?')) {
|
||||
$url = substr($url, 0, strpos($url, "?"));
|
||||
}
|
||||
|
||||
$string = file_get_contents($url);
|
||||
|
||||
$dom = new DomDocument();
|
||||
$dom->loadHTML($string);
|
||||
$finder = new DomXPath($dom);
|
||||
|
||||
$content = $finder->query("//*[contains(concat(' ', normalize-space(@class), ' '), ' stretched-link ')]");
|
||||
|
||||
foreach($content as $node) {
|
||||
$tmp = $node->attributes[0]->value;
|
||||
if (str_contains($tmp, '?')) {
|
||||
$tmp = substr($tmp, 0, strpos($tmp, "?"));
|
||||
}
|
||||
|
||||
print_r($tmp);
|
||||
echo "<br>";
|
||||
}
|
||||
|
||||
?>
|
||||
@@ -0,0 +1,181 @@
|
||||
<!--head>
|
||||
<style>
|
||||
@font-face{
|
||||
font-family: rubik;
|
||||
src: url(https://mfgames.net/assets/Rubik-VariableFont_wght.ttf);
|
||||
}
|
||||
|
||||
* {
|
||||
font-family: rubik;
|
||||
}
|
||||
|
||||
input {
|
||||
color: white;
|
||||
background-color: #2e2e2e;
|
||||
border: none;
|
||||
font-size: 20px;
|
||||
margin: 3px;
|
||||
padding: 5px;
|
||||
border-radius: 5px;
|
||||
}
|
||||
|
||||
button {
|
||||
color: white;
|
||||
background-color: #3e3e3e;
|
||||
border: none;
|
||||
font-size: 20px;
|
||||
margin: 3px;
|
||||
padding: 5px 10px;
|
||||
border-radius: 10px;
|
||||
}
|
||||
</style>
|
||||
</head-->
|
||||
|
||||
|
||||
<?php
|
||||
|
||||
$multilineString = "https://nuciboli.gumroad.com/l/bee-hold?layout=discover&recommended_by=search
|
||||
https://rickyop.gumroad.com/l/fowfoj?layout=discover&recommended_by=search
|
||||
https://rickyop.gumroad.com/l/olawcq?layout=discover&recommended_by=search
|
||||
https://mainmuse.gumroad.com/l/TigerUndies?layout=discover&recommended_by=search
|
||||
https://feyote.gumroad.com/l/TigerBeeLegWarmers?layout=discover&recommended_by=search
|
||||
https://kuraikaiju.gumroad.com/l/JexWings?layout=discover&recommended_by=search
|
||||
https://kiragontex.gumroad.com/l/hpvrrb?layout=discover&recommended_by=search
|
||||
https://mainmuse.gumroad.com/l/TigerDress?layout=discover&recommended_by=search
|
||||
https://n5xk.gumroad.com/l/aakbf?layout=discover&recommended_by=search
|
||||
https://novaicnight.gumroad.com/l/SimpleOutfitTB?layout=discover&recommended_by=search
|
||||
https://rickyop.gumroad.com/l/kgqfxb?layout=discover&recommended_by=search
|
||||
https://rickyop.gumroad.com/l/lclhh?layout=discover&recommended_by=search
|
||||
https://rickyop.gumroad.com/l/szcnn?layout=discover&recommended_by=search
|
||||
https://feyote.gumroad.com/l/TigerBeeOnesie?layout=discover&recommended_by=search
|
||||
https://adjerry91.gumroad.com/l/TigerBeeFaceTracking?layout=discover&recommended_by=search
|
||||
https://blizzball.gumroad.com/l/tigerbeehoodie?layout=discover&recommended_by=search
|
||||
https://rickyop.gumroad.com/l/cpwds?layout=discover&recommended_by=search
|
||||
https://rickyop.gumroad.com/l/pybaf?layout=discover&recommended_by=search";
|
||||
|
||||
|
||||
$linesArray = explode("\n", $multilineString);
|
||||
|
||||
|
||||
foreach ($linesArray as $line) {
|
||||
doit($line, "Neo's Tiger Bee", 0, 1);
|
||||
}
|
||||
|
||||
|
||||
function doit($url, $species, $nsfw, $section) {
|
||||
$isExisting = false;
|
||||
$servername = "localhost";
|
||||
$username = "siskeldev";
|
||||
$password = "LuckyAimie";
|
||||
$dbname = "avali_shop";
|
||||
|
||||
if (str_contains($url, '?')) {
|
||||
$url = substr($url, 0, strpos($url, "?"));
|
||||
}
|
||||
|
||||
$string = file_get_contents($url);
|
||||
|
||||
$dom = new DomDocument();
|
||||
$dom->loadHTML($string);
|
||||
$finder = new DomXPath($dom);
|
||||
|
||||
$content = $finder->query("//*[contains(concat(' ', normalize-space(@data-component-name), ' '), ' ProductPage ')]")[0]->textContent;
|
||||
$content = json_decode($content);
|
||||
$c = $content->product;
|
||||
|
||||
|
||||
$currency = "{
|
||||
\"usd\": \"$\",
|
||||
\"eur\": \"€\",
|
||||
\"crc\": \"₡\",
|
||||
\"gbp\": \"£\",
|
||||
\"ils\": \"₪\",
|
||||
\"inr\": \"₹\",
|
||||
\"jpy\": \"¥\",
|
||||
\"krw\": \"₩\",
|
||||
\"ngn\": \"₦\",
|
||||
\"php\": \"₱\",
|
||||
\"pln\": \"zł\",
|
||||
\"pyg\": \"₲\",
|
||||
\"thb\": \"฿\",
|
||||
\"uah\": \"₴\",
|
||||
\"vnd\": \"₫\",
|
||||
\"aud\": \"A\$\",
|
||||
\"cad\": \"CAD\$\"
|
||||
}";
|
||||
|
||||
$currency = json_decode($currency);
|
||||
$currencyOutput = $c->currency_code;
|
||||
|
||||
if ($c->thumbnail_url == null) {
|
||||
$thumbnailURL = $c->covers[0]->url;
|
||||
} else $thumbnailURL = $c->thumbnail_url;
|
||||
|
||||
$rating = $finder->query("//*[contains(concat(' ', normalize-space(@class), ' '), ' rating-average ')]")[0]->textContent;
|
||||
|
||||
if ($rating == null || $rating == "" || $rating == " ") $rating = "None";
|
||||
|
||||
$conn = new mysqli($servername, $username, $password, $dbname);
|
||||
|
||||
if ($conn->connect_error) {
|
||||
$failed = true;
|
||||
}
|
||||
|
||||
$c->name = str_replace("'","\'",str_replace("`","\`",str_replace('"','\"',$c->name)));
|
||||
$c->seller->name = str_replace("'","\'",str_replace("`","\`",str_replace('"','\"',$c->seller->name)));
|
||||
$species = str_replace("'","\'",str_replace("`","\`",str_replace('"','\"',$species)));
|
||||
|
||||
|
||||
$sql2 = "SELECT * FROM `content` WHERE
|
||||
name LIKE \"%" . $c->name . "%\" AND
|
||||
url_link LIKE \"%" . $url . "%\" AND
|
||||
url_image LIKE \"%" . $thumbnailURL . "%\" AND
|
||||
creator LIKE \"%" . $c->seller->name . "%\";";
|
||||
|
||||
$result2 = $conn->query($sql2);
|
||||
|
||||
if ($result2->num_rows > 0) {
|
||||
$isExisting = true;
|
||||
} else {
|
||||
$isExisting = false;
|
||||
}
|
||||
|
||||
$sql = "INSERT INTO content (
|
||||
`name`,
|
||||
`price`,
|
||||
`currency`,
|
||||
`url_link`,
|
||||
`url_image`,
|
||||
`creator`,
|
||||
`rating`,
|
||||
`species`,
|
||||
`nsfw`,
|
||||
`section`
|
||||
)
|
||||
VALUES (
|
||||
'" . $c->name . "',
|
||||
'" . $c->price_cents . "',
|
||||
'" . $currency->$currencyOutput . "',
|
||||
'" . $url . "',
|
||||
'" . $thumbnailURL . "',
|
||||
'" . $c->seller->name . "',
|
||||
'" . $rating . "',
|
||||
'" . $species . "',
|
||||
'" . $nsfw . "',
|
||||
" . $section . "
|
||||
)";
|
||||
|
||||
|
||||
if ($isExisting == false) {
|
||||
if ($conn->query($sql) === TRUE) {
|
||||
echo "Successful! URL: " . $url;
|
||||
} else {
|
||||
echo "Error: " . $sql . " -|- " . $conn->error;
|
||||
}
|
||||
} else {
|
||||
echo "Already Exists! URL: " . $url;
|
||||
}
|
||||
$conn->close();
|
||||
}
|
||||
|
||||
?>
|
||||
+41
@@ -0,0 +1,41 @@
|
||||
<?php
|
||||
// ERROR CODES: 50 = NO SESSION UUID SET LOGIN OR CREATE WISHLIST
|
||||
|
||||
$servername = "localhost";
|
||||
$username = "database_access";
|
||||
$password = "DataAccess1.";
|
||||
$dbname = "avali_shop";
|
||||
|
||||
$conn = new mysqli($servername, $username, $password, $dbname);
|
||||
|
||||
if ($conn->connect_error) {
|
||||
die("Connection failed: " . $conn->connect_error);
|
||||
}
|
||||
|
||||
session_start();
|
||||
|
||||
$itemId = (int)$_POST["id"];
|
||||
|
||||
$uuid = $_SESSION["uuid"];
|
||||
|
||||
$sql = "SELECT * FROM wishlist_uuid WHERE uuid=\"" . $uuid . "\"";
|
||||
$result = $conn->query($sql);
|
||||
$row = $result->fetch_assoc();
|
||||
|
||||
if ($row["array"] != "") {
|
||||
$currentArray = json_decode($row["array"]);
|
||||
} else {
|
||||
$currentArray = array();
|
||||
}
|
||||
|
||||
if (!in_array($itemId, $currentArray)) {
|
||||
$currentArray[] = $itemId;
|
||||
}
|
||||
|
||||
print_r(json_encode($currentArray));
|
||||
|
||||
$sql_Update = "UPDATE `wishlist_uuid` SET `last_use`='" . date("Y-m-d H:i:s") . "',`array`='" . json_encode($currentArray) . "' WHERE uuid='" . $uuid . "'";
|
||||
$result_Update = $conn->query($sql_Update);
|
||||
|
||||
|
||||
?>
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 115 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 38 KiB |
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
After Width: | Height: | Size: 13 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 2.1 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 102 KiB |
@@ -0,0 +1,110 @@
|
||||
function addFav(id) {
|
||||
return new Promise(function (resolve) {
|
||||
const xmlhttp = new XMLHttpRequest();
|
||||
xmlhttp.onload = function () {
|
||||
}
|
||||
xmlhttp.open("POST", "/addFav.php");
|
||||
xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
|
||||
xmlhttp.send('id=' + id);
|
||||
});
|
||||
}
|
||||
|
||||
function remFav(id) {
|
||||
return new Promise(function (resolve) {
|
||||
const xmlhttp = new XMLHttpRequest();
|
||||
xmlhttp.onload = function () {
|
||||
}
|
||||
xmlhttp.open("POST", "/remFav.php");
|
||||
xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
|
||||
xmlhttp.send('id=' + id);
|
||||
});
|
||||
}
|
||||
|
||||
function getFav() {
|
||||
return new Promise(function (resolve) {
|
||||
const xmlhttp = new XMLHttpRequest();
|
||||
xmlhttp.onload = function () {
|
||||
document.getElementById("wishlist").innerHTML = this.responseText;
|
||||
console.log(this.responseText);
|
||||
}
|
||||
xmlhttp.open("POST", "/getFav.php");
|
||||
xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
|
||||
xmlhttp.send();
|
||||
});
|
||||
}
|
||||
|
||||
function refreshLiked() {
|
||||
document.querySelectorAll('.likebutton').forEach(element => {
|
||||
var exists = false;
|
||||
|
||||
try {
|
||||
wishlistArray.forEach(function(item) {
|
||||
|
||||
if (element.attributes[1].value == String(item["id"])) {
|
||||
exists = true;
|
||||
}
|
||||
});
|
||||
} catch (err) {
|
||||
err.message;
|
||||
}
|
||||
|
||||
if (exists) {
|
||||
element.innerHTML = "<icon>favorite</icon>";
|
||||
} else {
|
||||
element.innerHTML = "<icon>favorite_border</icon>";
|
||||
}
|
||||
|
||||
return new Promise(function (resolve) {
|
||||
const xmlhttp = new XMLHttpRequest();
|
||||
xmlhttp.onload = async function () {
|
||||
document.getElementById("wishlistScript").innerHTML = "var wishlistArray = " + this.responseText;
|
||||
wishlistArray = JSON.parse(this.responseText);
|
||||
}
|
||||
xmlhttp.open("POST", "/getFavArray.php");
|
||||
xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
|
||||
xmlhttp.send();
|
||||
});
|
||||
|
||||
});
|
||||
}
|
||||
|
||||
getFav();
|
||||
|
||||
|
||||
async function accOpen() {
|
||||
if (!login) {
|
||||
document.getElementById("wishlist").innerHTML = "<p>Please Login into your Wishlist to see your Wishlist</p>";
|
||||
}
|
||||
|
||||
currentpos = document.body.scrollTop;
|
||||
document.getElementById("footer").classList.add("addHeight");
|
||||
await sleep(100);
|
||||
try { document.getElementById("filter").style = "top: " + document.body.scrollTop + "px;"; } catch(err) {}
|
||||
await sleep(400);
|
||||
document.getElementById("body").classList.add("disableScrollbar");
|
||||
try { document.getElementById("filter").classList.add("filterDisplay"); } catch(err) {}
|
||||
|
||||
try { document.getElementById("filterdiv").style = "display: none !important;"; } catch(err) {}
|
||||
try { document.getElementById("accdiv").style = "display: grid !important;"; } catch(err) {}
|
||||
|
||||
document.getElementById("filterbutton").href = "#foclose";
|
||||
filterisopened = true;
|
||||
}
|
||||
|
||||
async function accClose() {
|
||||
await sleep(200);
|
||||
|
||||
document.getElementById("body").classList.remove("disableScrollbar");
|
||||
try { document.getElementById("filter").classList.remove("filterDisplay"); } catch(err) {}
|
||||
|
||||
await sleep(400);
|
||||
await sleep(200);
|
||||
document.getElementById("footer").classList.remove("addHeight");
|
||||
|
||||
document.getElementById("filterbutton").href = "#fo";
|
||||
|
||||
try { document.getElementById("filterdiv").style = "display: none !important;"; } catch(err) {}
|
||||
try { document.getElementById("accdiv").style = "display: grid !important;"; } catch(err) {}
|
||||
|
||||
filterisopened = false;
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
function AvaliMode() {
|
||||
if(!document.getElementById('id1')) {
|
||||
var link = document.createElement('link');
|
||||
link.id = 'id1';
|
||||
link.rel = 'stylesheet';
|
||||
link.href = '/assets/style/avali.css';
|
||||
document.head.appendChild(link);
|
||||
AvaliSet("true");
|
||||
} else {
|
||||
document.getElementById("id1").remove();
|
||||
AvaliSet("false");
|
||||
}
|
||||
}
|
||||
|
||||
function AvaliSet(VarIDD) {
|
||||
return new Promise(function (resolve) {
|
||||
const xmlhttp = new XMLHttpRequest();
|
||||
xmlhttp.onload = function () {
|
||||
resolve(xmlhttp.response)
|
||||
}
|
||||
xmlhttp.open("POST", "/setavali.php");
|
||||
xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
|
||||
xmlhttp.send('avali=' + VarIDD);
|
||||
});
|
||||
}
|
||||
@@ -0,0 +1,63 @@
|
||||
function sleep(ms) {
|
||||
return new Promise(resolve => setTimeout(resolve, ms));
|
||||
}
|
||||
|
||||
async function changeNavAttach() {
|
||||
if (window.pageYOffset >= sticky) {
|
||||
navbar.classList.add("sticky");
|
||||
navbar.classList.add("ontop");
|
||||
} else {
|
||||
navbar.classList.remove("sticky");
|
||||
navbar.classList.remove("ontop");
|
||||
}
|
||||
}
|
||||
|
||||
async function topForBottomBarProductPreview() {
|
||||
if (window.windowWidth < 1001) {
|
||||
document.getElementById("purchaseSection").style.top = (825 + document.getElementById("productPage").scrollTop) + "px";
|
||||
} else {
|
||||
document.getElementById("purchaseSection").style.top = null;
|
||||
}
|
||||
}
|
||||
|
||||
document.getElementById("productPage").onscroll = function () {
|
||||
topForBottomBarProductPreview();
|
||||
};
|
||||
|
||||
window.onscroll = function () {
|
||||
changeNavAttach();
|
||||
};
|
||||
|
||||
function disableScroll() {
|
||||
window.addEventListener('DOMMouseScroll', preventDefault, false); // older FF
|
||||
window.addEventListener(wheelEvent, preventDefault, wheelOpt); // modern desktop
|
||||
window.addEventListener('touchmove', preventDefault, wheelOpt); // mobile
|
||||
window.addEventListener('keydown', preventDefaultForScrollKeys, false);
|
||||
}
|
||||
|
||||
function enableScroll() {
|
||||
window.removeEventListener('DOMMouseScroll', preventDefault, false);
|
||||
window.removeEventListener(wheelEvent, preventDefault, wheelOpt);
|
||||
window.removeEventListener('touchmove', preventDefault, wheelOpt);
|
||||
window.removeEventListener('keydown', preventDefaultForScrollKeys, false);
|
||||
}
|
||||
|
||||
function preventDefault(e) {
|
||||
e.preventDefault();
|
||||
}
|
||||
|
||||
function preventDefaultForScrollKeys(e) {
|
||||
if (keys[e.keyCode]) {
|
||||
preventDefault(e);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
function menu() {
|
||||
var x = document.getElementById("navbar");
|
||||
if (x.className.includes("responsive")) {
|
||||
x.className = x.className.replace(" responsive", "");
|
||||
} else {
|
||||
x.className += " responsive";
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,108 @@
|
||||
window.addEventListener('resize', function() {
|
||||
if (window.innerWidth > 800) {
|
||||
document.getElementById("styleshed").innerHTML = ".likeButton {top: " + (document.getElementsByClassName("imgItem")[0].clientHeight - 18) + "px !important}";
|
||||
} else {
|
||||
document.getElementById("styleshed").innerHTML = ".likeButton {top: " + (document.getElementsByClassName("imgItem")[0].clientHeight - 58) + "px !important}";
|
||||
}
|
||||
});
|
||||
|
||||
function getClickedElement() {
|
||||
document.addEventListener('click', async function(event) {
|
||||
var clickedElement = event.target;
|
||||
if (clickedElement.classList[0] == "deletebutton") {
|
||||
var itemid = clickedElement.attributes[2].value
|
||||
remFav(itemid);
|
||||
await sleep(200);
|
||||
getFav();
|
||||
await sleep(3000);
|
||||
refreshLiked();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
getClickedElement();
|
||||
|
||||
window.addEventListener('locationchange', function () {
|
||||
console.log('location changed!');
|
||||
});
|
||||
|
||||
if (window.location.hash == "#fo") {
|
||||
try { filterOpen(); } catch(err) { console.log(err.message); }
|
||||
} else if (window.location.hash == "#foclose") {
|
||||
try { filterClose(); } catch(err) { console.log(err.message); }
|
||||
try { accClose(); } catch(err) { console.log(err.message); }
|
||||
window.location = window.location.replace("#foclose", "");
|
||||
} else if (window.location.hash == "#acc") {
|
||||
try { accOpen(); } catch(err) { console.log(err.message); }
|
||||
} else if (window.location.hash.includes("#p")) {
|
||||
try { clearModal(); } catch(err) { console.log(err.message); }
|
||||
try { openModal(); } catch(err) { console.log(err.message); }
|
||||
|
||||
let vartmp = window.location.hash.replace("#p", "");
|
||||
|
||||
try { setProduct(vartmp); } catch(err) { console.log(err.message); }
|
||||
try { openProduct(); } catch(err) { console.log(err.message); }
|
||||
} else if (window.location.hash.includes("#insert")) {
|
||||
try { openModalInsert(); } catch(err) { console.log(err.message); }
|
||||
} else {
|
||||
try { closeModal(); } catch(err) { console.log(err.message); }
|
||||
try { closeModalInsert(); } catch(err) { console.log(err.message); }
|
||||
try { clearModal(); } catch(err) { console.log(err.message); }
|
||||
|
||||
try { filterClose(); } catch(err) { console.log(err.message); }
|
||||
try { accClose(); } catch(err) { console.log(err.message); }
|
||||
}
|
||||
|
||||
window.addEventListener('hashchange', async function () {
|
||||
if (window.location.hash == "#fo") {
|
||||
try { filterOpen(); } catch(err) { console.log(err.message); }
|
||||
} else if (window.location.hash == "#acc") {
|
||||
try { accOpen(); } catch(err) { console.log(err.message); }
|
||||
} else if (window.location.hash.includes("#p")) {
|
||||
try { clearModal(); } catch(err) { console.log(err.message); }
|
||||
try { openModal(); } catch(err) { console.log(err.message); }
|
||||
|
||||
let vartmp = window.location.hash.replace("#p", "");
|
||||
|
||||
try { setProduct(vartmp); } catch(err) { console.log(err.message); }
|
||||
try { openProduct(); } catch(err) { console.log(err.message); }
|
||||
} else if (window.location.hash.includes("#insert")) {
|
||||
try { openModalInsert(); } catch(err) { console.log(err.message); }
|
||||
} else {
|
||||
try { closeModal(); } catch(err) { console.log(err.message); }
|
||||
try { closeModalInsert(); } catch(err) { console.log(err.message); }
|
||||
await sleep(200);
|
||||
try { clearModal(); } catch(err) { console.log(err.message); }
|
||||
|
||||
try { filterClose(); } catch(err) { console.log(err.message); }
|
||||
try { accClose(); } catch(err) { console.log(err.message); }
|
||||
}
|
||||
});
|
||||
|
||||
document.body.addEventListener('keypress', function(e) {
|
||||
if (e.key == "Escape" && filterisopened == true) {
|
||||
location.href='/';
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
try {
|
||||
window.addEventListener("test", null, Object.defineProperty({}, 'passive', {
|
||||
get: function () {
|
||||
supportsPassive = true;
|
||||
}
|
||||
}));
|
||||
} catch (e) { }
|
||||
|
||||
function addListener() {
|
||||
try {
|
||||
var elements = document.getElementsByClassName('nsfw-filter');
|
||||
for (var element in elements) {
|
||||
elements[element].addEventListener('click', function (e) {
|
||||
e.target.remove();
|
||||
})
|
||||
}
|
||||
} catch (e) {}
|
||||
}
|
||||
|
||||
addListener();
|
||||
@@ -0,0 +1,33 @@
|
||||
|
||||
async function filterOpen() {
|
||||
currentpos = document.body.scrollTop;
|
||||
document.getElementById("footer").classList.add("addHeight");
|
||||
await sleep(100);
|
||||
document.getElementById("filter").style = "top: " + document.body.scrollTop + "px;";
|
||||
await sleep(400);
|
||||
document.getElementById("body").classList.add("disableScrollbar");
|
||||
|
||||
document.getElementById("filterdiv").style = "display: grid !important;";
|
||||
document.getElementById("accdiv").style = "display: none !important;";
|
||||
|
||||
document.getElementById("filter").classList.add("filterDisplay");
|
||||
|
||||
document.getElementById("filterbutton").href = "#foclose";
|
||||
filterisopened = true;
|
||||
}
|
||||
|
||||
async function filterClose() {
|
||||
document.getElementById("body").classList.remove("disableScrollbar");
|
||||
document.getElementById("filter").classList.remove("filterDisplay");
|
||||
|
||||
await sleep(400);
|
||||
await sleep(200);
|
||||
document.getElementById("footer").classList.remove("addHeight");
|
||||
|
||||
document.getElementById("filterbutton").href = "#fo";
|
||||
|
||||
document.getElementById("filterdiv").style = "display: grid !important;";
|
||||
document.getElementById("accdiv").style = "display: none !important;";
|
||||
|
||||
filterisopened = false;
|
||||
}
|
||||
@@ -0,0 +1,69 @@
|
||||
async function openModalInsert() {
|
||||
document.getElementById("insertData").classList.add("visibilityVisible");
|
||||
await sleep(100);
|
||||
document.getElementById("insertData").classList.add("backgroundYES");
|
||||
document.getElementById("body").classList.add("disableScrollbar");
|
||||
await sleep(200);
|
||||
try {document.getElementById("insertWindow").classList.add("visibilityVisible");} catch (e) {}
|
||||
}
|
||||
|
||||
async function closeModalInsert() {
|
||||
try {document.getElementById("insertWindow").classList.remove("visibilityVisible");} catch (e) {}
|
||||
await sleep(200);
|
||||
try {document.getElementById("insertData").classList.remove("visibilityVisible");} catch (e) {}
|
||||
try {document.getElementById("insertData").classList.remove("backgroundYES");} catch (e) {}
|
||||
try {document.getElementById("insertData").style = "";} catch (e) {}
|
||||
document.getElementById("body").classList.remove("disableScrollbar");
|
||||
}
|
||||
|
||||
async function openModal() {
|
||||
document.getElementById("previewProduct").classList.add("visibilityVisible");
|
||||
await sleep(100);
|
||||
document.getElementById("previewProduct").classList.add("backgroundYES");
|
||||
document.getElementById("body").classList.add("disableScrollbar");
|
||||
|
||||
}
|
||||
|
||||
async function openProduct() {
|
||||
document.getElementById("previewProduct").style = "top:" + (document.body.scrollTop) + "px;";
|
||||
await sleep(400);
|
||||
document.getElementById("productPage").classList.add("visibilityVisible");
|
||||
await sleep(200);
|
||||
try {
|
||||
document.getElementsByClassName("slide")[0].style.display = "block";
|
||||
} catch (e) {}
|
||||
}
|
||||
|
||||
async function closeModal() {
|
||||
document.getElementById("productPage").classList.remove("visibilityVisible");
|
||||
await sleep(200);
|
||||
document.getElementById("previewProduct").classList.remove("visibilityVisible");
|
||||
document.getElementById("previewProduct").classList.remove("backgroundYES");
|
||||
document.getElementById("previewProduct").style = "";
|
||||
document.getElementById("body").classList.remove("disableScrollbar");
|
||||
|
||||
document.getElementById("productLoading").style = "display: flex;";
|
||||
}
|
||||
|
||||
function clearModal() {
|
||||
document.getElementById("productImageContainer").innerHTML = "";
|
||||
document.getElementById("productDescription").innerHTML = "";
|
||||
document.getElementById("containsSection").innerHTML = "";
|
||||
document.getElementById("gotoproduct").style = "";
|
||||
document.getElementById("purchasePrice").innerHTML = "";
|
||||
document.getElementById("creatorImg").src = "";
|
||||
document.getElementById("creatorName").innerHTML = "";
|
||||
document.getElementById("ratingSection").style = "";
|
||||
|
||||
document.getElementById("productImageContainer").style = "";
|
||||
document.getElementById("productImageContainerButtons").style = "";
|
||||
document.getElementById("productMetaData").style = "";
|
||||
|
||||
data = "";
|
||||
}
|
||||
|
||||
function backback() {
|
||||
var tmp = window.scrollY;
|
||||
window.location = "#";
|
||||
window.scrollTo(0, tmp);
|
||||
}
|
||||
@@ -0,0 +1,138 @@
|
||||
function plusDivs(n) {
|
||||
showDivs(slideIndex += n);
|
||||
}
|
||||
|
||||
function showDivs(n) {
|
||||
var i;
|
||||
var x = document.getElementsByClassName("slide");
|
||||
if (n > x.length) {slideIndex = 1}
|
||||
if (n < 1) {slideIndex = x.length}
|
||||
for (i = 0; i < x.length; i++) {
|
||||
x[i].style.display = "none";
|
||||
}
|
||||
if (document.getElementById("previewProduct").classList.value.includes("visibilityVisible")) {
|
||||
x[slideIndex-1].style.display = "block";
|
||||
}
|
||||
}
|
||||
|
||||
function getGumroadData(VarIDD) {
|
||||
return new Promise(function (resolve) {
|
||||
const xmlhttp = new XMLHttpRequest();
|
||||
xmlhttp.onload = function () {
|
||||
resolve(xmlhttp.response)
|
||||
}
|
||||
xmlhttp.open("POST", "/getGumroadData.php");
|
||||
xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
|
||||
xmlhttp.send('id=' + VarIDD);
|
||||
});
|
||||
}
|
||||
|
||||
async function setProduct(varID) {
|
||||
try {
|
||||
var remoteCode = await getGumroadData(varID);
|
||||
data = JSON.parse(remoteCode);
|
||||
|
||||
data.product.covers.forEach(element => {
|
||||
if (element.type == "image") {
|
||||
document.getElementById("productImageContainer").innerHTML += "<img class=\"slide\" src=\"" + element.url + "\" style=\"display:none;\">";
|
||||
} else if (element.type == "video") {
|
||||
document.getElementById("productImageContainer").innerHTML += "<video class=\"slide\" src=\"" + element.url + "\" controls=\"show\" style=\"display:none;\">";
|
||||
}
|
||||
});
|
||||
|
||||
if (data.product.summary != null) {
|
||||
document.getElementById("containsSection").innerHTML += "<a class=\"contentSum\">" + data.product.summary + "<br></a>";
|
||||
}
|
||||
|
||||
try {
|
||||
data.product.attributes.forEach(element => {
|
||||
if (element.name != null) {
|
||||
document.getElementById("containsSection").innerHTML += "<a class=\"contentTribute\"><g style=\"font-weight: 100;\">" + element.name + "</g>" + element.value + "</a>";
|
||||
} else {
|
||||
document.getElementById("containsSection").innerHTML += "<a class=\"contentTribute\"><g style=\"font-weight: 100;\"> </g>" + element.value + "</a>";
|
||||
}
|
||||
});
|
||||
} catch (e) {
|
||||
document.getElementById("containsSection").innerHTML += "<a class=\"contentTribute\"><g style=\"font-weight: 100;\">No Content Tags</g></a>";
|
||||
}
|
||||
|
||||
document.getElementById("productDescription").innerHTML = data.product.description_html + "<br><br>";
|
||||
document.getElementById("creatorImg").src = data.product.seller.avatar_url;
|
||||
document.getElementById("gotoproduct").href = data.product.long_url;
|
||||
document.getElementById("gotoproduct2").href = data.product.long_url;
|
||||
|
||||
if (data.product.long_url.includes("booth.pm")) {
|
||||
document.getElementById("gotoproduct").innerHTML = "Get on Booth!";
|
||||
document.getElementById("gotoproduct").style = "visibility: unset !important;";
|
||||
|
||||
document.getElementById("gotoproduct2").innerHTML = "Get on Booth!";
|
||||
document.getElementById("gotoproduct2").style = "visibility: unset !important;";
|
||||
|
||||
document.getElementById("ratingSection").style = "display: none !important;";
|
||||
} else if (data.product.long_url.includes("gumroad.com")) {
|
||||
document.getElementById("gotoproduct").innerHTML = "Get on Gumroad!";
|
||||
document.getElementById("gotoproduct").style = "visibility: unset !important;";
|
||||
|
||||
document.getElementById("gotoproduct2").innerHTML = "Get on Gumroad!";
|
||||
document.getElementById("gotoproduct2").style = "visibility: unset !important;";
|
||||
|
||||
document.getElementById("ratingSection").style = "display: flex !important;";
|
||||
}
|
||||
|
||||
document.getElementById("productMetaData").style = "display: block !important;";
|
||||
document.getElementById("productImageContainer").style = "display: flex !important;";
|
||||
document.getElementById("productImageContainerButtons").style = "display: flex !important;";
|
||||
|
||||
document.getElementById("productLoading").style = "display: none !important;";
|
||||
|
||||
if (data.product.currency_code == "eur") {
|
||||
document.getElementById("purchasePrice").innerHTML = (data.product.price_cents / 100) + "€";
|
||||
document.getElementById("purchasePrice2").innerHTML = (data.product.price_cents / 100) + "€";
|
||||
} else {
|
||||
document.getElementById("purchasePrice").innerHTML = currency_symbols[data.product.currency_code.toUpperCase()] + (data.product.price_cents / 100);
|
||||
document.getElementById("purchasePrice2").innerHTML = currency_symbols[data.product.currency_code.toUpperCase()] + (data.product.price_cents / 100);
|
||||
}
|
||||
|
||||
const ex1 = data.product.rating_counts[0],
|
||||
ex2 = data.product.rating_counts[1],
|
||||
ex3 = data.product.rating_counts[2],
|
||||
ex4 = data.product.rating_counts[3],
|
||||
ex5 = data.product.rating_counts[4];
|
||||
|
||||
var tmp1, tmp2, tmp3, tmp4, tmp5, tmpGlobal=ex1+ex2+ex3+ex4+ex5;
|
||||
var tmpaddon1, tmpaddon2, tmpaddon3, tmpaddon4, tmpaddon5;
|
||||
|
||||
tmp1 = (100 / tmpGlobal) * ex1;
|
||||
tmp2 = (100 / tmpGlobal) * ex2;
|
||||
tmp3 = (100 / tmpGlobal) * ex3;
|
||||
tmp4 = (100 / tmpGlobal) * ex4;
|
||||
tmp5 = (100 / tmpGlobal) * ex5;
|
||||
|
||||
if (tmp1 == 0) tmpaddon1 = "display: none;";
|
||||
if (tmp2 == 0) tmpaddon2 = "display: none;";
|
||||
if (tmp3 == 0) tmpaddon3 = "display: none;";
|
||||
if (tmp4 == 0) tmpaddon4 = "display: none;";
|
||||
if (tmp5 == 0) tmpaddon5 = "display: none;";
|
||||
|
||||
document.getElementById("g1").innerHTML = "(" + ex1 + ")";
|
||||
document.getElementById("g2").innerHTML = "(" + ex2 + ")";
|
||||
document.getElementById("g3").innerHTML = "(" + ex3 + ")";
|
||||
document.getElementById("g4").innerHTML = "(" + ex4 + ")";
|
||||
document.getElementById("g5").innerHTML = "(" + ex5 + ")";
|
||||
|
||||
document.getElementById("progressFiller1").style = "width: " + tmp1 + "%;" + tmpaddon1;
|
||||
document.getElementById("progressFiller2").style = "width: " + tmp2 + "%;" + tmpaddon2;
|
||||
document.getElementById("progressFiller3").style = "width: " + tmp3 + "%;" + tmpaddon3;
|
||||
document.getElementById("progressFiller4").style = "width: " + tmp4 + "%;" + tmpaddon4;
|
||||
document.getElementById("progressFiller5").style = "width: " + tmp5 + "%;" + tmpaddon5;
|
||||
|
||||
document.getElementById("creatorName").innerHTML = data.product.seller.name;
|
||||
document.getElementById("creatorName").href = "?s=" + data.product.seller.name;
|
||||
|
||||
document.getElementsByClassName("slide")[0].style.display = "block";
|
||||
|
||||
} catch (e) {}
|
||||
data = null;
|
||||
|
||||
document.getElementsByClassName("slide")[0].style.display = "block";
|
||||
}
|
||||
@@ -0,0 +1,33 @@
|
||||
if (window.innerWidth > 800) {
|
||||
document.getElementById("styleshed").innerHTML = ".likeButton {top: " + (document.getElementsByClassName("imgItem")[0].clientHeight - 18) + "px !important}";
|
||||
} else {
|
||||
document.getElementById("styleshed").innerHTML = ".likeButton {top: " + (document.getElementsByClassName("imgItem")[0].clientHeight - 58) + "px !important}";
|
||||
}
|
||||
|
||||
document.querySelectorAll('.likebutton').forEach(element => {
|
||||
element.addEventListener("click", async function () {
|
||||
var itemid = this.attributes[1].value
|
||||
|
||||
if (this.innerHTML == "<icon>favorite_border</icon>") {
|
||||
addFav(itemid);
|
||||
await sleep(200);
|
||||
getFav();
|
||||
this.innerHTML = "<icon>favorite</icon>";
|
||||
} else if (this.innerHTML == "<icon>favorite</icon>") {
|
||||
remFav(itemid);
|
||||
await sleep(200);
|
||||
getFav();
|
||||
this.innerHTML = "<icon>favorite_border</icon>";
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
async function myFunction() {
|
||||
if (window.pageYOffset >= sticky) {
|
||||
navbar.classList.add("sticky");
|
||||
navbar.classList.add("ontop");
|
||||
} else {
|
||||
navbar.classList.remove("sticky");
|
||||
navbar.classList.remove("ontop");
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
function searchInputFocus() {
|
||||
document.getElementById("sinp").focus();
|
||||
document.getElementById("sinp").focus();
|
||||
document.getElementById("sinp").select();
|
||||
document.getElementById("sinp").select();
|
||||
}
|
||||
|
||||
function searchFocus() {
|
||||
document.getElementById("stxt").classList.add("floataway");
|
||||
}
|
||||
|
||||
function searchBlur() {
|
||||
document.getElementById("stxt").classList.remove("floataway");
|
||||
}
|
||||
@@ -0,0 +1,46 @@
|
||||
var data;
|
||||
var currentHash;
|
||||
var myOldUrl = window.location.href;
|
||||
var navbar = document.getElementById("navbar");
|
||||
var sticky = navbar.offsetTop;
|
||||
var filterOpened = false;
|
||||
|
||||
var windowWidth = window.innerWidth;
|
||||
|
||||
var currency_symbols = {
|
||||
'USD': '$', // US Dollar
|
||||
'EUR': '€', // Euro
|
||||
'CRC': '₡', // Costa Rican Colón
|
||||
'GBP': '£', // British Pound Sterling
|
||||
'ILS': '₪', // Israeli New Sheqel
|
||||
'INR': '₹', // Indian Rupee
|
||||
'JPY': '¥', // Japanese Yen
|
||||
'KRW': '₩', // South Korean Won
|
||||
'NGN': '₦', // Nigerian Naira
|
||||
'PHP': '₱', // Philippine Peso
|
||||
'PLN': 'zł', // Polish Zloty
|
||||
'PYG': '₲', // Paraguayan Guarani
|
||||
'THB': '฿', // Thai Baht
|
||||
'UAH': '₴', // Ukrainian Hryvnia
|
||||
'VND': '₫', // Vietnamese Dong
|
||||
'AUD': 'A$'
|
||||
};
|
||||
|
||||
var keys = {
|
||||
37: 1,
|
||||
38: 1,
|
||||
39: 1,
|
||||
40: 1
|
||||
};
|
||||
|
||||
var currentpos = 0;
|
||||
var filterisopened = true;
|
||||
|
||||
var slideIndex = 1;
|
||||
var supportsPassive = false;
|
||||
|
||||
var wheelOpt = supportsPassive ? {
|
||||
passive: false
|
||||
} : false;
|
||||
|
||||
var wheelEvent = 'onwheel' in document.createElement('div') ? 'wheel' : 'mousewheel';
|
||||
@@ -0,0 +1,53 @@
|
||||
@font-face{
|
||||
font-family: avali;
|
||||
src: url(https://furatalog.xyz/assets/fonts/avali-scratch.ttf);
|
||||
}
|
||||
|
||||
* {
|
||||
font-family: avali;
|
||||
}
|
||||
|
||||
.previewButton {
|
||||
font-size: 30px !important;
|
||||
}
|
||||
|
||||
header a {
|
||||
font-size: 1.3rem;
|
||||
}
|
||||
|
||||
footer a {
|
||||
font-size: 40px;
|
||||
}
|
||||
|
||||
#navbar a {
|
||||
font-size: 25.5px;
|
||||
}
|
||||
|
||||
.header h2 {
|
||||
font-size: 3em;
|
||||
}
|
||||
|
||||
.header p {
|
||||
font-size: 50px;
|
||||
}
|
||||
|
||||
.searchfield input {
|
||||
font-size: 24px;
|
||||
}
|
||||
|
||||
.pagenav a {
|
||||
font-size: 42px;
|
||||
}
|
||||
|
||||
.nsfw-ask {
|
||||
font-size: 25.5px;
|
||||
}
|
||||
|
||||
.filter-container-item {
|
||||
font-size: 45px;
|
||||
margin-bottom: 5px;
|
||||
}
|
||||
|
||||
.filter-inner a {
|
||||
margin-bottom: 10px !important;
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,195 @@
|
||||
<head>
|
||||
<style>
|
||||
@font-face{
|
||||
font-family: rubik;
|
||||
src: url(https://mfgames.net/assets/Rubik-VariableFont_wght.ttf);
|
||||
}
|
||||
|
||||
* {
|
||||
font-family: rubik;
|
||||
}
|
||||
|
||||
input {
|
||||
color: white;
|
||||
background-color: #2e2e2e;
|
||||
border: none;
|
||||
font-size: 20px;
|
||||
margin: 3px;
|
||||
padding: 5px;
|
||||
border-radius: 5px;
|
||||
}
|
||||
|
||||
button {
|
||||
color: white;
|
||||
background-color: #3e3e3e;
|
||||
border: none;
|
||||
font-size: 20px;
|
||||
margin: 3px;
|
||||
padding: 5px 10px;
|
||||
border-radius: 10px;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
|
||||
<?php
|
||||
|
||||
$url = $_POST["url"];
|
||||
$species = $_POST["species"];
|
||||
$nsfw = $_POST["nsfw"];
|
||||
|
||||
$isExisting = false;
|
||||
|
||||
|
||||
/*
|
||||
$url = "https://flashychisme.gumroad.com/l/SimpleHoodieWickerbeast";
|
||||
$species = "Wickerbeast";
|
||||
$nsfw = "0";
|
||||
*/
|
||||
|
||||
if (isset($_POST["url"]) && isset($_POST["species"]) && isset($_POST["nsfw"])) {
|
||||
|
||||
//if (true) {
|
||||
$servername = "localhost";
|
||||
$username = "siskeldev";
|
||||
$password = "LuckyAimie";
|
||||
$dbname = "avali_shop";
|
||||
|
||||
if (str_contains($url, '?')) {
|
||||
$url = substr($url, 0, strpos($url, "?"));
|
||||
}
|
||||
|
||||
$string = file_get_contents($url);
|
||||
|
||||
$dom = new DomDocument();
|
||||
$dom->loadHTML($string);
|
||||
$finder = new DomXPath($dom);
|
||||
|
||||
$content = $finder->query("//*[contains(concat(' ', normalize-space(@data-component-name), ' '), ' ProductPage ')]")[0]->textContent;
|
||||
$content = json_decode($content);
|
||||
$c = $content->product;
|
||||
|
||||
|
||||
$currency = "{
|
||||
\"usd\": \"$\",
|
||||
\"eur\": \"€\",
|
||||
\"crc\": \"₡\",
|
||||
\"gbp\": \"£\",
|
||||
\"ils\": \"₪\",
|
||||
\"inr\": \"₹\",
|
||||
\"jpy\": \"¥\",
|
||||
\"krw\": \"₩\",
|
||||
\"ngn\": \"₦\",
|
||||
\"php\": \"₱\",
|
||||
\"pln\": \"zł\",
|
||||
\"pyg\": \"₲\",
|
||||
\"thb\": \"฿\",
|
||||
\"uah\": \"₴\",
|
||||
\"vnd\": \"₫\",
|
||||
\"aud\": \"A\$\",
|
||||
\"cad\": \"CAD\$\"
|
||||
}";
|
||||
|
||||
$currency = json_decode($currency);
|
||||
$currencyOutput = $c->currency_code;
|
||||
|
||||
if ($c->thumbnail_url == null) {
|
||||
$thumbnailURL = $c->covers[0]->url;
|
||||
} else $thumbnailURL = $c->thumbnail_url;
|
||||
|
||||
$rating = $finder->query("//*[contains(concat(' ', normalize-space(@class), ' '), ' rating-average ')]")[0]->textContent;
|
||||
|
||||
if ($rating == null || $rating == "" || $rating == " ") $rating = "None";
|
||||
|
||||
$conn = new mysqli($servername, $username, $password, $dbname);
|
||||
|
||||
if ($conn->connect_error) {
|
||||
$failed = true;
|
||||
}
|
||||
|
||||
$c->name = str_replace("'","\'",str_replace("`","\`",str_replace('"','\"',$c->name)));
|
||||
$c->seller->name = str_replace("'","\'",str_replace("`","\`",str_replace('"','\"',$c->seller->name)));
|
||||
$species = str_replace("'","\'",str_replace("`","\`",str_replace('"','\"',$species)));
|
||||
|
||||
|
||||
$sql2 = "SELECT * FROM `content` WHERE
|
||||
name LIKE \"%" . $c->name . "%\" AND
|
||||
url_link LIKE \"%" . $url . "%\" AND
|
||||
url_image LIKE \"%" . $thumbnailURL . "%\" AND
|
||||
creator LIKE \"%" . $c->seller->name . "%\";";
|
||||
|
||||
$result2 = $conn->query($sql2);
|
||||
|
||||
if ($result2->num_rows > 0) {
|
||||
$isExisting = true;
|
||||
} else {
|
||||
$isExisting = false;
|
||||
}
|
||||
|
||||
$sql = "INSERT INTO content (
|
||||
`name`,
|
||||
`price`,
|
||||
`currency`,
|
||||
`url_link`,
|
||||
`url_image`,
|
||||
`creator`,
|
||||
`rating`,
|
||||
`species`,
|
||||
`nsfw`,
|
||||
`section`
|
||||
)
|
||||
VALUES (
|
||||
'" . $c->name . "',
|
||||
'" . $c->price_cents . "',
|
||||
'" . $currency->$currencyOutput . "',
|
||||
'" . $url . "',
|
||||
'" . $thumbnailURL . "',
|
||||
'" . $c->seller->name . "',
|
||||
'" . $rating . "',
|
||||
'" . $species . "',
|
||||
'" . $nsfw . "',
|
||||
1
|
||||
)";
|
||||
if ($isExisting == false) {
|
||||
if ($conn->query($sql) === TRUE) {
|
||||
echo "<a style=\"color: green;\">Successful !</a>";
|
||||
} else {
|
||||
$errormsg = "<a style=\"color: red;\">Error: " . $sql . "<br>" . $conn->error . "</a>";
|
||||
$failed = true;
|
||||
}
|
||||
} else {
|
||||
echo "<a style=\"color: orange;\">Already Exists!</a>";
|
||||
}
|
||||
|
||||
|
||||
$conn->close();
|
||||
}
|
||||
|
||||
|
||||
?>
|
||||
<body style="background-color: #1e1e1e; color: white">
|
||||
<form action="AutoInsertData.php" method="post">
|
||||
<label for="url">URL:</label><br>
|
||||
<input type="text" id="url" name="url" style="width:100%"><br>
|
||||
<label for="species">Species:</label><br>
|
||||
<input type="text" id="species" name="species" style="width:100%"><br>
|
||||
<label for="nsfw">NSFW:</label><br>
|
||||
<input type="text" id="nsfw" name="nsfw" value="0" style="width:100%">
|
||||
<button type="submit">Submit</button>
|
||||
</form>
|
||||
<br>
|
||||
<br>
|
||||
<?php
|
||||
|
||||
echo "
|
||||
'" . $c->name . "', <br>
|
||||
'" . ($c->price_cents / 100) . "', <br>
|
||||
'" . $currency->$currencyOutput . "', <br>
|
||||
'" . $url . "', <br>
|
||||
'" . $thumbnailURL . "', <br>
|
||||
'" . $c->seller->name . "', <br>
|
||||
'" . $rating . "', <br>
|
||||
'" . $species . "',<br>
|
||||
'" . $nsfw . "'";
|
||||
|
||||
?>
|
||||
@@ -0,0 +1,66 @@
|
||||
<?php
|
||||
|
||||
//$_GET["sort"] = "free";
|
||||
//$_GET["t"] = "davali";
|
||||
//$_GET["s"] = "Novabeast";
|
||||
|
||||
|
||||
$o = "";
|
||||
|
||||
require_once("../lib.php");
|
||||
$mflib = new MFLib();
|
||||
|
||||
require_once("../elements.php");
|
||||
$mfelements = new MFElements();
|
||||
|
||||
$actual_link = $mflib->getLink();
|
||||
|
||||
$mflib->limitperpage = 15;
|
||||
|
||||
$mflib->setCookie();
|
||||
session_start();
|
||||
|
||||
if ( isset($_GET["s"]) && $_GET["s"] == "61776746" ) {
|
||||
$_SESSION["adminmode"] = true;
|
||||
header("Location: https://furatalog.xyz/avatar-assets/#insert");
|
||||
} else if ( isset($_GET["s"]) && $_GET["s"] == "59572354") {
|
||||
$_SESSION["adminmode"] = false;
|
||||
header("Location: https://furatalog.xyz/avatar-assets/");
|
||||
}
|
||||
$mflib->initialize();
|
||||
|
||||
$wishlistArray = $mflib->dataGetWishlist();
|
||||
|
||||
if (!isset($_GET["p"])) $_GET["p"] = 1;
|
||||
|
||||
$o .= "<html>";
|
||||
$o .= $mfelements->printHead($wishlistArray);
|
||||
|
||||
$o .= "<body id=\"body\">";
|
||||
$o .= $mfelements->printSiteHeader();
|
||||
|
||||
$o .= "<div id=\"filter\" class=\"filter\" >";
|
||||
$o .= $mfelements->printFilterSection($mflib, $actual_link);
|
||||
$o .= $mfelements->printAccountSection($mflib);
|
||||
$o .= "</div>";
|
||||
|
||||
$o .= $mfelements->printPreviewProductPage();
|
||||
|
||||
if (isset($_SESSION["adminmode"]) && $_SESSION["adminmode"] == true) {
|
||||
$o .= $mfelements->printAdminInsertData($mflib);
|
||||
}
|
||||
|
||||
$o .= $mfelements->printNavbar($mflib);
|
||||
|
||||
$o .= $mfelements->printPageContent($mflib, $wishlistArray);
|
||||
|
||||
$o .= $mfelements->printNSFWpromt($actual_link);
|
||||
|
||||
$o .= $mfelements->printFooter($mflib);
|
||||
|
||||
$o .= $mfelements->printJSLoginVar();
|
||||
$o .= $mfelements->printScriptSources();
|
||||
|
||||
$o .= "</body></html>";
|
||||
|
||||
echo $o;
|
||||
@@ -0,0 +1,195 @@
|
||||
<head>
|
||||
<style>
|
||||
@font-face{
|
||||
font-family: rubik;
|
||||
src: url(https://mfgames.net/assets/Rubik-VariableFont_wght.ttf);
|
||||
}
|
||||
|
||||
* {
|
||||
font-family: rubik;
|
||||
}
|
||||
|
||||
input {
|
||||
color: white;
|
||||
background-color: #2e2e2e;
|
||||
border: none;
|
||||
font-size: 20px;
|
||||
margin: 3px;
|
||||
padding: 5px;
|
||||
border-radius: 5px;
|
||||
}
|
||||
|
||||
button {
|
||||
color: white;
|
||||
background-color: #3e3e3e;
|
||||
border: none;
|
||||
font-size: 20px;
|
||||
margin: 3px;
|
||||
padding: 5px 10px;
|
||||
border-radius: 10px;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
|
||||
<?php
|
||||
|
||||
$url = $_POST["url"];
|
||||
$species = $_POST["species"];
|
||||
$nsfw = $_POST["nsfw"];
|
||||
|
||||
$isExisting = false;
|
||||
|
||||
|
||||
/*
|
||||
$url = "https://flashychisme.gumroad.com/l/SimpleHoodieWickerbeast";
|
||||
$species = "Wickerbeast";
|
||||
$nsfw = "0";
|
||||
*/
|
||||
|
||||
if (isset($_POST["url"]) && isset($_POST["species"]) && isset($_POST["nsfw"])) {
|
||||
|
||||
//if (true) {
|
||||
$servername = "localhost";
|
||||
$username = "siskeldev";
|
||||
$password = "LuckyAimie";
|
||||
$dbname = "avali_shop";
|
||||
|
||||
if (str_contains($url, '?')) {
|
||||
$url = substr($url, 0, strpos($url, "?"));
|
||||
}
|
||||
|
||||
$string = file_get_contents($url);
|
||||
|
||||
$dom = new DomDocument();
|
||||
$dom->loadHTML($string);
|
||||
$finder = new DomXPath($dom);
|
||||
|
||||
$content = $finder->query("//*[contains(concat(' ', normalize-space(@data-component-name), ' '), ' ProductPage ')]")[0]->textContent;
|
||||
$content = json_decode($content);
|
||||
$c = $content->product;
|
||||
|
||||
|
||||
$currency = "{
|
||||
\"usd\": \"$\",
|
||||
\"eur\": \"€\",
|
||||
\"crc\": \"₡\",
|
||||
\"gbp\": \"£\",
|
||||
\"ils\": \"₪\",
|
||||
\"inr\": \"₹\",
|
||||
\"jpy\": \"¥\",
|
||||
\"krw\": \"₩\",
|
||||
\"ngn\": \"₦\",
|
||||
\"php\": \"₱\",
|
||||
\"pln\": \"zł\",
|
||||
\"pyg\": \"₲\",
|
||||
\"thb\": \"฿\",
|
||||
\"uah\": \"₴\",
|
||||
\"vnd\": \"₫\",
|
||||
\"aud\": \"A\$\",
|
||||
\"cad\": \"CAD\$\"
|
||||
}";
|
||||
|
||||
$currency = json_decode($currency);
|
||||
$currencyOutput = $c->currency_code;
|
||||
|
||||
if ($c->thumbnail_url == null) {
|
||||
$thumbnailURL = $c->covers[0]->url;
|
||||
} else $thumbnailURL = $c->thumbnail_url;
|
||||
|
||||
$rating = $finder->query("//*[contains(concat(' ', normalize-space(@class), ' '), ' rating-average ')]")[0]->textContent;
|
||||
|
||||
if ($rating == null || $rating == "" || $rating == " ") $rating = "None";
|
||||
|
||||
$conn = new mysqli($servername, $username, $password, $dbname);
|
||||
|
||||
if ($conn->connect_error) {
|
||||
$failed = true;
|
||||
}
|
||||
|
||||
$c->name = str_replace("'","\'",str_replace("`","\`",str_replace('"','\"',$c->name)));
|
||||
$c->seller->name = str_replace("'","\'",str_replace("`","\`",str_replace('"','\"',$c->seller->name)));
|
||||
$species = str_replace("'","\'",str_replace("`","\`",str_replace('"','\"',$species)));
|
||||
|
||||
|
||||
$sql2 = "SELECT * FROM `content` WHERE
|
||||
name LIKE \"%" . $c->name . "%\" AND
|
||||
url_link LIKE \"%" . $url . "%\" AND
|
||||
url_image LIKE \"%" . $thumbnailURL . "%\" AND
|
||||
creator LIKE \"%" . $c->seller->name . "%\";";
|
||||
|
||||
$result2 = $conn->query($sql2);
|
||||
|
||||
if ($result2->num_rows > 0) {
|
||||
$isExisting = true;
|
||||
} else {
|
||||
$isExisting = false;
|
||||
}
|
||||
|
||||
$sql = "INSERT INTO content (
|
||||
`name`,
|
||||
`price`,
|
||||
`currency`,
|
||||
`url_link`,
|
||||
`url_image`,
|
||||
`creator`,
|
||||
`rating`,
|
||||
`species`,
|
||||
`nsfw`,
|
||||
`section`
|
||||
)
|
||||
VALUES (
|
||||
'" . $c->name . "',
|
||||
'" . $c->price_cents . "',
|
||||
'" . $currency->$currencyOutput . "',
|
||||
'" . $url . "',
|
||||
'" . $thumbnailURL . "',
|
||||
'" . $c->seller->name . "',
|
||||
'" . $rating . "',
|
||||
'" . $species . "',
|
||||
'" . $nsfw . "',
|
||||
3
|
||||
)";
|
||||
if ($isExisting == false) {
|
||||
if ($conn->query($sql) === TRUE) {
|
||||
echo "<a style=\"color: green;\">Successful !</a>";
|
||||
} else {
|
||||
$errormsg = "<a style=\"color: red;\">Error: " . $sql . "<br>" . $conn->error . "</a>";
|
||||
$failed = true;
|
||||
}
|
||||
} else {
|
||||
echo "<a style=\"color: orange;\">Already Exists!</a>";
|
||||
}
|
||||
|
||||
|
||||
$conn->close();
|
||||
}
|
||||
|
||||
|
||||
?>
|
||||
<body style="background-color: #1e1e1e; color: white">
|
||||
<form action="AutoInsertData.php" method="post">
|
||||
<label for="url">URL:</label><br>
|
||||
<input type="text" id="url" name="url" style="width:100%"><br>
|
||||
<label for="species">Species:</label><br>
|
||||
<input type="text" id="species" name="species" style="width:100%"><br>
|
||||
<label for="nsfw">NSFW:</label><br>
|
||||
<input type="text" id="nsfw" name="nsfw" value="0" style="width:100%">
|
||||
<button type="submit">Submit</button>
|
||||
</form>
|
||||
<br>
|
||||
<br>
|
||||
<?php
|
||||
|
||||
echo "
|
||||
'" . $c->name . "', <br>
|
||||
'" . ($c->price_cents / 100) . "', <br>
|
||||
'" . $currency->$currencyOutput . "', <br>
|
||||
'" . $url . "', <br>
|
||||
'" . $thumbnailURL . "', <br>
|
||||
'" . $c->seller->name . "', <br>
|
||||
'" . $rating . "', <br>
|
||||
'" . $species . "',<br>
|
||||
'" . $nsfw . "'";
|
||||
|
||||
?>
|
||||
@@ -0,0 +1,65 @@
|
||||
<?php
|
||||
|
||||
//$_GET["sort"] = "free";
|
||||
//$_GET["t"] = "davali";
|
||||
|
||||
|
||||
$o = "";
|
||||
|
||||
require_once("../lib.php");
|
||||
$mflib = new MFLib();
|
||||
|
||||
require_once("../elements.php");
|
||||
$mfelements = new MFElements();
|
||||
|
||||
$actual_link = $mflib->getLink();
|
||||
|
||||
$mflib->limitperpage = 15;
|
||||
|
||||
$mflib->setCookie();
|
||||
session_start();
|
||||
|
||||
if ( isset($_GET["s"]) && $_GET["s"] == "61776746" ) {
|
||||
$_SESSION["adminmode"] = true;
|
||||
header("Location: https://furatalog.xyz/avatar-bases/#insert");
|
||||
} else if ( isset($_GET["s"]) && $_GET["s"] == "59572354") {
|
||||
$_SESSION["adminmode"] = false;
|
||||
header("Location: https://furatalog.xyz/avatar-bases/");
|
||||
}
|
||||
$mflib->initialize();
|
||||
|
||||
$wishlistArray = $mflib->dataGetWishlist();
|
||||
|
||||
if (!isset($_GET["p"])) $_GET["p"] = 1;
|
||||
|
||||
$o .= "<html>";
|
||||
$o .= $mfelements->printHead($wishlistArray);
|
||||
|
||||
$o .= "<body id=\"body\">";
|
||||
$o .= $mfelements->printSiteHeader();
|
||||
|
||||
$o .= "<div id=\"filter\" class=\"filter\" >";
|
||||
$o .= $mfelements->printFilterSection($mflib, $actual_link);
|
||||
$o .= $mfelements->printAccountSection($mflib);
|
||||
$o .= "</div>";
|
||||
|
||||
$o .= $mfelements->printPreviewProductPage();
|
||||
|
||||
if (isset($_SESSION["adminmode"]) && $_SESSION["adminmode"] == true) {
|
||||
$o .= $mfelements->printAdminInsertData($mflib);
|
||||
}
|
||||
|
||||
$o .= $mfelements->printNavbar($mflib);
|
||||
|
||||
$o .= $mfelements->printPageContent($mflib, $wishlistArray);
|
||||
|
||||
$o .= $mfelements->printNSFWpromt($actual_link);
|
||||
|
||||
$o .= $mfelements->printFooter($mflib);
|
||||
|
||||
$o .= $mfelements->printJSLoginVar();
|
||||
$o .= $mfelements->printScriptSources();
|
||||
|
||||
$o .= "</body></html>";
|
||||
|
||||
echo $o;
|
||||
@@ -0,0 +1,196 @@
|
||||
<head>
|
||||
<style>
|
||||
@font-face{
|
||||
font-family: rubik;
|
||||
src: url(https://mfgames.net/assets/Rubik-VariableFont_wght.ttf);
|
||||
}
|
||||
|
||||
* {
|
||||
font-family: rubik;
|
||||
}
|
||||
|
||||
input {
|
||||
color: white;
|
||||
background-color: #2e2e2e;
|
||||
border: none;
|
||||
font-size: 20px;
|
||||
margin: 3px;
|
||||
padding: 5px;
|
||||
border-radius: 5px;
|
||||
}
|
||||
|
||||
button {
|
||||
color: white;
|
||||
background-color: #3e3e3e;
|
||||
border: none;
|
||||
font-size: 20px;
|
||||
margin: 3px;
|
||||
padding: 5px 10px;
|
||||
border-radius: 10px;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
|
||||
<?php
|
||||
|
||||
$url = $_POST["url"];
|
||||
$species = $_POST["species"];
|
||||
$nsfw = $_POST["nsfw"];
|
||||
|
||||
$isExisting = false;
|
||||
|
||||
|
||||
/*
|
||||
$url = "https://flashychisme.gumroad.com/l/SimpleHoodieWickerbeast";
|
||||
$species = "Wickerbeast";
|
||||
$nsfw = "0";
|
||||
*/
|
||||
|
||||
if (isset($_POST["url"]) && isset($_POST["species"]) && isset($_POST["nsfw"])) {
|
||||
|
||||
//if (true) {
|
||||
$servername = "localhost";
|
||||
$username = "siskeldev";
|
||||
$password = "LuckyAimie";
|
||||
$dbname = "avali_shop";
|
||||
|
||||
if (str_contains($url, '?')) {
|
||||
$url = substr($url, 0, strpos($url, "?"));
|
||||
}
|
||||
|
||||
$string = file_get_contents($url);
|
||||
|
||||
$dom = new DomDocument();
|
||||
$dom->loadHTML($string);
|
||||
$finder = new DomXPath($dom);
|
||||
|
||||
$content = $finder->query("//*[contains(concat(' ', normalize-space(@data-component-name), ' '), ' ProductPage ')]")[0]->textContent;
|
||||
$content = json_decode($content);
|
||||
$c = $content->product;
|
||||
|
||||
|
||||
$currency = "{
|
||||
\"usd\": \"$\",
|
||||
\"eur\": \"€\",
|
||||
\"crc\": \"₡\",
|
||||
\"gbp\": \"£\",
|
||||
\"ils\": \"₪\",
|
||||
\"inr\": \"₹\",
|
||||
\"jpy\": \"¥\",
|
||||
\"krw\": \"₩\",
|
||||
\"ngn\": \"₦\",
|
||||
\"php\": \"₱\",
|
||||
\"pln\": \"zł\",
|
||||
\"pyg\": \"₲\",
|
||||
\"thb\": \"฿\",
|
||||
\"uah\": \"₴\",
|
||||
\"vnd\": \"₫\",
|
||||
\"aud\": \"A\$\",
|
||||
\"cad\": \"CAD\$\"
|
||||
}";
|
||||
|
||||
$currency = json_decode($currency);
|
||||
$currencyOutput = $c->currency_code;
|
||||
|
||||
if ($c->thumbnail_url == null) {
|
||||
$thumbnailURL = $c->covers[0]->url;
|
||||
} else $thumbnailURL = $c->thumbnail_url;
|
||||
|
||||
$rating = $finder->query("//*[contains(concat(' ', normalize-space(@class), ' '), ' rating-average ')]")[0]->textContent;
|
||||
|
||||
if ($rating == null || $rating == "" || $rating == " ") $rating = "None";
|
||||
|
||||
$conn = new mysqli($servername, $username, $password, $dbname);
|
||||
|
||||
if ($conn->connect_error) {
|
||||
$failed = true;
|
||||
}
|
||||
|
||||
$c->name = str_replace("'","\'",str_replace("`","\`",str_replace('"','\"',$c->name)));
|
||||
$c->seller->name = str_replace("'","\'",str_replace("`","\`",str_replace('"','\"',$c->seller->name)));
|
||||
$species = str_replace("'","\'",str_replace("`","\`",str_replace('"','\"',$species)));
|
||||
|
||||
|
||||
$sql2 = "SELECT * FROM `content` WHERE
|
||||
name LIKE \"%" . $c->name . "%\" AND
|
||||
url_link LIKE \"%" . $url . "%\" AND
|
||||
url_image LIKE \"%" . $thumbnailURL . "%\" AND
|
||||
creator LIKE \"%" . $c->seller->name . "%\";";
|
||||
|
||||
$result2 = $conn->query($sql2);
|
||||
|
||||
if ($result2->num_rows > 0) {
|
||||
$isExisting = true;
|
||||
} else {
|
||||
$isExisting = false;
|
||||
}
|
||||
|
||||
$sql = "INSERT INTO content (
|
||||
`name`,
|
||||
`price`,
|
||||
`currency`,
|
||||
`url_link`,
|
||||
`url_image`,
|
||||
`creator`,
|
||||
`rating`,
|
||||
`species`,
|
||||
`nsfw`,
|
||||
`section`
|
||||
)
|
||||
VALUES (
|
||||
'" . $c->name . "',
|
||||
'" . $c->price_cents . "',
|
||||
'" . $currency->$currencyOutput . "',
|
||||
'" . $url . "',
|
||||
'" . $thumbnailURL . "',
|
||||
'" . $c->seller->name . "',
|
||||
'" . $rating . "',
|
||||
'" . $species . "',
|
||||
'" . $nsfw . "',
|
||||
2
|
||||
)";
|
||||
if ($isExisting == false) {
|
||||
if ($conn->query($sql) === TRUE) {
|
||||
echo "<a style=\"color: green;\">Successful !</a>";
|
||||
} else {
|
||||
$errormsg = "<a style=\"color: red;\">Error: " . $sql . "<br>" . $conn->error . "</a>";
|
||||
$failed = true;
|
||||
}
|
||||
} else {
|
||||
echo "<a style=\"color: orange;\">Already Exists!</a>";
|
||||
}
|
||||
|
||||
|
||||
$conn->close();
|
||||
}
|
||||
|
||||
|
||||
?>
|
||||
<body style="background-color: #1e1e1e; color: white">
|
||||
<form action="AutoInsertData.php" method="post">
|
||||
<label for="url">URL:</label><br>
|
||||
<input type="text" id="url" name="url" style="width:100%"><br>
|
||||
<label for="species">Species:</label><br>
|
||||
<input type="text" id="species" name="species" style="width:100%"><br>
|
||||
<label for="nsfw">NSFW:</label><br>
|
||||
<input type="text" id="nsfw" name="nsfw" value="0" style="width:100%">
|
||||
<button type="submit">Submit</button>
|
||||
</form>
|
||||
<br>
|
||||
<br>
|
||||
<?php
|
||||
|
||||
echo "
|
||||
'" . $c->name . "', <br>
|
||||
'" . ($c->price_cents / 100) . "', <br>
|
||||
'" . $currency->$currencyOutput . "', <br>
|
||||
'" . $url . "', <br>
|
||||
'" . $thumbnailURL . "', <br>
|
||||
'" . $c->seller->name . "', <br>
|
||||
'" . $rating . "', <br>
|
||||
'" . $species . "',<br>
|
||||
'" . $nsfw . "',<br>
|
||||
2";
|
||||
|
||||
?>
|
||||
@@ -0,0 +1,65 @@
|
||||
<?php
|
||||
|
||||
//$_GET["sort"] = "free";
|
||||
//$_GET["t"] = "davali";
|
||||
|
||||
|
||||
$o = "";
|
||||
|
||||
require_once("../lib.php");
|
||||
$mflib = new MFLib();
|
||||
|
||||
require_once("../elements.php");
|
||||
$mfelements = new MFElements();
|
||||
|
||||
$actual_link = $mflib->getLink();
|
||||
|
||||
$mflib->limitperpage = 15;
|
||||
|
||||
$mflib->setCookie();
|
||||
session_start();
|
||||
|
||||
if ( isset($_GET["s"]) && $_GET["s"] == "61776746" ) {
|
||||
$_SESSION["adminmode"] = true;
|
||||
header("Location: https://furatalog.xyz/avatars/#insert");
|
||||
} else if ( isset($_GET["s"]) && $_GET["s"] == "59572354") {
|
||||
$_SESSION["adminmode"] = false;
|
||||
header("Location: https://furatalog.xyz/avatars/");
|
||||
}
|
||||
$mflib->initialize();
|
||||
|
||||
$wishlistArray = $mflib->dataGetWishlist();
|
||||
|
||||
if (!isset($_GET["p"])) $_GET["p"] = 1;
|
||||
|
||||
$o .= "<html>";
|
||||
$o .= $mfelements->printHead($wishlistArray);
|
||||
|
||||
$o .= "<body id=\"body\">";
|
||||
$o .= $mfelements->printSiteHeader();
|
||||
|
||||
$o .= "<div id=\"filter\" class=\"filter\" >";
|
||||
$o .= $mfelements->printFilterSection2($mflib, $actual_link);
|
||||
$o .= $mfelements->printAccountSection($mflib);
|
||||
$o .= "</div>";
|
||||
|
||||
$o .= $mfelements->printPreviewProductPage();
|
||||
|
||||
if (isset($_SESSION["adminmode"]) && $_SESSION["adminmode"] == true) {
|
||||
$o .= $mfelements->printAdminInsertData($mflib);
|
||||
}
|
||||
|
||||
$o .= $mfelements->printNavbar($mflib);
|
||||
|
||||
$o .= $mfelements->printPageContent($mflib, $wishlistArray);
|
||||
|
||||
$o .= $mfelements->printNSFWpromt($actual_link);
|
||||
|
||||
$o .= $mfelements->printFooter($mflib);
|
||||
|
||||
$o .= $mfelements->printJSLoginVar();
|
||||
$o .= $mfelements->printScriptSources();
|
||||
|
||||
$o .= "</body></html>";
|
||||
|
||||
echo $o;
|
||||
@@ -0,0 +1,32 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>Bestellungen</title>
|
||||
</head>
|
||||
<body>
|
||||
<form action="da.php" method="post">
|
||||
<h2>Ihre Bestellungen</h2>
|
||||
<p>Ihre Anrede lautet: </p>
|
||||
<p><input type="radio" name="anrede" checked="checked" value="m"> Herr
|
||||
<input type="radio" name="anrede" value="w"> Frau
|
||||
<input type="radio" name="anrede" value="c"> Firma
|
||||
</p>
|
||||
<p> Bitte geben Sie Ihren Namen ein: </p>
|
||||
<p><input type="text" name="meinname"></p>
|
||||
<p> Bitte geben Sie das Gewünschte gericht ein: </p>
|
||||
<p><input type="text" name="gericht"></p>
|
||||
<p> Bitte geben Sie die gewünschte Anzahl ein: </p>
|
||||
<p><select name="anzahl">
|
||||
<option value="1">1</option>
|
||||
<option value="2">2</option>
|
||||
<option value="3">3</option>
|
||||
<option value="4">4</option>
|
||||
<option value="5">5</option>
|
||||
<option value="6">6</option>
|
||||
</select></p>
|
||||
<p><input type="reset" value="Werte Zurücksetzten"><input type="submit" value="Senden"></p>
|
||||
</form>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,28 @@
|
||||
<?php
|
||||
$anrede = $_POST["anrede"];
|
||||
$meinname = $_POST["meinname"];
|
||||
$gericht = $_POST["gericht"];
|
||||
$anzahl = $_POST["anzahl"];
|
||||
|
||||
|
||||
if (
|
||||
isset($anrede) &&
|
||||
isset($meinname) &&
|
||||
isset($gericht) &&
|
||||
isset($anzahl)
|
||||
) {
|
||||
switch ($anrede) {
|
||||
case "w":
|
||||
echo "<p>Sehr geehrte Frau <b>" . $meinname . "</b>, </p>";
|
||||
break;
|
||||
case "m":
|
||||
echo "<p>Sehr geehrter Herr <b>" . $meinname . "</b>, </p>";
|
||||
break;
|
||||
default:
|
||||
echo "<p>Sehr geehrte <b>Damen und Herren</b>, </p>";
|
||||
break;
|
||||
}
|
||||
|
||||
echo "<p> Sie haben das Gericht <b>" . $gericht . " " . $anzahl . "</b> mal bestellt.";
|
||||
}
|
||||
?>
|
||||
@@ -0,0 +1,9 @@
|
||||
<?php
|
||||
$discordInvite = "Uf7p8f7Sbm";
|
||||
|
||||
$discordBase = "https://discord.gg/";
|
||||
$link = $discordBase . $discordInvite;
|
||||
|
||||
header("Location: " . $link);
|
||||
die();
|
||||
?>
|
||||
+826
@@ -0,0 +1,826 @@
|
||||
<?php
|
||||
class MFElements {
|
||||
function printHead($wishlistArray) {
|
||||
$tmp = "
|
||||
<head>
|
||||
<style id=\"styleshed\"></style>
|
||||
<link rel=\"stylesheet\" href=\"/assets/style/navbar.css\">
|
||||
<link rel=\"shortcut icon\" href=\"/assets/logo.ico\" type=\"image/x-icon\">
|
||||
|
||||
<link rel=\"stylesheet\" href=\"https://fonts.googleapis.com/icon?family=Material+Icons\" />
|
||||
<link rel=\"stylesheet\" href=\"https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css\">
|
||||
|
||||
<!--link rel=\"preload\" as=\"image\" href=\"https://booth.pximg.net/ac5dfed4-26bc-4308-86ad-e67e837e5d30/i/4560238/f762721d-4be8-47f1-9c3d-f5eec608ebc4_base_resized.jpg\"-->
|
||||
|
||||
<meta property=\"og:site_name\" content=\"Furatalog.xyz\">
|
||||
<meta property=\"og:title\" content=\"Furatalog - Avatar Assets, Bases and More\">
|
||||
<meta property=\"og:type\" content=\"website\" />
|
||||
<meta property=\"og:description\" content=\"A Collection of Furry Assets, Prebuild Furry Avatars and Furry Bases\">
|
||||
<meta property=\"og:image\" content=\"https://furatalog.xyz/assets/banner.png\">
|
||||
<meta property=\"og:url\" content=\"https://furatalog.xyz/\">
|
||||
|
||||
<!-- Twitter Meta Data -->
|
||||
<meta name=\"twitter:title\" content=\"Furatalog - Avatar Assets, Bases and More\">
|
||||
<meta name=\"twitter:description\" content=\"A Collection of Furry Assets, Prebuild Furry Avatars and Furry Bases\">
|
||||
<meta name=\"twitter:image\" content=\"https://furatalog.xyz/assets/banner.png\">
|
||||
<meta name=\"twitter:card\" content=\"summary_large_image\">
|
||||
<meta name=\"twitter:site\" content=\"@siskeldev\">
|
||||
|
||||
<!-- Discord Meta Data -->
|
||||
<meta name=\"theme-color\" content=\"#860086\">
|
||||
|
||||
<!-- Google Tag Manager -->
|
||||
<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
|
||||
new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
|
||||
j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
|
||||
'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
|
||||
})(window,document,'script','dataLayer','GTM-5BZW6TPR');</script>
|
||||
<!-- End Google Tag Manager -->
|
||||
|
||||
<!-- Google tag (gtag.js) -->
|
||||
<script async src=\"https://www.googletagmanager.com/gtag/js?id=G-2PMVNZWB8J\"></script>
|
||||
<script>
|
||||
window.dataLayer = window.dataLayer || [];
|
||||
function gtag(){dataLayer.push(arguments);}
|
||||
gtag('js', new Date());
|
||||
|
||||
gtag('config', 'G-2PMVNZWB8J');
|
||||
</script>
|
||||
|
||||
<!-- WishlistData -->
|
||||
<script id=\"wishlistScript\">
|
||||
var wishlistArray = " . json_encode($wishlistArray) . "
|
||||
</script>
|
||||
|
||||
<!-- Generic Meta Data -->
|
||||
<title>Home - Furatalog.xyz</title>
|
||||
|
||||
<meta charset=\"UTF-8\">
|
||||
<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">
|
||||
<meta name=\"robots\" content=\"index, nofollow\">
|
||||
|
||||
<meta name=\"description\" content=\"Furatalog - Avatar Assets, Bases and More\">
|
||||
<meta name=\"keywords\" content=\"Avatar, VRChat, Unity 2019, Unity 2022, Blender, Gumroad, \">
|
||||
<meta name=\"author\" content=\"© SiskelDev 2023\">";
|
||||
|
||||
if(isset($_SESSION["avali"]) && $_SESSION["avali"] == "true")
|
||||
$tmp = $tmp . "<link id=\"id1\" rel=\"stylesheet\" href=\"/assets/avali.css\">";
|
||||
|
||||
$tmp = $tmp . "</head>";
|
||||
|
||||
return $tmp;
|
||||
}
|
||||
|
||||
function printSiteHeader() {
|
||||
$tmp = "
|
||||
|
||||
<!-- Google Tag Manager (noscript) -->
|
||||
<noscript><iframe src=\"https://www.googletagmanager.com/ns.html?id=GTM-5BZW6TPR\" height=\"0\" width=\"0\" style=\"display:none;visibility:hidden\"></iframe></noscript>
|
||||
<!-- End Google Tag Manager (noscript) -->
|
||||
|
||||
<div class=\"header\" id=\"header\" style=\"cursor: default\">
|
||||
<h2>Furatalog.xyz</h2>
|
||||
<p>A Collection of Furry Assets, Prebuild Furry Avatars and Furry Bases</p>
|
||||
</div>";
|
||||
|
||||
return $tmp;
|
||||
}
|
||||
|
||||
function printFilterSection($mflib, $actual_link) {
|
||||
|
||||
//$actual_link = "https://furatalog.xyz/?t=rex&sort=free#fo";
|
||||
|
||||
/*if (str_contains($actual_link, "?sort")) {
|
||||
$actual_link_wo_sort = substr($actual_link, 0, strpos($actual_link, '?sort'));
|
||||
}
|
||||
|
||||
if (str_contains($actual_link, "&sort")) {
|
||||
$actual_link_wo_sort = substr($actual_link, 0, strpos($actual_link, '&sort'));
|
||||
}*/
|
||||
|
||||
if (str_contains($actual_link, "?sort") && !str_contains($actual_link, "&sort") || !str_contains($actual_link, "?")) {
|
||||
$actual_link = str_replace("?sort=priceup", "", $actual_link);
|
||||
$actual_link = str_replace("?sort=pricedown", "", $actual_link);
|
||||
$actual_link = str_replace("?sort=free", "", $actual_link);
|
||||
|
||||
$actual_link = str_replace("&sort=priceup", "", $actual_link);
|
||||
$actual_link = str_replace("&sort=pricedown", "", $actual_link);
|
||||
$actual_link = str_replace("&sort=free", "", $actual_link);
|
||||
|
||||
$addonSort = "?sort=";
|
||||
} else {
|
||||
$actual_link = str_replace("?sort=priceup", "", $actual_link);
|
||||
$actual_link = str_replace("?sort=pricedown", "", $actual_link);
|
||||
$actual_link = str_replace("?sort=free", "", $actual_link);
|
||||
|
||||
$actual_link = str_replace("&sort=priceup", "", $actual_link);
|
||||
$actual_link = str_replace("&sort=pricedown", "", $actual_link);
|
||||
$actual_link = str_replace("&sort=free", "", $actual_link);
|
||||
|
||||
$addonSort = "&sort=";
|
||||
}
|
||||
|
||||
|
||||
$tmp = "
|
||||
<div class=\"filter-inner\" id=\"filterdiv\" style=\"display: grid !important;\">
|
||||
<div class=\"filter-container-item\">
|
||||
<div>
|
||||
<h3>Sorting</h3>
|
||||
";
|
||||
|
||||
if (isset($_GET["sort"]) && $_GET["sort"] == "priceup") {
|
||||
$tmp .= "<a href=\"" . $actual_link . "\" class=\"activeA\">Price (Lowest - Highest)</a>";
|
||||
} else {
|
||||
$tmp .= "<a href=\"" . $actual_link . $addonSort . "priceup\">Price (Lowest - Highest)</a>";
|
||||
}
|
||||
|
||||
if (isset($_GET["sort"]) && $_GET["sort"] == "pricedown") {
|
||||
$tmp .= "<a href=\"" . $actual_link . "\" class=\"activeA\">Price (Highest - Lowest)</a>";
|
||||
} else {
|
||||
$tmp .= "<a href=\"" . $actual_link . $addonSort . "pricedown\">Price (Highest - Lowest)</a>";
|
||||
}
|
||||
|
||||
if (isset($_GET["sort"]) && $_GET["sort"] == "free") {
|
||||
$tmp .= "<a href=\"" . $actual_link . "\" class=\"activeA\">Free</a>";
|
||||
} else {
|
||||
$tmp .= "<a href=\"" . $actual_link . $addonSort . "free\">Free</a>";
|
||||
}
|
||||
|
||||
$tmp .= "
|
||||
</div>
|
||||
</div>
|
||||
<div class=\"filter-container-item\">
|
||||
<div>
|
||||
<h3>Settings</h3>";
|
||||
|
||||
if (str_contains($actual_link, "?") == false) {
|
||||
$addon = "?nsfw=";
|
||||
} else {
|
||||
$addon = "&nsfw=";
|
||||
}
|
||||
|
||||
if (isset($_GET["sort"])) {
|
||||
$addon2 = "&sort=" . $_GET["sort"];
|
||||
} else $addon2 = "";
|
||||
|
||||
if (isset($_SESSION["nsfw"]) && $_SESSION["nsfw"] == "true") {
|
||||
$tmp .= "
|
||||
<div>
|
||||
<a href=\"" . $actual_link . $addon . "false" . $addon2 . "\">Disable NSFW</a>
|
||||
</div>";
|
||||
} else {
|
||||
$tmp .= "
|
||||
<div>
|
||||
<a href=\"" . $actual_link . $addon . "true" . $addon2 . "\">Enable NSFW</a>
|
||||
</div>";
|
||||
}
|
||||
|
||||
if (isset($_SESSION["nsfw"]) && $_SESSION["nsfw"] == "true") {
|
||||
if (str_contains($actual_link, "?") == false) {
|
||||
$addon2 = "?nsfwblur=";
|
||||
} else {
|
||||
$addon2 = "&nsfwblur=";
|
||||
}
|
||||
|
||||
if (isset($_GET["sort"])) {
|
||||
$addon3 = "&sort=" . $_GET["sort"];
|
||||
} else $addon3 = "";
|
||||
|
||||
if ($_SESSION["nsfwblur"] == "true") {
|
||||
$tmp .= "
|
||||
<div>
|
||||
<a href=\"" . $actual_link . $addon2 . "false" . $addon3 . "\">Disable NSFW-Blur</a>
|
||||
</div>";
|
||||
} else {
|
||||
$tmp .= "
|
||||
<div>
|
||||
<a href=\"" . $actual_link . $addon2 . "true" . $addon3 . "\">Enable NSFW-Blur</a>
|
||||
</div>";
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
$tmp .= "<a onclick=\"AvaliMode();\" id=\"avaliMode\">Avali-Mode</a>
|
||||
</div>
|
||||
</div>";
|
||||
|
||||
if ($mflib->isItMobile == false) {
|
||||
$tmp .= "
|
||||
<div class=\"filter-container-item barFilterL\">
|
||||
|
||||
</div>
|
||||
<div class=\"filter-container-item barFilterR\">
|
||||
|
||||
</div>";
|
||||
} else {
|
||||
$tmp .= "
|
||||
<div class=\"filter-container-item mobileFilter\">
|
||||
|
||||
</div>";
|
||||
}
|
||||
$tmp .= "
|
||||
<div class=\"filter-container-item\">
|
||||
";
|
||||
|
||||
if (isset($_GET["s"])) {
|
||||
$tmpfilterS = "";
|
||||
}
|
||||
|
||||
if (isset($_GET["sort"])) {
|
||||
$sortaddon = "&sort=" . $_GET["sort"];
|
||||
} else {
|
||||
$sortaddon = "";
|
||||
}
|
||||
|
||||
|
||||
|
||||
$tmp .= "<div class=\"species-cat\">";
|
||||
foreach ($mflib->dataGetOverSpecies() as $row) {
|
||||
$tmp .= "<div class=\"species-cat-item\">";
|
||||
|
||||
$tmp .= "<h3>" . $row["name"] . "</h3>";
|
||||
|
||||
foreach ($mflib->dataGetSpecies($row["tag"]) as $row2) {
|
||||
|
||||
if ($mflib->current_speciesShort == $row2["shorted"]) {
|
||||
$temp = "class=\"activeA\"";
|
||||
$tempA = "/";
|
||||
if (isset($_GET["s"]) && $_GET["s"]) {
|
||||
$tempA .= "?s=" . $_GET["s"];
|
||||
}
|
||||
} else {
|
||||
$temp = "";
|
||||
if (isset($_GET["s"]) && $_GET["s"]) {
|
||||
$tempA = "?t=" . $row2["shorted"] . "";
|
||||
$tempA .= "&s=" . $_GET["s"];
|
||||
} else {
|
||||
$tempA = "?t=" . $row2["shorted"] . "";
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
$tmp .= "<a " . $temp . " href=\"" . $tempA . $sortaddon . "\">" . $row2["species"] . "</a>";
|
||||
}
|
||||
|
||||
$tmp .= "</div>";
|
||||
}
|
||||
$tmp .= "</div>";
|
||||
|
||||
$tmp .= "<h3>Others</h3>";
|
||||
|
||||
foreach ($mflib->dataGetOtherSpecies() as $row) {
|
||||
|
||||
if ($mflib->current_speciesShort == $row["shorted"]) {
|
||||
$temp = "class=\"activeA\"";
|
||||
$tempA = "/";
|
||||
if (isset($_GET["s"]) && $_GET["s"] != "") {
|
||||
$tempA .= "?s=" . $_GET["s"];
|
||||
}
|
||||
} else {
|
||||
$temp = "";
|
||||
if (isset($_GET["s"]) && $_GET["s"] != "") {
|
||||
$tempA = "?t=" . $row["shorted"] . "";
|
||||
$tempA .= "&s=" . $_GET["s"];
|
||||
|
||||
} else {
|
||||
$tempA = "?t=" . $row["shorted"] . "";
|
||||
}
|
||||
}
|
||||
|
||||
$tmp .= "<a " . $temp . " href=\"" . $tempA . $sortaddon . "\">" . $row["species"] . "</a>";
|
||||
}
|
||||
$tmp .= "
|
||||
</div>";
|
||||
|
||||
if ($mflib->isItMobile == true) {
|
||||
$tmp .= "
|
||||
<div class=\"filter-container-item mobileFilter\">
|
||||
|
||||
</div>";
|
||||
}
|
||||
|
||||
$tmp .= "
|
||||
<div class=\"filter-container-item\">
|
||||
<h3>Base Links</h3>";
|
||||
|
||||
foreach ($mflib->dataGetAllSpecies() as $row) {
|
||||
$tmp .= "<a href=\"" . $row["base_link"] . "\">" . $row["species"] . "</a>";
|
||||
}
|
||||
$tmp .= " </div>
|
||||
<div class=\"filter-last\">
|
||||
</div>
|
||||
</div>";
|
||||
|
||||
|
||||
return $tmp;
|
||||
}
|
||||
|
||||
function printFilterSection2($mflib, $actual_link) {
|
||||
if (str_contains($actual_link, "?sort") && !str_contains($actual_link, "&sort") || !str_contains($actual_link, "?")) {
|
||||
$actual_link = str_replace("?sort=priceup", "", $actual_link);
|
||||
$actual_link = str_replace("?sort=pricedown", "", $actual_link);
|
||||
$actual_link = str_replace("?sort=free", "", $actual_link);
|
||||
|
||||
$actual_link = str_replace("&sort=priceup", "", $actual_link);
|
||||
$actual_link = str_replace("&sort=pricedown", "", $actual_link);
|
||||
$actual_link = str_replace("&sort=free", "", $actual_link);
|
||||
|
||||
$addonSort = "?sort=";
|
||||
} else {
|
||||
$actual_link = str_replace("?sort=priceup", "", $actual_link);
|
||||
$actual_link = str_replace("?sort=pricedown", "", $actual_link);
|
||||
$actual_link = str_replace("?sort=free", "", $actual_link);
|
||||
|
||||
$actual_link = str_replace("&sort=priceup", "", $actual_link);
|
||||
$actual_link = str_replace("&sort=pricedown", "", $actual_link);
|
||||
$actual_link = str_replace("&sort=free", "", $actual_link);
|
||||
|
||||
$addonSort = "&sort=";
|
||||
}
|
||||
|
||||
|
||||
$tmp = "
|
||||
<div class=\"filter-inner\" id=\"filterdiv\" style=\"display: grid !important;\">
|
||||
<div class=\"filter-container-item\">
|
||||
<div>
|
||||
<h3>Sorting</h3>
|
||||
";
|
||||
|
||||
if (isset($_GET["sort"]) && $_GET["sort"] == "priceup") {
|
||||
$tmp .= "<a href=\"" . $actual_link . "\" class=\"activeA\">Price (Lowest - Highest)</a>";
|
||||
} else {
|
||||
$tmp .= "<a href=\"" . $actual_link . $addonSort . "priceup\">Price (Lowest - Highest)</a>";
|
||||
}
|
||||
|
||||
if (isset($_GET["sort"]) && $_GET["sort"] == "pricedown") {
|
||||
$tmp .= "<a href=\"" . $actual_link . "\" class=\"activeA\">Price (Highest - Lowest)</a>";
|
||||
} else {
|
||||
$tmp .= "<a href=\"" . $actual_link . $addonSort . "pricedown\">Price (Highest - Lowest)</a>";
|
||||
}
|
||||
|
||||
if (isset($_GET["sort"]) && $_GET["sort"] == "free") {
|
||||
$tmp .= "<a href=\"" . $actual_link . "\" class=\"activeA\">Free</a>";
|
||||
} else {
|
||||
$tmp .= "<a href=\"" . $actual_link . $addonSort . "free\">Free</a>";
|
||||
}
|
||||
|
||||
$tmp .= "
|
||||
</div>
|
||||
</div>
|
||||
<div class=\"filter-container-item\">
|
||||
<div>
|
||||
<h3>Settings</h3>";
|
||||
|
||||
if (str_contains($actual_link, "?") == false) {
|
||||
$addon = "?nsfw=";
|
||||
} else {
|
||||
$addon = "&nsfw=";
|
||||
}
|
||||
|
||||
if (isset($_GET["sort"])) {
|
||||
$addon2 = "&sort=" . $_GET["sort"];
|
||||
} else $addon2 = "";
|
||||
|
||||
if (isset($_SESSION["nsfw"]) && $_SESSION["nsfw"] == "true") {
|
||||
$tmp .= "
|
||||
<div>
|
||||
<a href=\"" . $actual_link . $addon . "false" . $addon2 . "\">Disable NSFW</a>
|
||||
</div>";
|
||||
} else {
|
||||
$tmp .= "
|
||||
<div>
|
||||
<a href=\"" . $actual_link . $addon . "true" . $addon2 . "\">Enable NSFW</a>
|
||||
</div>";
|
||||
}
|
||||
|
||||
if (isset($_SESSION["nsfw"]) && $_SESSION["nsfw"] == "true") {
|
||||
if (str_contains($actual_link, "?") == false) {
|
||||
$addon2 = "?nsfwblur=";
|
||||
} else {
|
||||
$addon2 = "&nsfwblur=";
|
||||
}
|
||||
|
||||
if (isset($_GET["sort"])) {
|
||||
$addon3 = "&sort=" . $_GET["sort"];
|
||||
} else $addon3 = "";
|
||||
|
||||
if ($_SESSION["nsfwblur"] == "true") {
|
||||
$tmp .= "
|
||||
<div>
|
||||
<a href=\"" . $actual_link . $addon2 . "false" . $addon3 . "\">Disable NSFW-Blur</a>
|
||||
</div>";
|
||||
} else {
|
||||
$tmp .= "
|
||||
<div>
|
||||
<a href=\"" . $actual_link . $addon2 . "true" . $addon3 . "\">Enable NSFW-Blur</a>
|
||||
</div>";
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
$tmp .= "<a onclick=\"AvaliMode();\" id=\"avaliMode\">Avali-Mode</a>
|
||||
</div>
|
||||
</div>";
|
||||
$tmp .= "
|
||||
<div class=\"filter-container-item\">
|
||||
";
|
||||
if (isset($_GET["s"])) {
|
||||
$tmpfilterS = "";
|
||||
}
|
||||
|
||||
if (isset($_GET["sort"])) {
|
||||
$sortaddon = "&sort=" . $_GET["sort"];
|
||||
} else {
|
||||
$sortaddon = "";
|
||||
}
|
||||
|
||||
$tmp .= "<div class=\"species-cat\">";
|
||||
$tmp .= "</div>";
|
||||
$tmp .= "
|
||||
</div>";
|
||||
|
||||
if ($mflib->isItMobile == true) {
|
||||
$tmp .= "
|
||||
<div class=\"filter-container-item mobileFilter\">
|
||||
|
||||
</div>";
|
||||
}
|
||||
$tmp .= "
|
||||
<div class=\"filter-last\">
|
||||
</div>
|
||||
</div>";
|
||||
|
||||
|
||||
return $tmp;
|
||||
}
|
||||
|
||||
function printAccountSection($mflib) {
|
||||
|
||||
$tmp = "<div class=\"filter-inner-acc\" id=\"accdiv\" style=\"display: none !important;\">
|
||||
<div class=\"filter-container-item\">";
|
||||
|
||||
if (!isset($_SESSION["uuid"])) {
|
||||
$tmp .= "
|
||||
<div id=\"login-form\">
|
||||
<h2>Wishlist</h2>
|
||||
<br><br>
|
||||
<form action=\"/login.php\" method=\"post\">
|
||||
<input name=\"uuid\" type=\"text\" id=\"uuidInput\" placeholder=\"Wishlist-ID\">
|
||||
<button id=\"login-button\">Login</button>
|
||||
</form>
|
||||
<br>
|
||||
<div class=\"line\"></div>
|
||||
<br>
|
||||
<form action=\"/register.php\">
|
||||
<button id=\"reg-button\">Register</button>
|
||||
</form>
|
||||
<br>
|
||||
<a>Please Save your Wishlist-ID to access it after logout.</a><br>
|
||||
<a>When Registering a new Wishlist, be aware that the wishlist will be Deletet after 1 year of not using the Wishlist.</a>
|
||||
</div>";
|
||||
} else {
|
||||
$tmp .= "
|
||||
<div id=\"login-form\">
|
||||
<h2>Wishlist</h2>
|
||||
<p>Your Wishlist-ID:</p><a>" . $_SESSION["uuid"] . "</a>
|
||||
<br>
|
||||
<form action=\"/logout.php\">
|
||||
<button id=\"logout-button\">Logout</button>
|
||||
</form>
|
||||
</div>";
|
||||
}
|
||||
|
||||
$tmp .= "</div>";
|
||||
|
||||
if (isset($_SESSION["uuid"]) && $_SESSION["uuid"] != "") {
|
||||
if ($mflib->dataGetWishlist() != null) {
|
||||
$tmp .= "
|
||||
<table id=\"wishlist\">
|
||||
|
||||
<tr>
|
||||
<th>Item Name</th>
|
||||
<th>Price</th>
|
||||
<th>Creator</th>
|
||||
<th>Rating</th>
|
||||
<th>Edit</th>
|
||||
</tr>";
|
||||
|
||||
foreach ($mflib->dataGetWishlist() as $row) {
|
||||
if (strlen($row["name"]) >= 40) {
|
||||
$NAME = substr(substr($row["name"], 0, 40), 0, strrpos(substr($row["name"], 0, 40), ' ')) . " ...";
|
||||
} else $NAME = $row["name"];
|
||||
|
||||
if (!isset($row["rating"])) {
|
||||
$row["rating"] = "None";
|
||||
}
|
||||
|
||||
$tmp .= "
|
||||
<tr>
|
||||
<td alt=\"" . $row["name"] . "\"><a href=\"" . $row["url_link"] . "\">" . $NAME . "</td>
|
||||
<td>" . $row["currency"] . "" . str_replace(".00", "", sprintf ("%.2f", $row["price"])) . "</td>
|
||||
<td>" . $row["creator"] . "</td>
|
||||
<td>" . $row["rating"] . "</td>
|
||||
<td><a class=\"deletebutton\" id=\"del\" itemid=\"" . $row["id"] . "\">Delete</a></td>
|
||||
</tr>";
|
||||
}
|
||||
|
||||
$tmp .= "</table>";
|
||||
} else {
|
||||
//$tmp .= "<table id=\"wishlist\"><p>You have nothing currently in your Wishlist</p></table>";
|
||||
$tmp .= "<table id=\"wishlist\"></table>";
|
||||
}
|
||||
} else {
|
||||
$tmp .= "<table id=\"wishlist\"></table>";
|
||||
}
|
||||
|
||||
$tmp .= "</div>";
|
||||
|
||||
return $tmp;
|
||||
}
|
||||
|
||||
function printPreviewProductPage() {
|
||||
return "
|
||||
<div id=\"previewProduct\" class=\"\">
|
||||
<div class=\"backback\" onclick=\"backback()\">
|
||||
|
||||
</div>
|
||||
<div id=\"productPage\">
|
||||
<div id=\"productLoading\">
|
||||
<div class=\"loader\"></div>
|
||||
</div>
|
||||
<div class=\"productImages\">
|
||||
<div id=\"productImageContainer\">
|
||||
</div>
|
||||
<div id=\"productImageContainerButtons\">
|
||||
<a class=\"first\" onclick=\"plusDivs(-1)\">
|
||||
<button class=\"w3-button w3-black w3-display-left\" onclick=\"plusDivs(-1)\">❮</button>
|
||||
</a>
|
||||
<a class=\"second\" onclick=\"plusDivs(1)\">
|
||||
<button class=\"w3-button w3-black w3-display-right\" onclick=\"plusDivs(1)\">❯</button>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
<div id=\"productDescription\">
|
||||
</div>
|
||||
<div id=\"productMetaData\">
|
||||
<div id=\"productMetaDataContainer\">
|
||||
<div id=\"creatorSection\">
|
||||
<img id=\"creatorImg\" src=\"\" alt=\"\">
|
||||
<a id=\"creatorName\"></a>
|
||||
</div>
|
||||
<div id=\"containsSection\">
|
||||
|
||||
</div>
|
||||
<div id=\"ratingSection\">
|
||||
<a id=\"R5\" class=\"RGlobal\">⭐5 <g id=\"g5\">(1)</g><div id=\"progressbar\"><div id=\"progressFiller5\" class=\"pfGlobal\"></div></div></a>
|
||||
<a id=\"R4\" class=\"RGlobal\">⭐4 <g id=\"g4\">(1)</g><div id=\"progressbar\"><div id=\"progressFiller4\" class=\"pfGlobal\"></div></div></a>
|
||||
<a id=\"R3\" class=\"RGlobal\">⭐3 <g id=\"g3\">(1)</g><div id=\"progressbar\"><div id=\"progressFiller3\" class=\"pfGlobal\"></div></div></a>
|
||||
<a id=\"R2\" class=\"RGlobal\">⭐2 <g id=\"g2\">(1)</g><div id=\"progressbar\"><div id=\"progressFiller2\" class=\"pfGlobal\"></div></div></a>
|
||||
<a id=\"R1\" class=\"RGlobal\">⭐1 <g id=\"g1\">(1)</g><div id=\"progressbar\"><div id=\"progressFiller1\" class=\"pfGlobal\"></div></div></a>
|
||||
</div>
|
||||
<div id=\"purchaseSection\">
|
||||
<a id=\"purchasePrice\"></a>
|
||||
<a id=\"gotoproduct\">Get on -----!</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id=\"purchaseSection2\">
|
||||
<a id=\"purchasePrice2\"></a>
|
||||
<a id=\"gotoproduct2\">Get on -----!</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
";
|
||||
}
|
||||
|
||||
function printAdminInsertData($mflib) {
|
||||
return "
|
||||
<div id=\"insertData\" class=\"\">
|
||||
<div class=\"backback\" onclick=\"backback()\"></div>
|
||||
<div id=\"insertWindow\">
|
||||
<iframe src=\"https://furatalog.xyz/AutoInsertData.php?section=" . $mflib->currentSection . "\" height=\"100%\" width=\"100%\" style=\"border: none\"></iframe>
|
||||
</div>
|
||||
</div>";
|
||||
}
|
||||
|
||||
function printNavbar($mflib) {
|
||||
|
||||
$tmp = "
|
||||
|
||||
<div id=\"navbar\">
|
||||
" . /*<a class=\"nav-spacer\"></a> */ "
|
||||
<a id=\"homebutton\" href=\"/\" style=\"cursor: pointer;\">Home</a>
|
||||
<a class=\"nav-spacer\">|</a>";
|
||||
|
||||
|
||||
if ($mflib->currentSection == 1) {
|
||||
$tmp .= "<a id=\"sectionbutton\" href=\"/avatar-assets/\" style=\"cursor: pointer;\">Avatar-Assets</a>";
|
||||
} else if ($mflib->currentSection == 2) {
|
||||
$tmp .= "<a id=\"sectionbutton\" href=\"/avatars/\" style=\"cursor: pointer;\">Prebuild Avatars</a>";
|
||||
} else if ($mflib->currentSection == 3) {
|
||||
$tmp .= "<a id=\"sectionbutton\" href=\"/avatar-bases/\" style=\"cursor: pointer;\">Avatar-Bases</a>";
|
||||
} else if ($mflib->currentSection == 4) {
|
||||
$tmp .= "<a id=\"sectionbutton\" href=\"/worlds/\" style=\"cursor: pointer;\">Worlds</a>";
|
||||
}
|
||||
|
||||
|
||||
$tmp .= "
|
||||
<a class=\"nav-spacer\">|</a>
|
||||
<a id=\"filterbutton\" href=\"#fo\" style=\"cursor: pointer;\">Filter</a>
|
||||
<a id=\"accbutton\" href=\"#acc\" style=\"cursor: pointer;\">Account</a>
|
||||
<a class=\"nav-spacer\">|</a>
|
||||
<a id=\"discordbutton\" href=\"/discord\" style=\"cursor: pointer;\">Discord Server</a>
|
||||
";
|
||||
|
||||
if (isset($_SESSION["adminmode"]) && $_SESSION["adminmode"]) {
|
||||
$tmp .= "<a id=\"insertbutton\" href=\"#insert\" style=\"cursor: pointer;\">Insert New Data</a>
|
||||
<a id=\"insertbutton\" href=\"?s=59572354\" style=\"cursor: pointer;\">Disable AdminMode</a>";
|
||||
}
|
||||
|
||||
$tmp .= "
|
||||
<a> </a>
|
||||
|
||||
|
||||
|
||||
|
||||
<div id=\"searchdiv\" style=\"float: right; \">
|
||||
<a class=\"searchtxt\" id=\"stxt\" style=\"float: left;\" onclick=\"searchInputFocus()\">Search</a>
|
||||
<form class=\"searchfield\" action=\"\" method=\"get\">
|
||||
<input onblur=\"searchBlur()\" onfocus=\"searchFocus()\" id=\"sinp\" class=\"toFloataway\" name=\"s\" type=\"text\" ";
|
||||
if (isset($_GET["s"]))
|
||||
$tmp .= "value=\"" . $mflib->searchQuery . "\"";
|
||||
$tmp .= "/>";
|
||||
if (isset($_GET["t"])) {
|
||||
$tmp .= "<input style=\"display: none;\" name=\"t\" value=\"" . $_GET["t"] . "\">";
|
||||
}
|
||||
$tmp .= "
|
||||
<input class=\"btn\" type=\"submit\"/>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
<a id=\"menubutton\" href=\"javascript:void(0);\" onclick=\"menu()\"><i class=\"fa fa-bars\"></i></a>
|
||||
</div>";
|
||||
|
||||
return $tmp;
|
||||
}
|
||||
|
||||
function printPageContent($mflib, $wishlistArray) {
|
||||
$tmp = "<div class=\"row\">";
|
||||
|
||||
foreach ($mflib->dataGetPageContent() as $row) {
|
||||
$tmp .= "<div class=\"column\">";
|
||||
|
||||
if (isset($_SESSION["nsfwblur"]) && $_SESSION["nsfwblur"] == true) {
|
||||
if (isset($row["nsfw"]) && $row["nsfw"] == 1)
|
||||
$tmp .= "
|
||||
<div class=\"nsfw-filter\">
|
||||
<a class=\"txt\">NSFW Content</a></br></br>
|
||||
<a class=\"btn\">Click to Show</a>
|
||||
</div>
|
||||
";
|
||||
}
|
||||
|
||||
if (strlen($row["name"]) >= 40) {
|
||||
$NAME = substr(substr($row["name"], 0, 40), 0, strrpos(substr($row["name"], 0, 40), ' ')) . " ...";
|
||||
} else $NAME = $row["name"];
|
||||
|
||||
$tmp .= "
|
||||
<a href='" . $row["url_link"] . "' class=\"imagecontainer\">
|
||||
<img class=\"imgItem\" src=\"" . $row["url_image"] . "\">
|
||||
";
|
||||
|
||||
//if (!$mflib->isItMobile)
|
||||
$tmp .= "
|
||||
<a href=\"#p" . $row["id"] . "\" class=\"previewButton\">Preview</a>
|
||||
";
|
||||
|
||||
if (isset($_SESSION["uuid"]) && $_SESSION["uuid"] != null) {
|
||||
$liked = false;
|
||||
|
||||
if ($wishlistArray != null) {
|
||||
foreach ($wishlistArray as $k) {
|
||||
if ($row["id"] == $k["id"]) {
|
||||
$liked = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if ($liked) {
|
||||
$tmp .= "<a class=\"likeButton\" itemid=\"" . $row["id"] . "\"><icon>favorite</icon></a>";
|
||||
} else {
|
||||
$tmp .= "<a class=\"likeButton\" itemid=\"" . $row["id"] . "\"><icon>favorite_border</icon></a>";
|
||||
}
|
||||
}
|
||||
|
||||
if (!isset($row["rating"])) {
|
||||
$row["rating"] = "None";
|
||||
}
|
||||
|
||||
$tmp .= "
|
||||
</a>
|
||||
<header>
|
||||
<a title=\"" . $row["name"] . "\">" . $NAME . "</a>
|
||||
<a style=\"text-decoration: underline;z-index: 90;\" href=\"?s=" . $row["creator"] . "\">" . $row["creator"] . "</a>
|
||||
<a>⭐" . $row["rating"] . "</a>
|
||||
</header>
|
||||
<footer>
|
||||
";
|
||||
|
||||
//print_r($row);
|
||||
|
||||
$tmp .= "
|
||||
<a>" . $row["currency"] . "" . str_replace(".00", "", sprintf ("%.2f", ($row["price"] / 100))) . "</a>
|
||||
</footer>
|
||||
</div>
|
||||
";
|
||||
}
|
||||
|
||||
$tmp .= "</div>";
|
||||
|
||||
return $tmp;
|
||||
}
|
||||
|
||||
function printNSFWpromt($actual_link) {
|
||||
$tmp = "";
|
||||
|
||||
if (str_contains($actual_link, "?") == false) {
|
||||
$addon = "?nsfw=";
|
||||
} else {
|
||||
$addon = "&nsfw=";
|
||||
}
|
||||
|
||||
if (!isset($_SESSION["promtshown"])) {
|
||||
$tmp .= "
|
||||
<div class=\"nsfw-ask\">
|
||||
<a class=\"nsfw-text\">Do you want to see NSFW Content? </a>
|
||||
<br>
|
||||
<div class=\"btns\">
|
||||
<a class=\"nsfwbtn\" href=\"" . $actual_link . $addon . "true\">Yes</a>
|
||||
<a class=\"nsfwbtn\" href=\"" . $actual_link . $addon . "false\">No</a>
|
||||
</div>
|
||||
</div>";
|
||||
}
|
||||
|
||||
if (!isset($_SESSION["promtshown"])) {
|
||||
$tmp .= "<div class=\"discord-wp\">";
|
||||
} else {
|
||||
$tmp .= "<div class=\"discord\">";
|
||||
}
|
||||
|
||||
$tmp .= "
|
||||
<a class=\"discord-text\">Join The Discord Server</a>
|
||||
<br>
|
||||
<div class=\"discord-btns\">
|
||||
<a class=\"discordbtn\" href=\"/discord\">Join Now</a>
|
||||
</div>
|
||||
</div>";
|
||||
|
||||
return $tmp;
|
||||
}
|
||||
|
||||
function printFooter($mflib) {
|
||||
$tmp = "
|
||||
<div class=\"footer\" id=\"footer\">
|
||||
<div class=\"pagenav\">";
|
||||
$tmp .= $mflib->footerBackArrow();
|
||||
$tmp .= $mflib->footerBackDots();
|
||||
$tmp .= $mflib->footerPages();
|
||||
$tmp .= $mflib->footerForwardDots();
|
||||
$tmp .= $mflib->footerForwardArrow();
|
||||
$tmp .= "</div>
|
||||
</div>";
|
||||
|
||||
return $tmp;
|
||||
}
|
||||
|
||||
function printJSLoginVar() {
|
||||
$tmp = "";
|
||||
|
||||
if(isset($_SESSION["uuid"]) && $_SESSION["uuid"] != "") {
|
||||
$tmp .= "<script>
|
||||
var login = true;
|
||||
</script>";
|
||||
} else {
|
||||
$tmp .= "<script>
|
||||
var login = false;
|
||||
</script>";
|
||||
}
|
||||
|
||||
return $tmp;
|
||||
}
|
||||
|
||||
function printScriptSources() {
|
||||
return "
|
||||
<script src=\"/assets/scripts/default-functions.js\"></script>
|
||||
<script src=\"/assets/scripts/script.js\"></script>
|
||||
<script src=\"/assets/scripts/account.js\"></script>
|
||||
<script src=\"/assets/scripts/avali.js\"></script>
|
||||
<script src=\"/assets/scripts/modal.js\"></script>
|
||||
<script src=\"/assets/scripts/preview.js\"></script>
|
||||
<script src=\"/assets/scripts/filter.js\"></script>
|
||||
<script src=\"/assets/scripts/event-listener.js\"></script>
|
||||
<script src=\"/assets/scripts/search.js\"></script>
|
||||
<script src=\"/assets/scripts/variables.js\"></script>";
|
||||
}
|
||||
}
|
||||
+432
@@ -0,0 +1,432 @@
|
||||
<head>
|
||||
<style>
|
||||
body,
|
||||
html {
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
font-family: 'Quicksand', sans-serif;
|
||||
font-weight: 400;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.writing {
|
||||
width: 320px;
|
||||
height: 200px;
|
||||
background-color: #3f3f3f;
|
||||
border: 1px solid #bbbbbb;
|
||||
border-radius: 6px 6px 4px 4px;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.writing .topbar{
|
||||
position: absolute;
|
||||
width: 100%;
|
||||
height: 12px;
|
||||
background-color: #f1f1f1;
|
||||
border-top-left-radius: 4px;
|
||||
border-top-right-radius: 4px;
|
||||
}
|
||||
|
||||
.writing .topbar div{
|
||||
height: 6px;
|
||||
width: 6px;
|
||||
border-radius: 50%;
|
||||
margin: 3px;
|
||||
float: left;
|
||||
}
|
||||
|
||||
.writing .topbar div.green{
|
||||
background-color: #60d060;
|
||||
}
|
||||
.writing .topbar div.red{
|
||||
background-color: red;
|
||||
}
|
||||
.writing .topbar div.yellow{
|
||||
background-color: #e6c015;
|
||||
}
|
||||
|
||||
.writing .code {
|
||||
padding: 15px;
|
||||
}
|
||||
|
||||
.writing .code ul {
|
||||
list-style: none;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.writing .code ul li {
|
||||
background-color: #9e9e9e;
|
||||
width: 0;
|
||||
height: 7px;
|
||||
border-radius: 6px;
|
||||
margin: 10px 0;
|
||||
}
|
||||
|
||||
.container {
|
||||
display: -webkit-box;
|
||||
display: -ms-flexbox;
|
||||
display: flex;
|
||||
-webkit-box-align: center;
|
||||
-ms-flex-align: center;
|
||||
align-items: center;
|
||||
-webkit-box-pack: center;
|
||||
-ms-flex-pack: center;
|
||||
justify-content: center;
|
||||
height: 100vh;
|
||||
width: 100%;
|
||||
-webkit-transition: -webkit-transform .5s;
|
||||
transition: -webkit-transform .5s;
|
||||
transition: transform .5s;
|
||||
transition: transform .5s, -webkit-transform .5s;
|
||||
}
|
||||
|
||||
.stack-container {
|
||||
position: relative;
|
||||
width: 420px;
|
||||
height: 210px;
|
||||
-webkit-transition: width 1s, height 1s;
|
||||
transition: width 1s, height 1s;
|
||||
}
|
||||
|
||||
.pokeup {
|
||||
-webkit-transition: all .3s ease;
|
||||
transition: all .3s ease;
|
||||
}
|
||||
|
||||
.pokeup:hover {
|
||||
-webkit-transform: translateY(-10px);
|
||||
transform: translateY(-10px);
|
||||
-webkit-transition: .3s ease;
|
||||
transition: .3s ease;
|
||||
}
|
||||
|
||||
|
||||
.error {
|
||||
width: 400px;
|
||||
padding: 40px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.error h1 {
|
||||
font-size: 125px;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
font-weight: 700;
|
||||
}
|
||||
|
||||
.error h2 {
|
||||
margin: -30px 0 0 0;
|
||||
padding: 0px;
|
||||
font-size: 47px;
|
||||
letter-spacing: 12px;
|
||||
}
|
||||
|
||||
.perspec {
|
||||
-webkit-perspective: 1000px;
|
||||
perspective: 1000px;
|
||||
}
|
||||
|
||||
.writeLine{
|
||||
-webkit-animation: writeLine .4s linear forwards;
|
||||
animation: writeLine .4s linear forwards;
|
||||
}
|
||||
|
||||
.explode{
|
||||
-webkit-animation: explode .5s ease-in-out forwards;
|
||||
animation: explode .5s ease-in-out forwards;
|
||||
}
|
||||
|
||||
.card {
|
||||
-webkit-animation: tiltcard .5s ease-in-out 1s forwards;
|
||||
animation: tiltcard .5s ease-in-out 1s forwards;
|
||||
position: absolute;
|
||||
}
|
||||
|
||||
@-webkit-keyframes tiltcard {
|
||||
0% {
|
||||
-webkit-transform: rotateY(0deg);
|
||||
transform: rotateY(0deg);
|
||||
}
|
||||
|
||||
100% {
|
||||
-webkit-transform: rotateY(-30deg);
|
||||
transform: rotateY(-30deg);
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes tiltcard {
|
||||
0% {
|
||||
-webkit-transform: rotateY(0deg);
|
||||
transform: rotateY(0deg);
|
||||
}
|
||||
|
||||
100% {
|
||||
-webkit-transform: rotateY(-30deg);
|
||||
transform: rotateY(-30deg);
|
||||
}
|
||||
}
|
||||
|
||||
@-webkit-keyframes explode {
|
||||
0% {
|
||||
-webkit-transform: translate(0, 0) scale(1);
|
||||
transform: translate(0, 0) scale(1);
|
||||
}
|
||||
|
||||
100% {
|
||||
-webkit-transform: translate(var(--spreaddist), var(--vertdist)) scale(var(--scaledist));
|
||||
transform: translate(var(--spreaddist), var(--vertdist)) scale(var(--scaledist));
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes explode {
|
||||
0% {
|
||||
-webkit-transform: translate(0, 0) scale(1);
|
||||
transform: translate(0, 0) scale(1);
|
||||
}
|
||||
|
||||
100% {
|
||||
-webkit-transform: translate(var(--spreaddist), var(--vertdist)) scale(var(--scaledist));
|
||||
transform: translate(var(--spreaddist), var(--vertdist)) scale(var(--scaledist));
|
||||
}
|
||||
}
|
||||
|
||||
@-webkit-keyframes writeLine {
|
||||
0% {
|
||||
width:0;
|
||||
}
|
||||
|
||||
100% {
|
||||
width: var(--linelength);
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes writeLine {
|
||||
0% {
|
||||
width:0;
|
||||
}
|
||||
|
||||
100% {
|
||||
width: var(--linelength);
|
||||
}
|
||||
}
|
||||
|
||||
@media screen and (max-width: 1000px) {
|
||||
.container {
|
||||
-webkit-transform: scale(.85);
|
||||
transform: scale(.85);
|
||||
}
|
||||
}
|
||||
|
||||
@media screen and (max-width: 850px) {
|
||||
.container {
|
||||
-webkit-transform: scale(.75);
|
||||
transform: scale(.75);
|
||||
}
|
||||
}
|
||||
|
||||
@media screen and (max-width: 775px) {
|
||||
.container {
|
||||
-ms-flex-wrap: wrap-reverse;
|
||||
flex-wrap: wrap-reverse;
|
||||
-webkit-box-align: inherit;
|
||||
-ms-flex-align: inherit;
|
||||
align-items: inherit;
|
||||
}
|
||||
}
|
||||
|
||||
@media screen and (max-width: 370px) {
|
||||
.container {
|
||||
-webkit-transform: scale(.6);
|
||||
transform: scale(.6);
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
<div class="container">
|
||||
<div class="error">
|
||||
<h1>400</h1>
|
||||
<h2>error</h2>
|
||||
<p>Ein Fehler ist aufgetreten</p>
|
||||
<p> </p>
|
||||
<a onclick="history.go(0)" style="border: 0px; background-color: rgb(59, 0, 253); border-radius: 5px; padding: 9px; padding-left: 85px; padding-right: 85px; color: white; cursor: pointer;">Neuladen</a><br/><br/>
|
||||
<a onclick="window.location='/'" style="border: 0px; background-color: #bfc0c2; border-radius: 5px; padding: 9px; padding-left: 72px; padding-right: 71px; color: black; cursor: pointer;">Zur Startseite</a>
|
||||
</div>
|
||||
<div class="stack-container">
|
||||
<div class="card-container">
|
||||
<div class="perspec" style="--spreaddist: 125px; --scaledist: .75; --vertdist: -25px;">
|
||||
<div class="card">
|
||||
<div class="writing">
|
||||
<div class="topbar">
|
||||
<div class="red"></div>
|
||||
<div class="yellow"></div>
|
||||
<div class="green"></div>
|
||||
</div>
|
||||
<div class="code">
|
||||
<ul>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-container">
|
||||
<div class="perspec" style="--spreaddist: 100px; --scaledist: .8; --vertdist: -20px;">
|
||||
<div class="card">
|
||||
<div class="writing">
|
||||
<div class="topbar">
|
||||
<div class="red"></div>
|
||||
<div class="yellow"></div>
|
||||
<div class="green"></div>
|
||||
</div>
|
||||
<div class="code">
|
||||
<ul>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-container">
|
||||
<div class="perspec" style="--spreaddist:75px; --scaledist: .85; --vertdist: -15px;">
|
||||
<div class="card">
|
||||
<div class="writing">
|
||||
<div class="topbar">
|
||||
<div class="red"></div>
|
||||
<div class="yellow"></div>
|
||||
<div class="green"></div>
|
||||
</div>
|
||||
<div class="code">
|
||||
<ul>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-container">
|
||||
<div class="perspec" style="--spreaddist: 50px; --scaledist: .9; --vertdist: -10px;">
|
||||
<div class="card">
|
||||
<div class="writing">
|
||||
<div class="topbar">
|
||||
<div class="red"></div>
|
||||
<div class="yellow"></div>
|
||||
<div class="green"></div>
|
||||
</div>
|
||||
<div class="code">
|
||||
<ul>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-container">
|
||||
<div class="perspec" style="--spreaddist: 25px; --scaledist: .95; --vertdist: -5px;">
|
||||
<div class="card">
|
||||
<div class="writing">
|
||||
<div class="topbar">
|
||||
<div class="red"></div>
|
||||
<div class="yellow"></div>
|
||||
<div class="green"></div>
|
||||
</div>
|
||||
<div class="code">
|
||||
<ul>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-container">
|
||||
<div class="perspec" style="--spreaddist: 0px; --scaledist: 1; --vertdist: 0px;">
|
||||
<div class="card">
|
||||
<div class="writing">
|
||||
<div class="topbar">
|
||||
<div class="red"></div>
|
||||
<div class="yellow"></div>
|
||||
<div class="green"></div>
|
||||
</div>
|
||||
<div class="code">
|
||||
<ul>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<script>
|
||||
|
||||
const stackContainer = document.querySelector('.stack-container');
|
||||
const cardNodes = document.querySelectorAll('.card-container');
|
||||
const perspecNodes = document.querySelectorAll('.perspec');
|
||||
const perspec = document.querySelector('.perspec');
|
||||
const card = document.querySelector('.card');
|
||||
|
||||
let counter = stackContainer.children.length;
|
||||
|
||||
//function to generate random number
|
||||
function randomIntFromInterval(min, max) {
|
||||
return Math.floor(Math.random() * (max - min + 1) + min);
|
||||
}
|
||||
|
||||
//after tilt animation, fire the explode animation
|
||||
card.addEventListener('animationend', function () {
|
||||
perspecNodes.forEach(function (elem, index) {
|
||||
elem.classList.add('explode');
|
||||
});
|
||||
});
|
||||
|
||||
//after explode animation do a bunch of stuff
|
||||
perspec.addEventListener('animationend', function (e) {
|
||||
if (e.animationName === 'explode') {
|
||||
cardNodes.forEach(function (elem, index) {
|
||||
|
||||
//add hover animation class
|
||||
elem.classList.add('pokeup');
|
||||
|
||||
//add event listner to throw card on click
|
||||
elem.addEventListener('click', function () {
|
||||
let updown = [800, -800]
|
||||
let randomY = updown[Math.floor(Math.random() * updown.length)];
|
||||
let randomX = Math.floor(Math.random() * 1000) - 1000;
|
||||
elem.style.transform = `translate(${randomX}px, ${randomY}px) rotate(-540deg)`
|
||||
elem.style.transition = "transform 1s ease, opacity 2s";
|
||||
elem.style.opacity = "0";
|
||||
counter--;
|
||||
if (counter === 0) {
|
||||
stackContainer.style.width = "0";
|
||||
stackContainer.style.height = "0";
|
||||
}
|
||||
});
|
||||
|
||||
//generate random number of lines of code between 4 and 10 and add to each card
|
||||
let numLines = randomIntFromInterval(5, 10);
|
||||
|
||||
//loop through the lines and add them to the DOM
|
||||
for (let index = 0; index < numLines; index++) {
|
||||
let lineLength = randomIntFromInterval(25, 97);
|
||||
var node = document.createElement("li");
|
||||
node.classList.add('node-' + index);
|
||||
elem.querySelector('.code ul').appendChild(node).setAttribute('style', '--linelength: ' + lineLength + '%;');
|
||||
|
||||
//draw lines of code 1 by 1
|
||||
if (index == 0) {
|
||||
elem.querySelector('.code ul .node-' + index).classList.add('writeLine');
|
||||
} else {
|
||||
elem.querySelector('.code ul .node-' + (index - 1)).addEventListener('animationend', function (e) {
|
||||
elem.querySelector('.code ul .node-' + index).classList.add('writeLine');
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
</script>
|
||||
</body>
|
||||
+432
@@ -0,0 +1,432 @@
|
||||
<head>
|
||||
<style>
|
||||
body,
|
||||
html {
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
font-family: 'Quicksand', sans-serif;
|
||||
font-weight: 400;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.writing {
|
||||
width: 320px;
|
||||
height: 200px;
|
||||
background-color: #3f3f3f;
|
||||
border: 1px solid #bbbbbb;
|
||||
border-radius: 6px 6px 4px 4px;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.writing .topbar{
|
||||
position: absolute;
|
||||
width: 100%;
|
||||
height: 12px;
|
||||
background-color: #f1f1f1;
|
||||
border-top-left-radius: 4px;
|
||||
border-top-right-radius: 4px;
|
||||
}
|
||||
|
||||
.writing .topbar div{
|
||||
height: 6px;
|
||||
width: 6px;
|
||||
border-radius: 50%;
|
||||
margin: 3px;
|
||||
float: left;
|
||||
}
|
||||
|
||||
.writing .topbar div.green{
|
||||
background-color: #60d060;
|
||||
}
|
||||
.writing .topbar div.red{
|
||||
background-color: red;
|
||||
}
|
||||
.writing .topbar div.yellow{
|
||||
background-color: #e6c015;
|
||||
}
|
||||
|
||||
.writing .code {
|
||||
padding: 15px;
|
||||
}
|
||||
|
||||
.writing .code ul {
|
||||
list-style: none;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.writing .code ul li {
|
||||
background-color: #9e9e9e;
|
||||
width: 0;
|
||||
height: 7px;
|
||||
border-radius: 6px;
|
||||
margin: 10px 0;
|
||||
}
|
||||
|
||||
.container {
|
||||
display: -webkit-box;
|
||||
display: -ms-flexbox;
|
||||
display: flex;
|
||||
-webkit-box-align: center;
|
||||
-ms-flex-align: center;
|
||||
align-items: center;
|
||||
-webkit-box-pack: center;
|
||||
-ms-flex-pack: center;
|
||||
justify-content: center;
|
||||
height: 100vh;
|
||||
width: 100%;
|
||||
-webkit-transition: -webkit-transform .5s;
|
||||
transition: -webkit-transform .5s;
|
||||
transition: transform .5s;
|
||||
transition: transform .5s, -webkit-transform .5s;
|
||||
}
|
||||
|
||||
.stack-container {
|
||||
position: relative;
|
||||
width: 420px;
|
||||
height: 210px;
|
||||
-webkit-transition: width 1s, height 1s;
|
||||
transition: width 1s, height 1s;
|
||||
}
|
||||
|
||||
.pokeup {
|
||||
-webkit-transition: all .3s ease;
|
||||
transition: all .3s ease;
|
||||
}
|
||||
|
||||
.pokeup:hover {
|
||||
-webkit-transform: translateY(-10px);
|
||||
transform: translateY(-10px);
|
||||
-webkit-transition: .3s ease;
|
||||
transition: .3s ease;
|
||||
}
|
||||
|
||||
|
||||
.error {
|
||||
width: 400px;
|
||||
padding: 40px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.error h1 {
|
||||
font-size: 125px;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
font-weight: 700;
|
||||
}
|
||||
|
||||
.error h2 {
|
||||
margin: -30px 0 0 0;
|
||||
padding: 0px;
|
||||
font-size: 47px;
|
||||
letter-spacing: 12px;
|
||||
}
|
||||
|
||||
.perspec {
|
||||
-webkit-perspective: 1000px;
|
||||
perspective: 1000px;
|
||||
}
|
||||
|
||||
.writeLine{
|
||||
-webkit-animation: writeLine .4s linear forwards;
|
||||
animation: writeLine .4s linear forwards;
|
||||
}
|
||||
|
||||
.explode{
|
||||
-webkit-animation: explode .5s ease-in-out forwards;
|
||||
animation: explode .5s ease-in-out forwards;
|
||||
}
|
||||
|
||||
.card {
|
||||
-webkit-animation: tiltcard .5s ease-in-out 1s forwards;
|
||||
animation: tiltcard .5s ease-in-out 1s forwards;
|
||||
position: absolute;
|
||||
}
|
||||
|
||||
@-webkit-keyframes tiltcard {
|
||||
0% {
|
||||
-webkit-transform: rotateY(0deg);
|
||||
transform: rotateY(0deg);
|
||||
}
|
||||
|
||||
100% {
|
||||
-webkit-transform: rotateY(-30deg);
|
||||
transform: rotateY(-30deg);
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes tiltcard {
|
||||
0% {
|
||||
-webkit-transform: rotateY(0deg);
|
||||
transform: rotateY(0deg);
|
||||
}
|
||||
|
||||
100% {
|
||||
-webkit-transform: rotateY(-30deg);
|
||||
transform: rotateY(-30deg);
|
||||
}
|
||||
}
|
||||
|
||||
@-webkit-keyframes explode {
|
||||
0% {
|
||||
-webkit-transform: translate(0, 0) scale(1);
|
||||
transform: translate(0, 0) scale(1);
|
||||
}
|
||||
|
||||
100% {
|
||||
-webkit-transform: translate(var(--spreaddist), var(--vertdist)) scale(var(--scaledist));
|
||||
transform: translate(var(--spreaddist), var(--vertdist)) scale(var(--scaledist));
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes explode {
|
||||
0% {
|
||||
-webkit-transform: translate(0, 0) scale(1);
|
||||
transform: translate(0, 0) scale(1);
|
||||
}
|
||||
|
||||
100% {
|
||||
-webkit-transform: translate(var(--spreaddist), var(--vertdist)) scale(var(--scaledist));
|
||||
transform: translate(var(--spreaddist), var(--vertdist)) scale(var(--scaledist));
|
||||
}
|
||||
}
|
||||
|
||||
@-webkit-keyframes writeLine {
|
||||
0% {
|
||||
width:0;
|
||||
}
|
||||
|
||||
100% {
|
||||
width: var(--linelength);
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes writeLine {
|
||||
0% {
|
||||
width:0;
|
||||
}
|
||||
|
||||
100% {
|
||||
width: var(--linelength);
|
||||
}
|
||||
}
|
||||
|
||||
@media screen and (max-width: 1000px) {
|
||||
.container {
|
||||
-webkit-transform: scale(.85);
|
||||
transform: scale(.85);
|
||||
}
|
||||
}
|
||||
|
||||
@media screen and (max-width: 850px) {
|
||||
.container {
|
||||
-webkit-transform: scale(.75);
|
||||
transform: scale(.75);
|
||||
}
|
||||
}
|
||||
|
||||
@media screen and (max-width: 775px) {
|
||||
.container {
|
||||
-ms-flex-wrap: wrap-reverse;
|
||||
flex-wrap: wrap-reverse;
|
||||
-webkit-box-align: inherit;
|
||||
-ms-flex-align: inherit;
|
||||
align-items: inherit;
|
||||
}
|
||||
}
|
||||
|
||||
@media screen and (max-width: 370px) {
|
||||
.container {
|
||||
-webkit-transform: scale(.6);
|
||||
transform: scale(.6);
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
<div class="container">
|
||||
<div class="error">
|
||||
<h1>401</h1>
|
||||
<h2>error</h2>
|
||||
<p>Authentifizierungfehler</p>
|
||||
<p> </p>
|
||||
<a onclick="history.go(0)" style="border: 0px; background-color: rgb(59, 0, 253); border-radius: 5px; padding: 9px; padding-left: 85px; padding-right: 85px; color: white; cursor: pointer;">Neuladen</a><br/><br/>
|
||||
<a onclick="window.location='/'" style="border: 0px; background-color: #bfc0c2; border-radius: 5px; padding: 9px; padding-left: 72px; padding-right: 71px; color: black; cursor: pointer;">Zur Startseite</a>
|
||||
</div>
|
||||
<div class="stack-container">
|
||||
<div class="card-container">
|
||||
<div class="perspec" style="--spreaddist: 125px; --scaledist: .75; --vertdist: -25px;">
|
||||
<div class="card">
|
||||
<div class="writing">
|
||||
<div class="topbar">
|
||||
<div class="red"></div>
|
||||
<div class="yellow"></div>
|
||||
<div class="green"></div>
|
||||
</div>
|
||||
<div class="code">
|
||||
<ul>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-container">
|
||||
<div class="perspec" style="--spreaddist: 100px; --scaledist: .8; --vertdist: -20px;">
|
||||
<div class="card">
|
||||
<div class="writing">
|
||||
<div class="topbar">
|
||||
<div class="red"></div>
|
||||
<div class="yellow"></div>
|
||||
<div class="green"></div>
|
||||
</div>
|
||||
<div class="code">
|
||||
<ul>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-container">
|
||||
<div class="perspec" style="--spreaddist:75px; --scaledist: .85; --vertdist: -15px;">
|
||||
<div class="card">
|
||||
<div class="writing">
|
||||
<div class="topbar">
|
||||
<div class="red"></div>
|
||||
<div class="yellow"></div>
|
||||
<div class="green"></div>
|
||||
</div>
|
||||
<div class="code">
|
||||
<ul>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-container">
|
||||
<div class="perspec" style="--spreaddist: 50px; --scaledist: .9; --vertdist: -10px;">
|
||||
<div class="card">
|
||||
<div class="writing">
|
||||
<div class="topbar">
|
||||
<div class="red"></div>
|
||||
<div class="yellow"></div>
|
||||
<div class="green"></div>
|
||||
</div>
|
||||
<div class="code">
|
||||
<ul>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-container">
|
||||
<div class="perspec" style="--spreaddist: 25px; --scaledist: .95; --vertdist: -5px;">
|
||||
<div class="card">
|
||||
<div class="writing">
|
||||
<div class="topbar">
|
||||
<div class="red"></div>
|
||||
<div class="yellow"></div>
|
||||
<div class="green"></div>
|
||||
</div>
|
||||
<div class="code">
|
||||
<ul>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-container">
|
||||
<div class="perspec" style="--spreaddist: 0px; --scaledist: 1; --vertdist: 0px;">
|
||||
<div class="card">
|
||||
<div class="writing">
|
||||
<div class="topbar">
|
||||
<div class="red"></div>
|
||||
<div class="yellow"></div>
|
||||
<div class="green"></div>
|
||||
</div>
|
||||
<div class="code">
|
||||
<ul>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<script>
|
||||
|
||||
const stackContainer = document.querySelector('.stack-container');
|
||||
const cardNodes = document.querySelectorAll('.card-container');
|
||||
const perspecNodes = document.querySelectorAll('.perspec');
|
||||
const perspec = document.querySelector('.perspec');
|
||||
const card = document.querySelector('.card');
|
||||
|
||||
let counter = stackContainer.children.length;
|
||||
|
||||
//function to generate random number
|
||||
function randomIntFromInterval(min, max) {
|
||||
return Math.floor(Math.random() * (max - min + 1) + min);
|
||||
}
|
||||
|
||||
//after tilt animation, fire the explode animation
|
||||
card.addEventListener('animationend', function () {
|
||||
perspecNodes.forEach(function (elem, index) {
|
||||
elem.classList.add('explode');
|
||||
});
|
||||
});
|
||||
|
||||
//after explode animation do a bunch of stuff
|
||||
perspec.addEventListener('animationend', function (e) {
|
||||
if (e.animationName === 'explode') {
|
||||
cardNodes.forEach(function (elem, index) {
|
||||
|
||||
//add hover animation class
|
||||
elem.classList.add('pokeup');
|
||||
|
||||
//add event listner to throw card on click
|
||||
elem.addEventListener('click', function () {
|
||||
let updown = [800, -800]
|
||||
let randomY = updown[Math.floor(Math.random() * updown.length)];
|
||||
let randomX = Math.floor(Math.random() * 1000) - 1000;
|
||||
elem.style.transform = `translate(${randomX}px, ${randomY}px) rotate(-540deg)`
|
||||
elem.style.transition = "transform 1s ease, opacity 2s";
|
||||
elem.style.opacity = "0";
|
||||
counter--;
|
||||
if (counter === 0) {
|
||||
stackContainer.style.width = "0";
|
||||
stackContainer.style.height = "0";
|
||||
}
|
||||
});
|
||||
|
||||
//generate random number of lines of code between 4 and 10 and add to each card
|
||||
let numLines = randomIntFromInterval(5, 10);
|
||||
|
||||
//loop through the lines and add them to the DOM
|
||||
for (let index = 0; index < numLines; index++) {
|
||||
let lineLength = randomIntFromInterval(25, 97);
|
||||
var node = document.createElement("li");
|
||||
node.classList.add('node-' + index);
|
||||
elem.querySelector('.code ul').appendChild(node).setAttribute('style', '--linelength: ' + lineLength + '%;');
|
||||
|
||||
//draw lines of code 1 by 1
|
||||
if (index == 0) {
|
||||
elem.querySelector('.code ul .node-' + index).classList.add('writeLine');
|
||||
} else {
|
||||
elem.querySelector('.code ul .node-' + (index - 1)).addEventListener('animationend', function (e) {
|
||||
elem.querySelector('.code ul .node-' + index).classList.add('writeLine');
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
</script>
|
||||
</body>
|
||||
+432
@@ -0,0 +1,432 @@
|
||||
<head>
|
||||
<style>
|
||||
body,
|
||||
html {
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
font-family: 'Quicksand', sans-serif;
|
||||
font-weight: 400;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.writing {
|
||||
width: 320px;
|
||||
height: 200px;
|
||||
background-color: #3f3f3f;
|
||||
border: 1px solid #bbbbbb;
|
||||
border-radius: 6px 6px 4px 4px;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.writing .topbar{
|
||||
position: absolute;
|
||||
width: 100%;
|
||||
height: 12px;
|
||||
background-color: #f1f1f1;
|
||||
border-top-left-radius: 4px;
|
||||
border-top-right-radius: 4px;
|
||||
}
|
||||
|
||||
.writing .topbar div{
|
||||
height: 6px;
|
||||
width: 6px;
|
||||
border-radius: 50%;
|
||||
margin: 3px;
|
||||
float: left;
|
||||
}
|
||||
|
||||
.writing .topbar div.green{
|
||||
background-color: #60d060;
|
||||
}
|
||||
.writing .topbar div.red{
|
||||
background-color: red;
|
||||
}
|
||||
.writing .topbar div.yellow{
|
||||
background-color: #e6c015;
|
||||
}
|
||||
|
||||
.writing .code {
|
||||
padding: 15px;
|
||||
}
|
||||
|
||||
.writing .code ul {
|
||||
list-style: none;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.writing .code ul li {
|
||||
background-color: #9e9e9e;
|
||||
width: 0;
|
||||
height: 7px;
|
||||
border-radius: 6px;
|
||||
margin: 10px 0;
|
||||
}
|
||||
|
||||
.container {
|
||||
display: -webkit-box;
|
||||
display: -ms-flexbox;
|
||||
display: flex;
|
||||
-webkit-box-align: center;
|
||||
-ms-flex-align: center;
|
||||
align-items: center;
|
||||
-webkit-box-pack: center;
|
||||
-ms-flex-pack: center;
|
||||
justify-content: center;
|
||||
height: 100vh;
|
||||
width: 100%;
|
||||
-webkit-transition: -webkit-transform .5s;
|
||||
transition: -webkit-transform .5s;
|
||||
transition: transform .5s;
|
||||
transition: transform .5s, -webkit-transform .5s;
|
||||
}
|
||||
|
||||
.stack-container {
|
||||
position: relative;
|
||||
width: 420px;
|
||||
height: 210px;
|
||||
-webkit-transition: width 1s, height 1s;
|
||||
transition: width 1s, height 1s;
|
||||
}
|
||||
|
||||
.pokeup {
|
||||
-webkit-transition: all .3s ease;
|
||||
transition: all .3s ease;
|
||||
}
|
||||
|
||||
.pokeup:hover {
|
||||
-webkit-transform: translateY(-10px);
|
||||
transform: translateY(-10px);
|
||||
-webkit-transition: .3s ease;
|
||||
transition: .3s ease;
|
||||
}
|
||||
|
||||
|
||||
.error {
|
||||
width: 400px;
|
||||
padding: 40px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.error h1 {
|
||||
font-size: 125px;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
font-weight: 700;
|
||||
}
|
||||
|
||||
.error h2 {
|
||||
margin: -30px 0 0 0;
|
||||
padding: 0px;
|
||||
font-size: 47px;
|
||||
letter-spacing: 12px;
|
||||
}
|
||||
|
||||
.perspec {
|
||||
-webkit-perspective: 1000px;
|
||||
perspective: 1000px;
|
||||
}
|
||||
|
||||
.writeLine{
|
||||
-webkit-animation: writeLine .4s linear forwards;
|
||||
animation: writeLine .4s linear forwards;
|
||||
}
|
||||
|
||||
.explode{
|
||||
-webkit-animation: explode .5s ease-in-out forwards;
|
||||
animation: explode .5s ease-in-out forwards;
|
||||
}
|
||||
|
||||
.card {
|
||||
-webkit-animation: tiltcard .5s ease-in-out 1s forwards;
|
||||
animation: tiltcard .5s ease-in-out 1s forwards;
|
||||
position: absolute;
|
||||
}
|
||||
|
||||
@-webkit-keyframes tiltcard {
|
||||
0% {
|
||||
-webkit-transform: rotateY(0deg);
|
||||
transform: rotateY(0deg);
|
||||
}
|
||||
|
||||
100% {
|
||||
-webkit-transform: rotateY(-30deg);
|
||||
transform: rotateY(-30deg);
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes tiltcard {
|
||||
0% {
|
||||
-webkit-transform: rotateY(0deg);
|
||||
transform: rotateY(0deg);
|
||||
}
|
||||
|
||||
100% {
|
||||
-webkit-transform: rotateY(-30deg);
|
||||
transform: rotateY(-30deg);
|
||||
}
|
||||
}
|
||||
|
||||
@-webkit-keyframes explode {
|
||||
0% {
|
||||
-webkit-transform: translate(0, 0) scale(1);
|
||||
transform: translate(0, 0) scale(1);
|
||||
}
|
||||
|
||||
100% {
|
||||
-webkit-transform: translate(var(--spreaddist), var(--vertdist)) scale(var(--scaledist));
|
||||
transform: translate(var(--spreaddist), var(--vertdist)) scale(var(--scaledist));
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes explode {
|
||||
0% {
|
||||
-webkit-transform: translate(0, 0) scale(1);
|
||||
transform: translate(0, 0) scale(1);
|
||||
}
|
||||
|
||||
100% {
|
||||
-webkit-transform: translate(var(--spreaddist), var(--vertdist)) scale(var(--scaledist));
|
||||
transform: translate(var(--spreaddist), var(--vertdist)) scale(var(--scaledist));
|
||||
}
|
||||
}
|
||||
|
||||
@-webkit-keyframes writeLine {
|
||||
0% {
|
||||
width:0;
|
||||
}
|
||||
|
||||
100% {
|
||||
width: var(--linelength);
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes writeLine {
|
||||
0% {
|
||||
width:0;
|
||||
}
|
||||
|
||||
100% {
|
||||
width: var(--linelength);
|
||||
}
|
||||
}
|
||||
|
||||
@media screen and (max-width: 1000px) {
|
||||
.container {
|
||||
-webkit-transform: scale(.85);
|
||||
transform: scale(.85);
|
||||
}
|
||||
}
|
||||
|
||||
@media screen and (max-width: 850px) {
|
||||
.container {
|
||||
-webkit-transform: scale(.75);
|
||||
transform: scale(.75);
|
||||
}
|
||||
}
|
||||
|
||||
@media screen and (max-width: 775px) {
|
||||
.container {
|
||||
-ms-flex-wrap: wrap-reverse;
|
||||
flex-wrap: wrap-reverse;
|
||||
-webkit-box-align: inherit;
|
||||
-ms-flex-align: inherit;
|
||||
align-items: inherit;
|
||||
}
|
||||
}
|
||||
|
||||
@media screen and (max-width: 370px) {
|
||||
.container {
|
||||
-webkit-transform: scale(.6);
|
||||
transform: scale(.6);
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
<div class="container">
|
||||
<div class="error">
|
||||
<h1>403</h1>
|
||||
<h2>error</h2>
|
||||
<p>Keine Berechtigung</p>
|
||||
<p> </p>
|
||||
<a onclick="history.go(0)" style="border: 0px; background-color: rgb(59, 0, 253); border-radius: 5px; padding: 9px; padding-left: 85px; padding-right: 85px; color: white; cursor: pointer;">Neuladen</a><br/><br/>
|
||||
<a onclick="window.location='/'" style="border: 0px; background-color: #bfc0c2; border-radius: 5px; padding: 9px; padding-left: 72px; padding-right: 71px; color: black; cursor: pointer;">Zur Startseite</a>
|
||||
</div>
|
||||
<div class="stack-container">
|
||||
<div class="card-container">
|
||||
<div class="perspec" style="--spreaddist: 125px; --scaledist: .75; --vertdist: -25px;">
|
||||
<div class="card">
|
||||
<div class="writing">
|
||||
<div class="topbar">
|
||||
<div class="red"></div>
|
||||
<div class="yellow"></div>
|
||||
<div class="green"></div>
|
||||
</div>
|
||||
<div class="code">
|
||||
<ul>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-container">
|
||||
<div class="perspec" style="--spreaddist: 100px; --scaledist: .8; --vertdist: -20px;">
|
||||
<div class="card">
|
||||
<div class="writing">
|
||||
<div class="topbar">
|
||||
<div class="red"></div>
|
||||
<div class="yellow"></div>
|
||||
<div class="green"></div>
|
||||
</div>
|
||||
<div class="code">
|
||||
<ul>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-container">
|
||||
<div class="perspec" style="--spreaddist:75px; --scaledist: .85; --vertdist: -15px;">
|
||||
<div class="card">
|
||||
<div class="writing">
|
||||
<div class="topbar">
|
||||
<div class="red"></div>
|
||||
<div class="yellow"></div>
|
||||
<div class="green"></div>
|
||||
</div>
|
||||
<div class="code">
|
||||
<ul>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-container">
|
||||
<div class="perspec" style="--spreaddist: 50px; --scaledist: .9; --vertdist: -10px;">
|
||||
<div class="card">
|
||||
<div class="writing">
|
||||
<div class="topbar">
|
||||
<div class="red"></div>
|
||||
<div class="yellow"></div>
|
||||
<div class="green"></div>
|
||||
</div>
|
||||
<div class="code">
|
||||
<ul>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-container">
|
||||
<div class="perspec" style="--spreaddist: 25px; --scaledist: .95; --vertdist: -5px;">
|
||||
<div class="card">
|
||||
<div class="writing">
|
||||
<div class="topbar">
|
||||
<div class="red"></div>
|
||||
<div class="yellow"></div>
|
||||
<div class="green"></div>
|
||||
</div>
|
||||
<div class="code">
|
||||
<ul>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-container">
|
||||
<div class="perspec" style="--spreaddist: 0px; --scaledist: 1; --vertdist: 0px;">
|
||||
<div class="card">
|
||||
<div class="writing">
|
||||
<div class="topbar">
|
||||
<div class="red"></div>
|
||||
<div class="yellow"></div>
|
||||
<div class="green"></div>
|
||||
</div>
|
||||
<div class="code">
|
||||
<ul>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<script>
|
||||
|
||||
const stackContainer = document.querySelector('.stack-container');
|
||||
const cardNodes = document.querySelectorAll('.card-container');
|
||||
const perspecNodes = document.querySelectorAll('.perspec');
|
||||
const perspec = document.querySelector('.perspec');
|
||||
const card = document.querySelector('.card');
|
||||
|
||||
let counter = stackContainer.children.length;
|
||||
|
||||
//function to generate random number
|
||||
function randomIntFromInterval(min, max) {
|
||||
return Math.floor(Math.random() * (max - min + 1) + min);
|
||||
}
|
||||
|
||||
//after tilt animation, fire the explode animation
|
||||
card.addEventListener('animationend', function () {
|
||||
perspecNodes.forEach(function (elem, index) {
|
||||
elem.classList.add('explode');
|
||||
});
|
||||
});
|
||||
|
||||
//after explode animation do a bunch of stuff
|
||||
perspec.addEventListener('animationend', function (e) {
|
||||
if (e.animationName === 'explode') {
|
||||
cardNodes.forEach(function (elem, index) {
|
||||
|
||||
//add hover animation class
|
||||
elem.classList.add('pokeup');
|
||||
|
||||
//add event listner to throw card on click
|
||||
elem.addEventListener('click', function () {
|
||||
let updown = [800, -800]
|
||||
let randomY = updown[Math.floor(Math.random() * updown.length)];
|
||||
let randomX = Math.floor(Math.random() * 1000) - 1000;
|
||||
elem.style.transform = `translate(${randomX}px, ${randomY}px) rotate(-540deg)`
|
||||
elem.style.transition = "transform 1s ease, opacity 2s";
|
||||
elem.style.opacity = "0";
|
||||
counter--;
|
||||
if (counter === 0) {
|
||||
stackContainer.style.width = "0";
|
||||
stackContainer.style.height = "0";
|
||||
}
|
||||
});
|
||||
|
||||
//generate random number of lines of code between 4 and 10 and add to each card
|
||||
let numLines = randomIntFromInterval(5, 10);
|
||||
|
||||
//loop through the lines and add them to the DOM
|
||||
for (let index = 0; index < numLines; index++) {
|
||||
let lineLength = randomIntFromInterval(25, 97);
|
||||
var node = document.createElement("li");
|
||||
node.classList.add('node-' + index);
|
||||
elem.querySelector('.code ul').appendChild(node).setAttribute('style', '--linelength: ' + lineLength + '%;');
|
||||
|
||||
//draw lines of code 1 by 1
|
||||
if (index == 0) {
|
||||
elem.querySelector('.code ul .node-' + index).classList.add('writeLine');
|
||||
} else {
|
||||
elem.querySelector('.code ul .node-' + (index - 1)).addEventListener('animationend', function (e) {
|
||||
elem.querySelector('.code ul .node-' + index).classList.add('writeLine');
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
</script>
|
||||
</body>
|
||||
+434
@@ -0,0 +1,434 @@
|
||||
<head>
|
||||
<title>Seite Nicht Gefunden | MFGames.de</title>
|
||||
<style>
|
||||
body {
|
||||
color: white;
|
||||
/*background-color: #252525;*/
|
||||
}
|
||||
|
||||
html {
|
||||
background-color: #181a1b !important;
|
||||
}
|
||||
|
||||
|
||||
body,
|
||||
html {
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
font-family: 'Quicksand', sans-serif;
|
||||
font-weight: 400;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
|
||||
|
||||
.writing {
|
||||
width: 320px;
|
||||
height: 200px;
|
||||
background-color: rgb(47, 51, 53);
|
||||
border: 1px solid rgb(129, 120, 106);
|
||||
border-radius: 6px 6px 4px 4px;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.writing .topbar{
|
||||
position: absolute;
|
||||
width: 100%;
|
||||
height: 12px;
|
||||
background-color: #050505;
|
||||
border-top-left-radius: 4px;
|
||||
border-top-right-radius: 4px;
|
||||
}
|
||||
|
||||
.writing .topbar div{
|
||||
height: 6px;
|
||||
width: 6px;
|
||||
border-radius: 50%;
|
||||
margin: 3px;
|
||||
float: left;
|
||||
}
|
||||
|
||||
.writing .topbar div.green{
|
||||
background-color: #60d060;
|
||||
}
|
||||
.writing .topbar div.red{
|
||||
background-color: red;
|
||||
}
|
||||
.writing .topbar div.yellow{
|
||||
background-color: #e6c015;
|
||||
}
|
||||
|
||||
.writing .code {
|
||||
padding: 15px;
|
||||
}
|
||||
|
||||
.writing .code ul {
|
||||
list-style: none;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.writing .code ul li {
|
||||
background-color: rgb(79, 85, 89);
|
||||
width: 0;
|
||||
height: 7px;
|
||||
border-radius: 6px;
|
||||
margin: 10px 0;
|
||||
}
|
||||
|
||||
.container {
|
||||
display: -webkit-box;
|
||||
display: -ms-flexbox;
|
||||
display: flex;
|
||||
-webkit-box-align: center;
|
||||
-ms-flex-align: center;
|
||||
align-items: center;
|
||||
-webkit-box-pack: center;
|
||||
-ms-flex-pack: center;
|
||||
justify-content: center;
|
||||
height: 100vh;
|
||||
width: 100%;
|
||||
-webkit-transition: -webkit-transform .5s;
|
||||
transition: -webkit-transform .5s;
|
||||
transition: transform .5s;
|
||||
transition: transform .5s, -webkit-transform .5s;
|
||||
}
|
||||
|
||||
.stack-container {
|
||||
position: relative;
|
||||
width: 420px;
|
||||
height: 210px;
|
||||
-webkit-transition: width 1s, height 1s;
|
||||
transition: width 1s, height 1s;
|
||||
}
|
||||
|
||||
.pokeup {
|
||||
-webkit-transition: all .3s ease;
|
||||
transition: all .3s ease;
|
||||
}
|
||||
|
||||
.pokeup:hover {
|
||||
-webkit-transform: translateY(-10px);
|
||||
transform: translateY(-10px);
|
||||
-webkit-transition: .3s ease;
|
||||
transition: .3s ease;
|
||||
}
|
||||
|
||||
|
||||
.error {
|
||||
width: 400px;
|
||||
padding: 40px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.error h1 {
|
||||
font-size: 125px;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
font-weight: 700;
|
||||
}
|
||||
|
||||
.error h2 {
|
||||
margin: -30px 0 0 0;
|
||||
padding: 0px;
|
||||
font-size: 47px;
|
||||
letter-spacing: 12px;
|
||||
}
|
||||
|
||||
.perspec {
|
||||
-webkit-perspective: 1000px;
|
||||
perspective: 1000px;
|
||||
}
|
||||
|
||||
.writeLine{
|
||||
-webkit-animation: writeLine .4s linear forwards;
|
||||
animation: writeLine .4s linear forwards;
|
||||
}
|
||||
|
||||
.explode{
|
||||
-webkit-animation: explode .5s ease-in-out forwards;
|
||||
animation: explode .5s ease-in-out forwards;
|
||||
}
|
||||
|
||||
.card {
|
||||
-webkit-animation: tiltcard .5s ease-in-out 1s forwards;
|
||||
animation: tiltcard .5s ease-in-out 1s forwards;
|
||||
position: absolute;
|
||||
}
|
||||
|
||||
@-webkit-keyframes tiltcard {
|
||||
0% {
|
||||
-webkit-transform: rotateY(0deg);
|
||||
transform: rotateY(0deg);
|
||||
}
|
||||
|
||||
100% {
|
||||
-webkit-transform: rotateY(-30deg);
|
||||
transform: rotateY(-30deg);
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes tiltcard {
|
||||
0% {
|
||||
-webkit-transform: rotateY(0deg);
|
||||
transform: rotateY(0deg);
|
||||
}
|
||||
|
||||
100% {
|
||||
-webkit-transform: rotateY(-30deg);
|
||||
transform: rotateY(-30deg);
|
||||
}
|
||||
}
|
||||
|
||||
@-webkit-keyframes explode {
|
||||
0% {
|
||||
-webkit-transform: translate(0, 0) scale(1);
|
||||
transform: translate(0, 0) scale(1);
|
||||
}
|
||||
|
||||
100% {
|
||||
-webkit-transform: translate(var(--spreaddist), var(--vertdist)) scale(var(--scaledist));
|
||||
transform: translate(var(--spreaddist), var(--vertdist)) scale(var(--scaledist));
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes explode {
|
||||
0% {
|
||||
-webkit-transform: translate(0, 0) scale(1);
|
||||
transform: translate(0, 0) scale(1);
|
||||
}
|
||||
|
||||
100% {
|
||||
-webkit-transform: translate(var(--spreaddist), var(--vertdist)) scale(var(--scaledist));
|
||||
transform: translate(var(--spreaddist), var(--vertdist)) scale(var(--scaledist));
|
||||
}
|
||||
}
|
||||
|
||||
@-webkit-keyframes writeLine {
|
||||
0% {
|
||||
width:0;
|
||||
}
|
||||
|
||||
100% {
|
||||
width: var(--linelength);
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes writeLine {
|
||||
0% {
|
||||
width:0;
|
||||
}
|
||||
|
||||
100% {
|
||||
width: var(--linelength);
|
||||
}
|
||||
}
|
||||
|
||||
@media screen and (max-width: 1000px) {
|
||||
.container {
|
||||
-webkit-transform: scale(.85);
|
||||
transform: scale(.85);
|
||||
}
|
||||
}
|
||||
|
||||
@media screen and (max-width: 850px) {
|
||||
.container {
|
||||
-webkit-transform: scale(.75);
|
||||
transform: scale(.75);
|
||||
}
|
||||
}
|
||||
|
||||
@media screen and (max-width: 775px) {
|
||||
.container {
|
||||
-ms-flex-wrap: wrap-reverse;
|
||||
flex-wrap: wrap-reverse;
|
||||
-webkit-box-align: inherit;
|
||||
-ms-flex-align: inherit;
|
||||
align-items: inherit;
|
||||
}
|
||||
}
|
||||
|
||||
@media screen and (max-width: 370px) {
|
||||
.container {
|
||||
-webkit-transform: scale(.6);
|
||||
transform: scale(.6);
|
||||
}
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div class="container">
|
||||
<div class="error">
|
||||
<h1>404</h1>
|
||||
<h2>error</h2>
|
||||
<p>Seite wurde nicht gefunden.</p>
|
||||
<p> </p>
|
||||
<a onclick="history.go(0)" style="border: 0px; background-color: #454a4d; border-radius: 5px; padding: 9px; padding-left: 85px; padding-right: 85px; color: white; cursor: pointer; margin-bottom: 10px;">Neuladen</a><br/><br/>
|
||||
<a onclick="window.location='/'" style="border: 0px;background-color: #313537;border-radius: 5px;padding: 9px;padding-left: 72px;padding-right: 71px;color: white;cursor: pointer;">Zur Startseite</a>
|
||||
</div>
|
||||
<div class="stack-container">
|
||||
<div class="card-container">
|
||||
<div class="perspec" style="--spreaddist: 125px; --scaledist: .75; --vertdist: -25px;">
|
||||
<div class="card">
|
||||
<div class="writing">
|
||||
<div class="topbar">
|
||||
<div class="red"></div>
|
||||
<div class="yellow"></div>
|
||||
<div class="green"></div>
|
||||
</div>
|
||||
<div class="code">
|
||||
<ul>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-container">
|
||||
<div class="perspec" style="--spreaddist: 100px; --scaledist: .8; --vertdist: -20px;">
|
||||
<div class="card">
|
||||
<div class="writing">
|
||||
<div class="topbar">
|
||||
<div class="red"></div>
|
||||
<div class="yellow"></div>
|
||||
<div class="green"></div>
|
||||
</div>
|
||||
<div class="code">
|
||||
<ul>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-container">
|
||||
<div class="perspec" style="--spreaddist:75px; --scaledist: .85; --vertdist: -15px;">
|
||||
<div class="card">
|
||||
<div class="writing">
|
||||
<div class="topbar">
|
||||
<div class="red"></div>
|
||||
<div class="yellow"></div>
|
||||
<div class="green"></div>
|
||||
</div>
|
||||
<div class="code">
|
||||
<ul>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-container">
|
||||
<div class="perspec" style="--spreaddist: 50px; --scaledist: .9; --vertdist: -10px;">
|
||||
<div class="card">
|
||||
<div class="writing">
|
||||
<div class="topbar">
|
||||
<div class="red"></div>
|
||||
<div class="yellow"></div>
|
||||
<div class="green"></div>
|
||||
</div>
|
||||
<div class="code">
|
||||
<ul>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-container">
|
||||
<div class="perspec" style="--spreaddist: 25px; --scaledist: .95; --vertdist: -5px;">
|
||||
<div class="card">
|
||||
<div class="writing">
|
||||
<div class="topbar">
|
||||
<div class="red"></div>
|
||||
<div class="yellow"></div>
|
||||
<div class="green"></div>
|
||||
</div>
|
||||
<div class="code">
|
||||
<ul>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-container">
|
||||
<div class="perspec" style="--spreaddist: 0px; --scaledist: 1; --vertdist: 0px;">
|
||||
<div class="card">
|
||||
<div class="writing">
|
||||
<div class="topbar">
|
||||
<div class="red"></div>
|
||||
<div class="yellow"></div>
|
||||
<div class="green"></div>
|
||||
</div>
|
||||
<div class="code">
|
||||
<ul>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<script>
|
||||
const stackContainer = document.querySelector('.stack-container');
|
||||
const cardNodes = document.querySelectorAll('.card-container');
|
||||
const perspecNodes = document.querySelectorAll('.perspec');
|
||||
const perspec = document.querySelector('.perspec');
|
||||
const card = document.querySelector('.card');
|
||||
|
||||
let counter = stackContainer.children.length;
|
||||
|
||||
function randomIntFromInterval(min, max) {
|
||||
return Math.floor(Math.random() * (max - min + 1) + min);
|
||||
}
|
||||
|
||||
card.addEventListener('animationend', function () {
|
||||
perspecNodes.forEach(function (elem, index) {
|
||||
elem.classList.add('explode');
|
||||
});
|
||||
});
|
||||
|
||||
perspec.addEventListener('animationend', function (e) {
|
||||
if (e.animationName === 'explode') {
|
||||
cardNodes.forEach(function (elem, index) {
|
||||
|
||||
elem.classList.add('pokeup');
|
||||
|
||||
elem.addEventListener('click', function () {
|
||||
let updown = [800, -800]
|
||||
let randomY = updown[Math.floor(Math.random() * updown.length)];
|
||||
let randomX = Math.floor(Math.random() * 1000) - 1000;
|
||||
elem.style.transform = `translate(${randomX}px, ${randomY}px) rotate(-540deg)`
|
||||
elem.style.transition = "transform 1s ease, opacity 2s";
|
||||
elem.style.opacity = "0";
|
||||
counter--;
|
||||
if (counter === 0) {
|
||||
stackContainer.style.width = "0";
|
||||
stackContainer.style.height = "0";
|
||||
}
|
||||
});
|
||||
|
||||
let numLines = randomIntFromInterval(5, 10);
|
||||
|
||||
for (let index = 0; index < numLines; index++) {
|
||||
let lineLength = randomIntFromInterval(25, 97);
|
||||
var node = document.createElement("li");
|
||||
node.classList.add('node-' + index);
|
||||
elem.querySelector('.code ul').appendChild(node).setAttribute('style', '--linelength: ' + lineLength + '%;');
|
||||
|
||||
//draw lines of code 1 by 1
|
||||
if (index == 0) {
|
||||
elem.querySelector('.code ul .node-' + index).classList.add('writeLine');
|
||||
} else {
|
||||
elem.querySelector('.code ul .node-' + (index - 1)).addEventListener('animationend', function (e) {
|
||||
elem.querySelector('.code ul .node-' + index).classList.add('writeLine');
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
+432
@@ -0,0 +1,432 @@
|
||||
<head>
|
||||
<style>
|
||||
body,
|
||||
html {
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
font-family: 'Quicksand', sans-serif;
|
||||
font-weight: 400;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.writing {
|
||||
width: 320px;
|
||||
height: 200px;
|
||||
background-color: #3f3f3f;
|
||||
border: 1px solid #bbbbbb;
|
||||
border-radius: 6px 6px 4px 4px;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.writing .topbar{
|
||||
position: absolute;
|
||||
width: 100%;
|
||||
height: 12px;
|
||||
background-color: #f1f1f1;
|
||||
border-top-left-radius: 4px;
|
||||
border-top-right-radius: 4px;
|
||||
}
|
||||
|
||||
.writing .topbar div{
|
||||
height: 6px;
|
||||
width: 6px;
|
||||
border-radius: 50%;
|
||||
margin: 3px;
|
||||
float: left;
|
||||
}
|
||||
|
||||
.writing .topbar div.green{
|
||||
background-color: #60d060;
|
||||
}
|
||||
.writing .topbar div.red{
|
||||
background-color: red;
|
||||
}
|
||||
.writing .topbar div.yellow{
|
||||
background-color: #e6c015;
|
||||
}
|
||||
|
||||
.writing .code {
|
||||
padding: 15px;
|
||||
}
|
||||
|
||||
.writing .code ul {
|
||||
list-style: none;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.writing .code ul li {
|
||||
background-color: #9e9e9e;
|
||||
width: 0;
|
||||
height: 7px;
|
||||
border-radius: 6px;
|
||||
margin: 10px 0;
|
||||
}
|
||||
|
||||
.container {
|
||||
display: -webkit-box;
|
||||
display: -ms-flexbox;
|
||||
display: flex;
|
||||
-webkit-box-align: center;
|
||||
-ms-flex-align: center;
|
||||
align-items: center;
|
||||
-webkit-box-pack: center;
|
||||
-ms-flex-pack: center;
|
||||
justify-content: center;
|
||||
height: 100vh;
|
||||
width: 100%;
|
||||
-webkit-transition: -webkit-transform .5s;
|
||||
transition: -webkit-transform .5s;
|
||||
transition: transform .5s;
|
||||
transition: transform .5s, -webkit-transform .5s;
|
||||
}
|
||||
|
||||
.stack-container {
|
||||
position: relative;
|
||||
width: 420px;
|
||||
height: 210px;
|
||||
-webkit-transition: width 1s, height 1s;
|
||||
transition: width 1s, height 1s;
|
||||
}
|
||||
|
||||
.pokeup {
|
||||
-webkit-transition: all .3s ease;
|
||||
transition: all .3s ease;
|
||||
}
|
||||
|
||||
.pokeup:hover {
|
||||
-webkit-transform: translateY(-10px);
|
||||
transform: translateY(-10px);
|
||||
-webkit-transition: .3s ease;
|
||||
transition: .3s ease;
|
||||
}
|
||||
|
||||
|
||||
.error {
|
||||
width: 400px;
|
||||
padding: 40px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.error h1 {
|
||||
font-size: 125px;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
font-weight: 700;
|
||||
}
|
||||
|
||||
.error h2 {
|
||||
margin: -30px 0 0 0;
|
||||
padding: 0px;
|
||||
font-size: 47px;
|
||||
letter-spacing: 12px;
|
||||
}
|
||||
|
||||
.perspec {
|
||||
-webkit-perspective: 1000px;
|
||||
perspective: 1000px;
|
||||
}
|
||||
|
||||
.writeLine{
|
||||
-webkit-animation: writeLine .4s linear forwards;
|
||||
animation: writeLine .4s linear forwards;
|
||||
}
|
||||
|
||||
.explode{
|
||||
-webkit-animation: explode .5s ease-in-out forwards;
|
||||
animation: explode .5s ease-in-out forwards;
|
||||
}
|
||||
|
||||
.card {
|
||||
-webkit-animation: tiltcard .5s ease-in-out 1s forwards;
|
||||
animation: tiltcard .5s ease-in-out 1s forwards;
|
||||
position: absolute;
|
||||
}
|
||||
|
||||
@-webkit-keyframes tiltcard {
|
||||
0% {
|
||||
-webkit-transform: rotateY(0deg);
|
||||
transform: rotateY(0deg);
|
||||
}
|
||||
|
||||
100% {
|
||||
-webkit-transform: rotateY(-30deg);
|
||||
transform: rotateY(-30deg);
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes tiltcard {
|
||||
0% {
|
||||
-webkit-transform: rotateY(0deg);
|
||||
transform: rotateY(0deg);
|
||||
}
|
||||
|
||||
100% {
|
||||
-webkit-transform: rotateY(-30deg);
|
||||
transform: rotateY(-30deg);
|
||||
}
|
||||
}
|
||||
|
||||
@-webkit-keyframes explode {
|
||||
0% {
|
||||
-webkit-transform: translate(0, 0) scale(1);
|
||||
transform: translate(0, 0) scale(1);
|
||||
}
|
||||
|
||||
100% {
|
||||
-webkit-transform: translate(var(--spreaddist), var(--vertdist)) scale(var(--scaledist));
|
||||
transform: translate(var(--spreaddist), var(--vertdist)) scale(var(--scaledist));
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes explode {
|
||||
0% {
|
||||
-webkit-transform: translate(0, 0) scale(1);
|
||||
transform: translate(0, 0) scale(1);
|
||||
}
|
||||
|
||||
100% {
|
||||
-webkit-transform: translate(var(--spreaddist), var(--vertdist)) scale(var(--scaledist));
|
||||
transform: translate(var(--spreaddist), var(--vertdist)) scale(var(--scaledist));
|
||||
}
|
||||
}
|
||||
|
||||
@-webkit-keyframes writeLine {
|
||||
0% {
|
||||
width:0;
|
||||
}
|
||||
|
||||
100% {
|
||||
width: var(--linelength);
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes writeLine {
|
||||
0% {
|
||||
width:0;
|
||||
}
|
||||
|
||||
100% {
|
||||
width: var(--linelength);
|
||||
}
|
||||
}
|
||||
|
||||
@media screen and (max-width: 1000px) {
|
||||
.container {
|
||||
-webkit-transform: scale(.85);
|
||||
transform: scale(.85);
|
||||
}
|
||||
}
|
||||
|
||||
@media screen and (max-width: 850px) {
|
||||
.container {
|
||||
-webkit-transform: scale(.75);
|
||||
transform: scale(.75);
|
||||
}
|
||||
}
|
||||
|
||||
@media screen and (max-width: 775px) {
|
||||
.container {
|
||||
-ms-flex-wrap: wrap-reverse;
|
||||
flex-wrap: wrap-reverse;
|
||||
-webkit-box-align: inherit;
|
||||
-ms-flex-align: inherit;
|
||||
align-items: inherit;
|
||||
}
|
||||
}
|
||||
|
||||
@media screen and (max-width: 370px) {
|
||||
.container {
|
||||
-webkit-transform: scale(.6);
|
||||
transform: scale(.6);
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
<div class="container">
|
||||
<div class="error">
|
||||
<h1>405</h1>
|
||||
<h2>error</h2>
|
||||
<p>Methode nicht erlaubt</p>
|
||||
<p> </p>
|
||||
<a onclick="history.go(0)" style="border: 0px; background-color: rgb(59, 0, 253); border-radius: 5px; padding: 9px; padding-left: 85px; padding-right: 85px; color: white; cursor: pointer;">Neuladen</a><br/><br/>
|
||||
<a onclick="window.location='/'" style="border: 0px; background-color: #bfc0c2; border-radius: 5px; padding: 9px; padding-left: 72px; padding-right: 71px; color: black; cursor: pointer;">Zur Startseite</a>
|
||||
</div>
|
||||
<div class="stack-container">
|
||||
<div class="card-container">
|
||||
<div class="perspec" style="--spreaddist: 125px; --scaledist: .75; --vertdist: -25px;">
|
||||
<div class="card">
|
||||
<div class="writing">
|
||||
<div class="topbar">
|
||||
<div class="red"></div>
|
||||
<div class="yellow"></div>
|
||||
<div class="green"></div>
|
||||
</div>
|
||||
<div class="code">
|
||||
<ul>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-container">
|
||||
<div class="perspec" style="--spreaddist: 100px; --scaledist: .8; --vertdist: -20px;">
|
||||
<div class="card">
|
||||
<div class="writing">
|
||||
<div class="topbar">
|
||||
<div class="red"></div>
|
||||
<div class="yellow"></div>
|
||||
<div class="green"></div>
|
||||
</div>
|
||||
<div class="code">
|
||||
<ul>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-container">
|
||||
<div class="perspec" style="--spreaddist:75px; --scaledist: .85; --vertdist: -15px;">
|
||||
<div class="card">
|
||||
<div class="writing">
|
||||
<div class="topbar">
|
||||
<div class="red"></div>
|
||||
<div class="yellow"></div>
|
||||
<div class="green"></div>
|
||||
</div>
|
||||
<div class="code">
|
||||
<ul>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-container">
|
||||
<div class="perspec" style="--spreaddist: 50px; --scaledist: .9; --vertdist: -10px;">
|
||||
<div class="card">
|
||||
<div class="writing">
|
||||
<div class="topbar">
|
||||
<div class="red"></div>
|
||||
<div class="yellow"></div>
|
||||
<div class="green"></div>
|
||||
</div>
|
||||
<div class="code">
|
||||
<ul>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-container">
|
||||
<div class="perspec" style="--spreaddist: 25px; --scaledist: .95; --vertdist: -5px;">
|
||||
<div class="card">
|
||||
<div class="writing">
|
||||
<div class="topbar">
|
||||
<div class="red"></div>
|
||||
<div class="yellow"></div>
|
||||
<div class="green"></div>
|
||||
</div>
|
||||
<div class="code">
|
||||
<ul>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-container">
|
||||
<div class="perspec" style="--spreaddist: 0px; --scaledist: 1; --vertdist: 0px;">
|
||||
<div class="card">
|
||||
<div class="writing">
|
||||
<div class="topbar">
|
||||
<div class="red"></div>
|
||||
<div class="yellow"></div>
|
||||
<div class="green"></div>
|
||||
</div>
|
||||
<div class="code">
|
||||
<ul>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<script>
|
||||
|
||||
const stackContainer = document.querySelector('.stack-container');
|
||||
const cardNodes = document.querySelectorAll('.card-container');
|
||||
const perspecNodes = document.querySelectorAll('.perspec');
|
||||
const perspec = document.querySelector('.perspec');
|
||||
const card = document.querySelector('.card');
|
||||
|
||||
let counter = stackContainer.children.length;
|
||||
|
||||
//function to generate random number
|
||||
function randomIntFromInterval(min, max) {
|
||||
return Math.floor(Math.random() * (max - min + 1) + min);
|
||||
}
|
||||
|
||||
//after tilt animation, fire the explode animation
|
||||
card.addEventListener('animationend', function () {
|
||||
perspecNodes.forEach(function (elem, index) {
|
||||
elem.classList.add('explode');
|
||||
});
|
||||
});
|
||||
|
||||
//after explode animation do a bunch of stuff
|
||||
perspec.addEventListener('animationend', function (e) {
|
||||
if (e.animationName === 'explode') {
|
||||
cardNodes.forEach(function (elem, index) {
|
||||
|
||||
//add hover animation class
|
||||
elem.classList.add('pokeup');
|
||||
|
||||
//add event listner to throw card on click
|
||||
elem.addEventListener('click', function () {
|
||||
let updown = [800, -800]
|
||||
let randomY = updown[Math.floor(Math.random() * updown.length)];
|
||||
let randomX = Math.floor(Math.random() * 1000) - 1000;
|
||||
elem.style.transform = `translate(${randomX}px, ${randomY}px) rotate(-540deg)`
|
||||
elem.style.transition = "transform 1s ease, opacity 2s";
|
||||
elem.style.opacity = "0";
|
||||
counter--;
|
||||
if (counter === 0) {
|
||||
stackContainer.style.width = "0";
|
||||
stackContainer.style.height = "0";
|
||||
}
|
||||
});
|
||||
|
||||
//generate random number of lines of code between 4 and 10 and add to each card
|
||||
let numLines = randomIntFromInterval(5, 10);
|
||||
|
||||
//loop through the lines and add them to the DOM
|
||||
for (let index = 0; index < numLines; index++) {
|
||||
let lineLength = randomIntFromInterval(25, 97);
|
||||
var node = document.createElement("li");
|
||||
node.classList.add('node-' + index);
|
||||
elem.querySelector('.code ul').appendChild(node).setAttribute('style', '--linelength: ' + lineLength + '%;');
|
||||
|
||||
//draw lines of code 1 by 1
|
||||
if (index == 0) {
|
||||
elem.querySelector('.code ul .node-' + index).classList.add('writeLine');
|
||||
} else {
|
||||
elem.querySelector('.code ul .node-' + (index - 1)).addEventListener('animationend', function (e) {
|
||||
elem.querySelector('.code ul .node-' + index).classList.add('writeLine');
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
</script>
|
||||
</body>
|
||||
+432
@@ -0,0 +1,432 @@
|
||||
<head>
|
||||
<style>
|
||||
body,
|
||||
html {
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
font-family: 'Quicksand', sans-serif;
|
||||
font-weight: 400;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.writing {
|
||||
width: 320px;
|
||||
height: 200px;
|
||||
background-color: #3f3f3f;
|
||||
border: 1px solid #bbbbbb;
|
||||
border-radius: 6px 6px 4px 4px;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.writing .topbar{
|
||||
position: absolute;
|
||||
width: 100%;
|
||||
height: 12px;
|
||||
background-color: #f1f1f1;
|
||||
border-top-left-radius: 4px;
|
||||
border-top-right-radius: 4px;
|
||||
}
|
||||
|
||||
.writing .topbar div{
|
||||
height: 6px;
|
||||
width: 6px;
|
||||
border-radius: 50%;
|
||||
margin: 3px;
|
||||
float: left;
|
||||
}
|
||||
|
||||
.writing .topbar div.green{
|
||||
background-color: #60d060;
|
||||
}
|
||||
.writing .topbar div.red{
|
||||
background-color: red;
|
||||
}
|
||||
.writing .topbar div.yellow{
|
||||
background-color: #e6c015;
|
||||
}
|
||||
|
||||
.writing .code {
|
||||
padding: 15px;
|
||||
}
|
||||
|
||||
.writing .code ul {
|
||||
list-style: none;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.writing .code ul li {
|
||||
background-color: #9e9e9e;
|
||||
width: 0;
|
||||
height: 7px;
|
||||
border-radius: 6px;
|
||||
margin: 10px 0;
|
||||
}
|
||||
|
||||
.container {
|
||||
display: -webkit-box;
|
||||
display: -ms-flexbox;
|
||||
display: flex;
|
||||
-webkit-box-align: center;
|
||||
-ms-flex-align: center;
|
||||
align-items: center;
|
||||
-webkit-box-pack: center;
|
||||
-ms-flex-pack: center;
|
||||
justify-content: center;
|
||||
height: 100vh;
|
||||
width: 100%;
|
||||
-webkit-transition: -webkit-transform .5s;
|
||||
transition: -webkit-transform .5s;
|
||||
transition: transform .5s;
|
||||
transition: transform .5s, -webkit-transform .5s;
|
||||
}
|
||||
|
||||
.stack-container {
|
||||
position: relative;
|
||||
width: 420px;
|
||||
height: 210px;
|
||||
-webkit-transition: width 1s, height 1s;
|
||||
transition: width 1s, height 1s;
|
||||
}
|
||||
|
||||
.pokeup {
|
||||
-webkit-transition: all .3s ease;
|
||||
transition: all .3s ease;
|
||||
}
|
||||
|
||||
.pokeup:hover {
|
||||
-webkit-transform: translateY(-10px);
|
||||
transform: translateY(-10px);
|
||||
-webkit-transition: .3s ease;
|
||||
transition: .3s ease;
|
||||
}
|
||||
|
||||
|
||||
.error {
|
||||
width: 400px;
|
||||
padding: 40px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.error h1 {
|
||||
font-size: 125px;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
font-weight: 700;
|
||||
}
|
||||
|
||||
.error h2 {
|
||||
margin: -30px 0 0 0;
|
||||
padding: 0px;
|
||||
font-size: 47px;
|
||||
letter-spacing: 12px;
|
||||
}
|
||||
|
||||
.perspec {
|
||||
-webkit-perspective: 1000px;
|
||||
perspective: 1000px;
|
||||
}
|
||||
|
||||
.writeLine{
|
||||
-webkit-animation: writeLine .4s linear forwards;
|
||||
animation: writeLine .4s linear forwards;
|
||||
}
|
||||
|
||||
.explode{
|
||||
-webkit-animation: explode .5s ease-in-out forwards;
|
||||
animation: explode .5s ease-in-out forwards;
|
||||
}
|
||||
|
||||
.card {
|
||||
-webkit-animation: tiltcard .5s ease-in-out 1s forwards;
|
||||
animation: tiltcard .5s ease-in-out 1s forwards;
|
||||
position: absolute;
|
||||
}
|
||||
|
||||
@-webkit-keyframes tiltcard {
|
||||
0% {
|
||||
-webkit-transform: rotateY(0deg);
|
||||
transform: rotateY(0deg);
|
||||
}
|
||||
|
||||
100% {
|
||||
-webkit-transform: rotateY(-30deg);
|
||||
transform: rotateY(-30deg);
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes tiltcard {
|
||||
0% {
|
||||
-webkit-transform: rotateY(0deg);
|
||||
transform: rotateY(0deg);
|
||||
}
|
||||
|
||||
100% {
|
||||
-webkit-transform: rotateY(-30deg);
|
||||
transform: rotateY(-30deg);
|
||||
}
|
||||
}
|
||||
|
||||
@-webkit-keyframes explode {
|
||||
0% {
|
||||
-webkit-transform: translate(0, 0) scale(1);
|
||||
transform: translate(0, 0) scale(1);
|
||||
}
|
||||
|
||||
100% {
|
||||
-webkit-transform: translate(var(--spreaddist), var(--vertdist)) scale(var(--scaledist));
|
||||
transform: translate(var(--spreaddist), var(--vertdist)) scale(var(--scaledist));
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes explode {
|
||||
0% {
|
||||
-webkit-transform: translate(0, 0) scale(1);
|
||||
transform: translate(0, 0) scale(1);
|
||||
}
|
||||
|
||||
100% {
|
||||
-webkit-transform: translate(var(--spreaddist), var(--vertdist)) scale(var(--scaledist));
|
||||
transform: translate(var(--spreaddist), var(--vertdist)) scale(var(--scaledist));
|
||||
}
|
||||
}
|
||||
|
||||
@-webkit-keyframes writeLine {
|
||||
0% {
|
||||
width:0;
|
||||
}
|
||||
|
||||
100% {
|
||||
width: var(--linelength);
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes writeLine {
|
||||
0% {
|
||||
width:0;
|
||||
}
|
||||
|
||||
100% {
|
||||
width: var(--linelength);
|
||||
}
|
||||
}
|
||||
|
||||
@media screen and (max-width: 1000px) {
|
||||
.container {
|
||||
-webkit-transform: scale(.85);
|
||||
transform: scale(.85);
|
||||
}
|
||||
}
|
||||
|
||||
@media screen and (max-width: 850px) {
|
||||
.container {
|
||||
-webkit-transform: scale(.75);
|
||||
transform: scale(.75);
|
||||
}
|
||||
}
|
||||
|
||||
@media screen and (max-width: 775px) {
|
||||
.container {
|
||||
-ms-flex-wrap: wrap-reverse;
|
||||
flex-wrap: wrap-reverse;
|
||||
-webkit-box-align: inherit;
|
||||
-ms-flex-align: inherit;
|
||||
align-items: inherit;
|
||||
}
|
||||
}
|
||||
|
||||
@media screen and (max-width: 370px) {
|
||||
.container {
|
||||
-webkit-transform: scale(.6);
|
||||
transform: scale(.6);
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
<div class="container">
|
||||
<div class="error">
|
||||
<h1>500</h1>
|
||||
<h2>error</h2>
|
||||
<p>Server Arbeiten:</p>
|
||||
<p>Wir arbeiten momentan an den Servern und beheben ein paar Probleme.</p>
|
||||
<a onclick="history.go(0)" style="border: 0px; background-color: rgb(59, 0, 253); border-radius: 5px; padding: 9px; padding-left: 85px; padding-right: 85px; color: white; cursor: pointer;">Neuladen</a><br/><br/>
|
||||
<a onclick="window.location='/'" style="border: 0px; background-color: #bfc0c2; border-radius: 5px; padding: 9px; padding-left: 72px; padding-right: 71px; color: black; cursor: pointer;">Zur Startseite</a>
|
||||
</div>
|
||||
<div class="stack-container">
|
||||
<div class="card-container">
|
||||
<div class="perspec" style="--spreaddist: 125px; --scaledist: .75; --vertdist: -25px;">
|
||||
<div class="card">
|
||||
<div class="writing">
|
||||
<div class="topbar">
|
||||
<div class="red"></div>
|
||||
<div class="yellow"></div>
|
||||
<div class="green"></div>
|
||||
</div>
|
||||
<div class="code">
|
||||
<ul>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-container">
|
||||
<div class="perspec" style="--spreaddist: 100px; --scaledist: .8; --vertdist: -20px;">
|
||||
<div class="card">
|
||||
<div class="writing">
|
||||
<div class="topbar">
|
||||
<div class="red"></div>
|
||||
<div class="yellow"></div>
|
||||
<div class="green"></div>
|
||||
</div>
|
||||
<div class="code">
|
||||
<ul>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-container">
|
||||
<div class="perspec" style="--spreaddist:75px; --scaledist: .85; --vertdist: -15px;">
|
||||
<div class="card">
|
||||
<div class="writing">
|
||||
<div class="topbar">
|
||||
<div class="red"></div>
|
||||
<div class="yellow"></div>
|
||||
<div class="green"></div>
|
||||
</div>
|
||||
<div class="code">
|
||||
<ul>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-container">
|
||||
<div class="perspec" style="--spreaddist: 50px; --scaledist: .9; --vertdist: -10px;">
|
||||
<div class="card">
|
||||
<div class="writing">
|
||||
<div class="topbar">
|
||||
<div class="red"></div>
|
||||
<div class="yellow"></div>
|
||||
<div class="green"></div>
|
||||
</div>
|
||||
<div class="code">
|
||||
<ul>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-container">
|
||||
<div class="perspec" style="--spreaddist: 25px; --scaledist: .95; --vertdist: -5px;">
|
||||
<div class="card">
|
||||
<div class="writing">
|
||||
<div class="topbar">
|
||||
<div class="red"></div>
|
||||
<div class="yellow"></div>
|
||||
<div class="green"></div>
|
||||
</div>
|
||||
<div class="code">
|
||||
<ul>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-container">
|
||||
<div class="perspec" style="--spreaddist: 0px; --scaledist: 1; --vertdist: 0px;">
|
||||
<div class="card">
|
||||
<div class="writing">
|
||||
<div class="topbar">
|
||||
<div class="red"></div>
|
||||
<div class="yellow"></div>
|
||||
<div class="green"></div>
|
||||
</div>
|
||||
<div class="code">
|
||||
<ul>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<script>
|
||||
|
||||
const stackContainer = document.querySelector('.stack-container');
|
||||
const cardNodes = document.querySelectorAll('.card-container');
|
||||
const perspecNodes = document.querySelectorAll('.perspec');
|
||||
const perspec = document.querySelector('.perspec');
|
||||
const card = document.querySelector('.card');
|
||||
|
||||
let counter = stackContainer.children.length;
|
||||
|
||||
//function to generate random number
|
||||
function randomIntFromInterval(min, max) {
|
||||
return Math.floor(Math.random() * (max - min + 1) + min);
|
||||
}
|
||||
|
||||
//after tilt animation, fire the explode animation
|
||||
card.addEventListener('animationend', function () {
|
||||
perspecNodes.forEach(function (elem, index) {
|
||||
elem.classList.add('explode');
|
||||
});
|
||||
});
|
||||
|
||||
//after explode animation do a bunch of stuff
|
||||
perspec.addEventListener('animationend', function (e) {
|
||||
if (e.animationName === 'explode') {
|
||||
cardNodes.forEach(function (elem, index) {
|
||||
|
||||
//add hover animation class
|
||||
elem.classList.add('pokeup');
|
||||
|
||||
//add event listner to throw card on click
|
||||
elem.addEventListener('click', function () {
|
||||
let updown = [800, -800]
|
||||
let randomY = updown[Math.floor(Math.random() * updown.length)];
|
||||
let randomX = Math.floor(Math.random() * 1000) - 1000;
|
||||
elem.style.transform = `translate(${randomX}px, ${randomY}px) rotate(-540deg)`
|
||||
elem.style.transition = "transform 1s ease, opacity 2s";
|
||||
elem.style.opacity = "0";
|
||||
counter--;
|
||||
if (counter === 0) {
|
||||
stackContainer.style.width = "0";
|
||||
stackContainer.style.height = "0";
|
||||
}
|
||||
});
|
||||
|
||||
//generate random number of lines of code between 4 and 10 and add to each card
|
||||
let numLines = randomIntFromInterval(5, 10);
|
||||
|
||||
//loop through the lines and add them to the DOM
|
||||
for (let index = 0; index < numLines; index++) {
|
||||
let lineLength = randomIntFromInterval(25, 97);
|
||||
var node = document.createElement("li");
|
||||
node.classList.add('node-' + index);
|
||||
elem.querySelector('.code ul').appendChild(node).setAttribute('style', '--linelength: ' + lineLength + '%;');
|
||||
|
||||
//draw lines of code 1 by 1
|
||||
if (index == 0) {
|
||||
elem.querySelector('.code ul .node-' + index).classList.add('writeLine');
|
||||
} else {
|
||||
elem.querySelector('.code ul .node-' + (index - 1)).addEventListener('animationend', function (e) {
|
||||
elem.querySelector('.code ul .node-' + index).classList.add('writeLine');
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
</script>
|
||||
</body>
|
||||
+47
@@ -0,0 +1,47 @@
|
||||
<?php
|
||||
|
||||
require_once("lib.php");
|
||||
$mflib = new MFLib();
|
||||
|
||||
$mflib->limitperpage = 15;
|
||||
|
||||
$mflib->setCookie();
|
||||
session_start();
|
||||
|
||||
$mflib->initialize();
|
||||
|
||||
if (isset($_SESSION["uuid"]) && $_SESSION["uuid"] != "") {
|
||||
if ($mflib->dataGetWishlist() != null) {
|
||||
echo "
|
||||
<tr>
|
||||
<th>Item Name</th>
|
||||
<th>Price</th>
|
||||
<th>Creator</th>
|
||||
<th>Rating</th>
|
||||
<th>Edit</th>
|
||||
</tr>";
|
||||
|
||||
foreach ($mflib->dataGetWishlist() as $row) {
|
||||
if (strlen($row["name"]) >= 40) {
|
||||
$NAME = substr(substr($row["name"], 0, 40), 0, strrpos(substr($row["name"], 0, 40), ' ')) . " ...";
|
||||
} else $NAME = $row["name"];
|
||||
|
||||
if (!isset($row["rating"])) {
|
||||
$row["rating"] = "None";
|
||||
}
|
||||
|
||||
echo "
|
||||
<tr>
|
||||
<td alt=\"" . $row["name"] . "\"><a href=\"" . $row["url_link"] . "\">" . $NAME . "</td>
|
||||
<td>" . $row["currency"] . "" . str_replace(".00", "", sprintf ("%.2f", $row["price"])) . "</td>
|
||||
<td>" . $row["creator"] . "</td>
|
||||
<td>" . $row["rating"] . "</td>
|
||||
<td><a class=\"deletebutton\" id=\"del\" itemid=\"" . $row["id"] . "\">Delete</a></td>
|
||||
</tr>";
|
||||
}
|
||||
} else {
|
||||
echo "<table id=\"wishlist\"><p>You have nothing currently in your Wishlist</p></table>";
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
||||
@@ -0,0 +1,16 @@
|
||||
<?php
|
||||
require_once("lib.php");
|
||||
$mflib = new MFLib();
|
||||
|
||||
$mflib->limitperpage = 15;
|
||||
|
||||
$mflib->setCookie();
|
||||
session_start();
|
||||
|
||||
$mflib->initialize();
|
||||
|
||||
$wishlistArray = $mflib->dataGetWishlist();
|
||||
|
||||
print_r(json_encode($wishlistArray));
|
||||
|
||||
?>
|
||||
@@ -0,0 +1,77 @@
|
||||
<?php
|
||||
|
||||
class getGumroadData {
|
||||
public $jsonData;
|
||||
//public $jsonOBJ;
|
||||
public $setURL;
|
||||
|
||||
function load($url) {
|
||||
if (str_contains($url, '.gumroad.com/')) {
|
||||
$string = file_get_contents($url);
|
||||
|
||||
$dom = new DomDocument();
|
||||
$dom->loadHTML($string);
|
||||
$finder = new DomXPath($dom);
|
||||
|
||||
$this->jsonData = $finder->query("//*[contains(concat(' ', normalize-space(@data-component-name), ' '), ' ProductPage ')]")[0]->textContent;
|
||||
} elseif (str_contains($url, 'booth.pm/')) {
|
||||
|
||||
$string = file_get_contents($url);
|
||||
|
||||
$dom = new DomDocument();
|
||||
$dom->loadHTML($string);
|
||||
$finder = new DomXPath($dom);
|
||||
|
||||
$tmp = $finder->query("//*[contains(concat(' ', normalize-space(@type), ' '), ' application/ld+json ')]")[0]->textContent;
|
||||
|
||||
$tmp = json_decode($tmp);
|
||||
|
||||
$boothArray = array('product' => array('name' => $tmp->name,
|
||||
'description_html' => str_replace("\n", "<br>", $tmp->description) . "<br><br><br><br>",
|
||||
'long_url' => $tmp->url,
|
||||
'price_cents' => str_replace("¥ ", "", str_replace(",", "", $finder->query("//*[contains(concat(' ', normalize-space(@class), ' '), ' variation-price u-text-right ')]")[0]->textContent)) * 100,
|
||||
'currency_code' => $tmp->offers->priceCurrency,
|
||||
'rating_counts' => array(0,0,0,0,0),
|
||||
'covers' => array(
|
||||
array('url' => $tmp->image, 'filetype' => "png", 'type' => "image"),
|
||||
array('url' => $tmp->image, 'filetype' => "png", 'type' => "image")
|
||||
),
|
||||
'seller' => array(
|
||||
'name' => $finder->query("//*[contains(concat(' ', normalize-space(@data-product-list), ' '), ' from market_show via market_item_detail to shop_index ')]")[0]->textContent,
|
||||
'avatar_url' => str_replace("48x48", "128x128", $finder->query("//*[contains(concat(' ', normalize-space(@class), ' '), ' h-[24px] rounded-oval w-[24px] ')]")[0]->attributes[2]->value)
|
||||
)
|
||||
));
|
||||
|
||||
$this->jsonData = json_encode($boothArray);
|
||||
//echo $tmp;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
function getURL($id) {
|
||||
$servername = "localhost";
|
||||
$username = "database_access";
|
||||
$password = "DataAccess1.";
|
||||
$dbname = "avali_shop";
|
||||
|
||||
$conn = new mysqli($servername, $username, $password, $dbname);
|
||||
|
||||
if ($conn->connect_error) {
|
||||
die("Connection failed: " . $conn->connect_error);
|
||||
}
|
||||
|
||||
$sql = "SELECT * FROM content WHERE id=\"" . $id . "\"";
|
||||
$result = $conn->query($sql);
|
||||
$row = $result->fetch_assoc();
|
||||
$this->setURL = str_replace("?layout=profile","", $row["url_link"]);
|
||||
}
|
||||
}
|
||||
|
||||
$thisGumroad = new getGumroadData();
|
||||
$thisGumroad->getURL($_POST["id"]);
|
||||
|
||||
//$thisGumroad->getURL("173");
|
||||
|
||||
$thisGumroad->load($thisGumroad->setURL);
|
||||
print_r($thisGumroad->jsonData);
|
||||
@@ -0,0 +1,80 @@
|
||||
<?php
|
||||
|
||||
require_once("lib.php");
|
||||
$mflib = new MFLib();
|
||||
|
||||
require_once("elements.php");
|
||||
$mfelements = new MFElements();
|
||||
|
||||
$mflib->initializeDB();
|
||||
$mflib->limitperpage = 15;
|
||||
|
||||
$_GET["p"] = $_POST["p"];
|
||||
|
||||
foreach ($mflib->dataGetPageContent() as $row) {
|
||||
$tmp .= "<div class=\"column\">";
|
||||
|
||||
if (isset($_SESSION["nsfwblur"]) && $_SESSION["nsfwblur"] == true) {
|
||||
if (isset($row["nsfw"]) && $row["nsfw"] == 1)
|
||||
$tmp .= "
|
||||
<div class=\"nsfw-filter\">
|
||||
<a class=\"txt\">NSFW Content</a></br></br>
|
||||
<a class=\"btn\">Click to Show</a>
|
||||
</div>
|
||||
";
|
||||
}
|
||||
|
||||
if (strlen($row["name"]) >= 40) {
|
||||
$NAME = substr(substr($row["name"], 0, 40), 0, strrpos(substr($row["name"], 0, 40), ' ')) . " ...";
|
||||
} else $NAME = $row["name"];
|
||||
|
||||
$tmp .= "
|
||||
<a href='" . $row["url_link"] . "' class=\"imagecontainer\">
|
||||
<img class=\"imgItem\" src=\"" . $row["url_image"] . "\">
|
||||
";
|
||||
|
||||
if (!$mflib->isItMobile)
|
||||
$tmp .= "
|
||||
<a href=\"#p" . $row["id"] . "\" class=\"previewButton\">Preview</a>
|
||||
";
|
||||
|
||||
if (isset($_SESSION["uuid"]) && $_SESSION["uuid"] != null) {
|
||||
$liked = false;
|
||||
|
||||
foreach ($wishlistArray as $k) {
|
||||
if ($row["id"] == $k["id"]) {
|
||||
$liked = true;
|
||||
}
|
||||
}
|
||||
|
||||
if ($liked) {
|
||||
$tmp .= "<a class=\"likeButton\" itemid=\"" . $row["id"] . "\"><icon>favorite</icon></a>";
|
||||
} else {
|
||||
$tmp .= "<a class=\"likeButton\" itemid=\"" . $row["id"] . "\"><icon>favorite_border</icon></a>";
|
||||
}
|
||||
}
|
||||
|
||||
if (!isset($row["rating"])) {
|
||||
$row["rating"] = "None";
|
||||
}
|
||||
|
||||
$tmp .= "
|
||||
</a>
|
||||
<header>
|
||||
<a title=\"" . $row["name"] . "\">" . $NAME . "</a>
|
||||
<a style=\"text-decoration: underline;z-index: 90;\" href=\"?s=" . $row["creator"] . "\">" . $row["creator"] . "</a>
|
||||
<a>⭐" . $row["rating"] . "</a>
|
||||
</header>
|
||||
<footer>
|
||||
";
|
||||
|
||||
//print_r($row);
|
||||
|
||||
$tmp .= "
|
||||
<a>" . $row["currency"] . "" . str_replace(".00", "", sprintf ("%.2f", $row["price"])) . "</a>
|
||||
</footer>
|
||||
</div>
|
||||
";
|
||||
}
|
||||
|
||||
echo $tmp;
|
||||
@@ -0,0 +1,20 @@
|
||||
{
|
||||
"folders": [
|
||||
{
|
||||
"path": "/var/www/html"
|
||||
},
|
||||
{
|
||||
"path": "/var/www/dev.siskeldev"
|
||||
},
|
||||
{
|
||||
"path": "../nerdnation"
|
||||
},
|
||||
{
|
||||
"path": "../devilpatt"
|
||||
},
|
||||
{
|
||||
"path": "../../../home/siskeldev"
|
||||
}
|
||||
],
|
||||
"settings": {}
|
||||
}
|
||||
@@ -0,0 +1,127 @@
|
||||
<?php
|
||||
|
||||
$maintenance = false;
|
||||
|
||||
//$_GET["sort"] = "free";
|
||||
//$_GET["t"] = "davali";
|
||||
|
||||
|
||||
$o = "";
|
||||
|
||||
require_once("lib.php");
|
||||
$mflib = new MFLib();
|
||||
|
||||
require_once("elements.php");
|
||||
$mfelements = new MFElements();
|
||||
|
||||
$actual_link = $mflib->getLink();
|
||||
|
||||
$mflib->limitperpage = 15;
|
||||
|
||||
$mflib->setCookie();
|
||||
session_start();
|
||||
$mflib->initialize();
|
||||
|
||||
$wishlistArray = $mflib->dataGetWishlist();
|
||||
|
||||
if (!isset($_GET["p"])) $_GET["p"] = 1;
|
||||
|
||||
$o .= "<html>";
|
||||
$o .= $mfelements->printHead($wishlistArray);
|
||||
|
||||
$o .= "<body id=\"body\">";
|
||||
$o .= $mfelements->printSiteHeader();
|
||||
|
||||
$o .= '
|
||||
<div class="row-main">
|
||||
<div class="column-main col1" onclick="window.location = \'/avatar-assets\'">
|
||||
<a href="/avatar-assets/">Avatar Assets</a>
|
||||
</div>
|
||||
<div class="column-main col2" onclick="window.location = \'/avatar-bases\'">
|
||||
<a href="/avatar-bases/">Avatar Bases</a>
|
||||
</div>
|
||||
<div class="column-main col3" onclick="window.location = \'/avatars\'">
|
||||
<a href="/avatars/">Prebuild Avatars</a>
|
||||
</div>
|
||||
<div class="column-main col4" onclick="window.location = \'/worlds\'">
|
||||
<a href="/worlds/">Worlds</a>
|
||||
</div>
|
||||
</div>';
|
||||
|
||||
$o .= $mfelements->printNSFWpromt($actual_link);
|
||||
|
||||
$o .= $mfelements->printJSLoginVar();
|
||||
$o .= $mfelements->printScriptSources();
|
||||
|
||||
$o .= "</body></html>";
|
||||
|
||||
|
||||
if ($maintenance) {
|
||||
echo "";
|
||||
} else {
|
||||
echo $o;
|
||||
die();
|
||||
}
|
||||
?>
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>Maintenance - MFGames.net</title>
|
||||
<style>
|
||||
@font-face{
|
||||
font-family: orifont;
|
||||
src: url(https://mfgames.net/assets/fonts/LEVIBRUSH.TTF);
|
||||
}
|
||||
|
||||
@font-face{
|
||||
font-family: rubik;
|
||||
src: url(https://mfgames.net/assets/fonts/Rubik-VariableFont_wght.ttf);
|
||||
}
|
||||
|
||||
head, body {
|
||||
height: 100%;
|
||||
margin: 0px;
|
||||
background-color: #121212 !important;
|
||||
}
|
||||
|
||||
div {
|
||||
|
||||
}
|
||||
|
||||
h2 {
|
||||
font-family: orifont;
|
||||
color: #ffffff;
|
||||
font-size: 50pt;
|
||||
}
|
||||
|
||||
p {
|
||||
font-family: orifont;
|
||||
color: #aaa;
|
||||
font-size: 30pt;
|
||||
}
|
||||
|
||||
.centered{
|
||||
position:absolute;
|
||||
text-align: center;
|
||||
width:500px;
|
||||
height:300px;
|
||||
left:50%;
|
||||
top:50%;
|
||||
margin-left:-250px;
|
||||
margin-top:-150px;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div class="centered">
|
||||
<h2>MFGames.net</h2>
|
||||
<p>Currently Under Construction</p>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,465 @@
|
||||
<?php
|
||||
|
||||
// Wenn Filter -> Filter löschen button
|
||||
|
||||
class MFLib {
|
||||
// Public Variables to be accessed though Class Initialisation in Variable
|
||||
public $searchQuery = ""; // string: What has been searched; Public Access
|
||||
public $limitperpage = 15; // int: Default -> 15; Can be overridden
|
||||
public $current_species; // string: Current Filtered Species (Get Through Database);
|
||||
public $current_speciesShort; // string: Shorted version of current Filtered Species (Get Through Database); Public Access
|
||||
public $currentSection = 0;
|
||||
|
||||
public $isItMobile = true;
|
||||
|
||||
|
||||
// Private Variables for Class only
|
||||
private $dbConn; // object: Database Object to interact with while Class is Accessed through function; not for Public access
|
||||
private $limitbegin; // string: Will be set through current pagenumber; Database knows through this where to start the current Search; no for Public access
|
||||
private $nsfwfilter;
|
||||
private $nsfwfilter2;
|
||||
private $totalpages;
|
||||
private $lastpage;
|
||||
private $ifsearch; // string: While a SearchQuery is present it will contain a specific part for the Redirection URL at Footer Page Navigation; not for Public access
|
||||
private $query_over_species;
|
||||
private $PageContent;
|
||||
|
||||
|
||||
// Main Functions
|
||||
function initialize() {
|
||||
$this->initializeDB();
|
||||
|
||||
$this->isMobile();
|
||||
|
||||
$this->setCookie();
|
||||
|
||||
$this->doNSFW($this->getLink(), $this->getSection());
|
||||
$this->doNSFWBlur($this->getLink());
|
||||
$this->doSearch();
|
||||
$this->doLastPage();
|
||||
|
||||
$this->setBeginn();
|
||||
$this->setCurrentSpecies();
|
||||
$this->setCurrentTotalPages();
|
||||
|
||||
$this->setErrorHandlerFunc();
|
||||
}
|
||||
|
||||
function getSection() {
|
||||
$section = 0;
|
||||
|
||||
if (str_contains($_SERVER['REQUEST_URI'], 'avatar-bases')) {
|
||||
$section = 3;
|
||||
} else if (str_contains($_SERVER['REQUEST_URI'], 'avatar-assets')) {
|
||||
$section = 1;
|
||||
} else if (str_contains($_SERVER['REQUEST_URI'], 'avatars')) {
|
||||
$section = 2;
|
||||
} else if (str_contains($_SERVER['REQUEST_URI'], 'worlds')) {
|
||||
$section = 4;
|
||||
}
|
||||
|
||||
$this->currentSection = $section;
|
||||
return $section;
|
||||
}
|
||||
|
||||
function getLink() {
|
||||
return (empty($_SERVER['HTTPS']) ? 'http' : 'https') . "://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";
|
||||
}
|
||||
|
||||
function isMobile() {
|
||||
$useragent = $_SERVER['HTTP_USER_AGENT'];
|
||||
|
||||
if(preg_match('/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i',$useragent)||preg_match('/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i',$useragent)) {
|
||||
$this->isItMobile = true;
|
||||
} else {
|
||||
$this->isItMobile = false;
|
||||
}
|
||||
return $this->isItMobile;
|
||||
}
|
||||
|
||||
// Override Section
|
||||
function doNSFW($link, $section) {
|
||||
if (isset($_GET["nsfw"])) {
|
||||
if ($_GET["nsfw"] == "true") {
|
||||
$_SESSION["nsfw"] = true;
|
||||
$_SESSION["promtshown"] = true;
|
||||
$_SESSION["nsfwblur"] = true;
|
||||
$link = str_replace("&nsfw=true", "", str_replace("?nsfw=true&", "?", str_replace("?nsfw=true", "", $link)));
|
||||
header("Location: " . $link);
|
||||
die();
|
||||
}
|
||||
|
||||
if ($_GET["nsfw"] == "false") {
|
||||
$_SESSION["nsfw"] = false;
|
||||
$_SESSION["promtshown"] = true;
|
||||
$_SESSION["nsfwblur"] = true;
|
||||
$link = str_replace("&nsfw=false", "", str_replace("?nsfw=false&", "?", str_replace("?nsfw=false", "", $link)));
|
||||
header("Location: " . $link);
|
||||
die();
|
||||
}
|
||||
}
|
||||
|
||||
if (isset($_SESSION["nsfw"]) && $_SESSION["nsfw"] == true) {
|
||||
$this->nsfwfilter = "AND section=" . $section;
|
||||
$this->nsfwfilter2 = "WHERE section=" . $section;
|
||||
} else {
|
||||
$this->nsfwfilter = "AND section=" . $section . " AND nsfw='0'";
|
||||
$this->nsfwfilter2 = "WHERE section=" . $section . " AND nsfw='0'";
|
||||
}
|
||||
}
|
||||
|
||||
function doNSFWBlur($link) {
|
||||
if (isset($_GET["nsfwblur"])) {
|
||||
if ($_GET["nsfwblur"] == "true") {
|
||||
$_SESSION["nsfwblur"] = true;
|
||||
$link = str_replace("&nsfwblur=true", "", str_replace("?nsfwblur=true&", "?", str_replace("?nsfwblur=true", "", $link)));
|
||||
header("Location: " . $link);
|
||||
} else {
|
||||
$_SESSION["nsfwblur"] = false;
|
||||
$link = str_replace("&nsfwblur=false", "", str_replace("?nsfwblur=false&", "?", str_replace("?nsfwblur=false", "", $link)));
|
||||
header("Location: " . $link);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function doSearch() {
|
||||
if (isset($_GET["s"])) {
|
||||
$this->searchQuery = str_replace("'", "\'", str_replace("`", "\`", str_replace('"', '\"', $_GET["s"])));
|
||||
}
|
||||
|
||||
if (isset($_GET["s"])) {
|
||||
$this->ifsearch = "&s=" . $_GET["s"];
|
||||
} else $this->ifsearch = "";
|
||||
}
|
||||
|
||||
function doLastPage() {
|
||||
if (isset($_GET["p"])) {
|
||||
$this->lastpage = $_GET["p"];
|
||||
} else $this->lastpage = 1;
|
||||
}
|
||||
|
||||
function setBeginn() {
|
||||
if (isset($_GET["p"])) {
|
||||
$this->limitbegin = ($_GET["p"] - 1) * $this->limitperpage;
|
||||
} else {
|
||||
$_GET["p"] = 1;
|
||||
$this->limitbegin = 0;
|
||||
}
|
||||
}
|
||||
|
||||
function setCurrentSpecies() {
|
||||
if (isset($_GET["t"])) {
|
||||
$sql = "SELECT * FROM species WHERE `shorted`=\"" . $_GET["t"] . "\" ORDER BY id ASC";
|
||||
|
||||
$result = $this->dbConn->query($sql);
|
||||
$current_type = $result->fetch_assoc();
|
||||
|
||||
if ($current_type["species"] == "( - Props - )") $current_type["species"] = "Props";
|
||||
|
||||
$this->current_species = $current_type["species"];
|
||||
$this->current_speciesShort = $current_type["shorted"];
|
||||
|
||||
$this->current_species = str_replace("'","\'",str_replace("`","\`",str_replace('"','\"',$this->current_species)));
|
||||
}
|
||||
}
|
||||
|
||||
function setCookie() {
|
||||
$maxlifetime = 86400;
|
||||
$secure = true;
|
||||
$httponly = true;
|
||||
$samesite = 'lax';
|
||||
session_set_cookie_params([
|
||||
'lifetime' => $maxlifetime,
|
||||
'path' => '/',
|
||||
'domain' => $_SERVER['HTTP_HOST'],
|
||||
'secure' => $secure,
|
||||
'httponly' => $httponly,
|
||||
'samesite' => $samesite
|
||||
]);
|
||||
}
|
||||
|
||||
function setCurrentTotalPages() {
|
||||
$SEARCH = $this->searchQuery;
|
||||
|
||||
if (isset($_GET["sort"]) && $_GET["sort"] == "free") {
|
||||
$PRICE = "price=0";
|
||||
} else {
|
||||
$PRICE = "price IS NOT NULL";
|
||||
}
|
||||
|
||||
// Setting the NSFW Filter for the Content
|
||||
if (isset($_SESSION["nsfw"]) && $_SESSION["nsfw"] == true) {
|
||||
$NSFW = "nsfw IS NOT NULL"; // Disable NSFW Filter
|
||||
} else {
|
||||
$NSFW = "nsfw=0"; // Enable NSFW Filter
|
||||
}
|
||||
|
||||
$SECTION = "section=" . $this->currentSection;
|
||||
|
||||
if ($SEARCH != "") {
|
||||
$NAME_SEARCH = "name LIKE '%" . $SEARCH . "%'";
|
||||
$CREATOR_SEARCH = "creator LIKE '%" . $SEARCH . "%'";
|
||||
$SPECIES_SEARCH = "species LIKE '%" . $SEARCH . "%'";
|
||||
} else {
|
||||
$NAME_SEARCH = "name IS NOT NULL";
|
||||
$CREATOR_SEARCH = "creator IS NOT NULL";
|
||||
$SPECIES_SEARCH = "species IS NOT NULL";
|
||||
}
|
||||
|
||||
$sql = "SELECT count(*) as total from content WHERE
|
||||
" . $PRICE . " AND " . $NAME_SEARCH . " AND " . $SECTION . " AND " . $NSFW . "
|
||||
OR " . $PRICE . " AND " . $CREATOR_SEARCH . " AND " . $SECTION . " AND " . $NSFW . "
|
||||
OR " . $PRICE . " AND " . $SPECIES_SEARCH . " AND " . $SECTION . " AND " . $NSFW . ";";
|
||||
|
||||
$this->totalpages = ceil($this->setQuery($sql)[0]['total'] / $this->limitperpage);
|
||||
}
|
||||
|
||||
function setErrorHandlerFunc() {
|
||||
// A user-defined error handler function
|
||||
function myErrorHandler($errno, $errstr, $errfile, $errline) {
|
||||
echo "<b>Custom error:</b> [$errno] $errstr<br>";
|
||||
echo " Error on line $errline in $errfile<br>";
|
||||
}
|
||||
|
||||
// Set user-defined error handler function
|
||||
set_error_handler("myErrorHandler");
|
||||
}
|
||||
|
||||
function getErrorPage($page) {
|
||||
$htmlFile = file_get_contents("/var/www/error/" . $page . ".html");
|
||||
return $htmlFile;
|
||||
}
|
||||
|
||||
// Database Initialisation
|
||||
function initializeDB() {
|
||||
$servername = "localhost";
|
||||
$username = "database_access";
|
||||
$password = "DataAccess1.";
|
||||
$dbname = "avali_shop";
|
||||
|
||||
try {
|
||||
$this->dbConn = new mysqli($servername, $username, $password, $dbname);
|
||||
$this->testDB();
|
||||
} catch (Exception $e) {
|
||||
echo $this->getErrorPage(500);
|
||||
die();
|
||||
}
|
||||
}
|
||||
|
||||
function testDB() {
|
||||
if ($this->dbConn->connect_error) {
|
||||
die("Connection failed: " . $this->dbConn->connect_error);
|
||||
}
|
||||
}
|
||||
|
||||
function setQuery($sql) {
|
||||
$query = $this->dbConn->query($sql);
|
||||
$array = array();
|
||||
if ($query->num_rows > 0) {
|
||||
while ($row = $query->fetch_assoc()) {
|
||||
$temparray = array();
|
||||
foreach ($row as $element) {
|
||||
$key = array_search ($element, $row);
|
||||
|
||||
$temparray = $temparray + array($key => $element);
|
||||
}
|
||||
array_push($array, $temparray);
|
||||
}
|
||||
}
|
||||
return $array;
|
||||
}
|
||||
|
||||
// Get Database Data
|
||||
function dataGetOverSpecies() {
|
||||
return $this->setQuery("SELECT * FROM over_species");
|
||||
}
|
||||
|
||||
function dataGetOtherSpecies() {
|
||||
return $this->setQuery("SELECT * FROM species WHERE a_tag=\"\"");
|
||||
}
|
||||
|
||||
function dataGetSpecies($tag) {
|
||||
return $this->setQuery("SELECT * FROM species WHERE a_tag=\"" . $tag . "\" ORDER BY species ASC");
|
||||
}
|
||||
|
||||
function dataGetAllSpecies() {
|
||||
return $this->setQuery("SELECT * FROM species");
|
||||
}
|
||||
|
||||
function dataGetPageContent() {
|
||||
$SEARCH = $this->searchQuery;
|
||||
|
||||
$LIMIT = "LIMIT " . $this->limitbegin . ", " . $this->limitperpage;
|
||||
|
||||
if (isset($_GET["sort"]) && $_GET["sort"] == "free") {
|
||||
$PRICE = "price=0";
|
||||
} else {
|
||||
$PRICE = "price IS NOT NULL";
|
||||
}
|
||||
|
||||
if (isset($_GET["sort"]) && $_GET["sort"] == "priceup") {
|
||||
$ORDER = "ORDER BY price ASC"; // Sort by Lowest to Highes Price
|
||||
} else if (isset($_GET["sort"]) && $_GET["sort"] == "pricedown") {
|
||||
$ORDER = "ORDER BY price DESC"; // Sort by Highes to Lowest Price
|
||||
} else {
|
||||
$ORDER = "ORDER BY id DESC"; // Sort by Recently Added
|
||||
}
|
||||
|
||||
// Setting the NSFW Filter for the Content
|
||||
if (isset($_SESSION["nsfw"]) && $_SESSION["nsfw"] == true) {
|
||||
$NSFW = "nsfw IS NOT NULL"; // Disable NSFW Filter
|
||||
} else {
|
||||
$NSFW = "nsfw=0"; // Enable NSFW Filter
|
||||
}
|
||||
|
||||
$SECTION = "section=" . $this->currentSection;
|
||||
|
||||
if ($SEARCH != "") {
|
||||
$NAME_SEARCH = "name LIKE '%" . $SEARCH . "%'";
|
||||
$CREATOR_SEARCH = "creator LIKE '%" . $SEARCH . "%'";
|
||||
$SPECIES_SEARCH = "species LIKE '%" . $SEARCH . "%'";
|
||||
|
||||
$SPECIES_TYPE = "";
|
||||
} else {
|
||||
$NAME_SEARCH = "name IS NOT NULL";
|
||||
$CREATOR_SEARCH = "creator IS NOT NULL";
|
||||
$SPECIES_SEARCH = "species IS NOT NULL";
|
||||
|
||||
$SPECIES_TYPE = "species";
|
||||
}
|
||||
|
||||
if (isset($_GET["t"])) {
|
||||
$TYPE = "AND species LIKE \"%" . $this->current_species . "%\"";
|
||||
} else {
|
||||
$TYPE = "";
|
||||
}
|
||||
|
||||
$sql = "SELECT * from content WHERE
|
||||
" . $PRICE . " AND " . $NAME_SEARCH . " AND " . $SECTION . " " . $TYPE . " AND " . $NSFW . "
|
||||
OR " . $PRICE . " AND " . $CREATOR_SEARCH . " AND " . $SECTION . " " . $TYPE . " AND " . $NSFW . "
|
||||
OR " . $PRICE . " AND " . $SPECIES_SEARCH . " AND " . $SECTION . " " . $TYPE . " AND " . $NSFW . "
|
||||
|
||||
" . $ORDER . " " . $LIMIT . ";";
|
||||
|
||||
$return = $this->setQuery($sql);
|
||||
$this->PageContent = $return;
|
||||
return $return;
|
||||
}
|
||||
|
||||
function dataGetWishlist() {
|
||||
if (isset($_SESSION["uuid"])) {
|
||||
$wishArray = json_decode($this->setQuery("SELECT * FROM wishlist_uuid WHERE uuid=\"" . $_SESSION["uuid"] . "\"")[0]["array"]);
|
||||
} else $wishArray = null;
|
||||
$descWishArray = array();
|
||||
|
||||
$returnArray = array();
|
||||
|
||||
if ($wishArray != null) {
|
||||
for($x = 0; $x < count($wishArray); $x++) {
|
||||
$descWishArray[] = $wishArray[count($wishArray) - 1 - $x];
|
||||
}
|
||||
} else {
|
||||
return null;
|
||||
}
|
||||
|
||||
if ($descWishArray != null) {
|
||||
foreach ($descWishArray as $wish) {
|
||||
$returnArray[] = $this->setQuery("SELECT * FROM content WHERE id=\"" . $wish . "\"")[0];
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
return $returnArray;
|
||||
}
|
||||
|
||||
// Print Footer
|
||||
function footerBackArrow() {
|
||||
$tmp = "";
|
||||
|
||||
$hrefbuilder = "?p=" . ($this->lastpage - 1);
|
||||
if (isset($_GET["t"]) && $_GET["t"] != "") $hrefbuilder .= "&t=" . $this->current_speciesShort . "";
|
||||
if (isset($_GET["s"]) && $_GET["s"] != "") $hrefbuilder .= "&s=" . $_GET["s"];
|
||||
if (isset($_GET["sort"]) && $_GET["sort"] != "") $hrefbuilder .= "&sort=" . $_GET["sort"];
|
||||
|
||||
if (isset($_GET["p"]) && $this->lastpage != 1) {
|
||||
$tmp = "<a href=\"" . $hrefbuilder . "\" class=\"previous round\">‹</a>";
|
||||
}
|
||||
|
||||
return $tmp;
|
||||
}
|
||||
|
||||
function footerForwardArrow() {
|
||||
$tmp = "";
|
||||
|
||||
$hrefbuilder = "?p=" . ($this->lastpage + 1);
|
||||
if (isset($_GET["t"]) && $_GET["t"] != "") $hrefbuilder .= "&t=" . $this->current_speciesShort . "";
|
||||
if (isset($_GET["s"]) && $_GET["s"] != "") $hrefbuilder .= "&s=" . $_GET["s"];
|
||||
if (isset($_GET["sort"]) && $_GET["sort"] != "") $hrefbuilder .= "&sort=" . $_GET["sort"];
|
||||
|
||||
if ($this->lastpage != $this->totalpages && $this->totalpages != 0) {
|
||||
$tmp = "<a href=\"" . $hrefbuilder . "\" class=\"previous round\">›</a>";
|
||||
}
|
||||
|
||||
return $tmp;
|
||||
}
|
||||
|
||||
function footerBackDots() {
|
||||
$tmp = "";
|
||||
|
||||
$hrefbuilder = "?p=1";
|
||||
if (isset($_GET["t"]) && $_GET["t"] != "") $hrefbuilder .= "&t=" . $this->current_speciesShort . "";
|
||||
if (isset($_GET["s"]) && $_GET["s"] != "") $hrefbuilder .= "&s=" . $_GET["s"];
|
||||
if (isset($_GET["sort"]) && $_GET["sort"] != "") $hrefbuilder .= "&sort=" . $_GET["sort"];
|
||||
|
||||
if (1 != $this->lastpage && 1 < $this->lastpage && 1 < $this->lastpage + 1 && 2 != $this->lastpage) {
|
||||
$tmp = "<a href=\"" . $hrefbuilder . "\" class=\"previous round\">1</a>";
|
||||
if (3 != $this->lastpage) {
|
||||
$tmp = $tmp . "<a class=\"threedots-l\">…</a>";
|
||||
}
|
||||
}
|
||||
|
||||
return $tmp;
|
||||
}
|
||||
|
||||
function footerForwardDots() {
|
||||
$tmp = "";
|
||||
|
||||
$hrefbuilder = "?p=" . $this->totalpages;
|
||||
if (isset($_GET["t"]) && $_GET["t"] != "") $hrefbuilder .= "&t=" . $this->current_speciesShort . "";
|
||||
if (isset($_GET["s"]) && $_GET["s"] != "") $hrefbuilder .= "&s=" . $_GET["s"];
|
||||
if (isset($_GET["sort"]) && $_GET["sort"] != "") $hrefbuilder .= "&sort=" . $_GET["sort"];
|
||||
|
||||
if ($this->totalpages != $this->lastpage && $this->totalpages > $this->lastpage && $this->totalpages > $this->lastpage + 1) {
|
||||
if ($this->totalpages - 1 > $this->lastpage + 1) {
|
||||
$tmp = $tmp . "<a class=\"threedots-l\">…</a>";
|
||||
}
|
||||
$tmp = $tmp . "<a href=\"" . $hrefbuilder . "\" class=\"previous round\">" . $this->totalpages . "</a>";
|
||||
}
|
||||
|
||||
return $tmp;
|
||||
}
|
||||
|
||||
function footerPages() {
|
||||
$tmp = " ";
|
||||
|
||||
for ($x = 0; $x < $this->totalpages; $x++) {
|
||||
|
||||
if ($_GET["p"] == $x + 1) {
|
||||
$temp = "style=\"color: white;\"";
|
||||
} else {
|
||||
$temp = "";
|
||||
}
|
||||
|
||||
$hrefbuilder = "?p=" . ($x + 1);
|
||||
if (isset($_GET["t"]) && $_GET["t"] != "") $hrefbuilder .= "&t=" . $this->current_speciesShort . "";
|
||||
if (isset($_GET["s"]) && $_GET["s"] != "") $hrefbuilder .= "&s=" . $_GET["s"];
|
||||
if (isset($_GET["sort"]) && $_GET["sort"] != "") $hrefbuilder .= "&sort=" . $_GET["sort"];
|
||||
|
||||
if ($x + 1 == $_GET["p"] - 1 || $x + 1 == $_GET["p"] || $x + 1 == $_GET["p"] + 1) {
|
||||
$tmp = $tmp . "<a " . $temp . " href=\"" . $hrefbuilder . "\" class=\"previous round\">" . ($x + 1) . "</a>";
|
||||
}
|
||||
}
|
||||
|
||||
return $tmp;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
aa
|
||||
|
||||
<?php
|
||||
session_start();
|
||||
|
||||
$servername = "localhost";
|
||||
$username = "database_access";
|
||||
$password = "DataAccess1.";
|
||||
$dbname = "avali_shop";
|
||||
|
||||
$conn = new mysqli($servername, $username, $password, $dbname);
|
||||
|
||||
if ($conn->connect_error) {
|
||||
die("Connection failed: " . $conn->connect_error);
|
||||
}
|
||||
|
||||
$sql_test = "SELECT * FROM wishlist_uuid WHERE uuid=\"" . $_POST["uuid"] . "\"";
|
||||
$result_test = $conn->query($sql_test);
|
||||
if ($result_test->num_rows > 0) {
|
||||
$row = $result_test->fetch_assoc();
|
||||
if ($row["uuid"] == (string)$_POST["uuid"]) {
|
||||
$_SESSION["uuid"] = (string)$_POST["uuid"];
|
||||
}
|
||||
}
|
||||
|
||||
header("Location:javascript://history.go(-2);");
|
||||
header("Location: https://mfgames.net/#acc");
|
||||
?>
|
||||
+11
@@ -0,0 +1,11 @@
|
||||
aa
|
||||
|
||||
<?php
|
||||
session_start();
|
||||
|
||||
$_SESSION["uuid"] = null;
|
||||
|
||||
unset($_SESSION["uuid"]);
|
||||
|
||||
header("Location: https://mfgames.net/");
|
||||
?>
|
||||
@@ -0,0 +1,64 @@
|
||||
<?php
|
||||
|
||||
session_start();
|
||||
|
||||
function uniqidReal($lenght = 13) {
|
||||
// uniqid gives 13 chars, but you could adjust it to your needs.
|
||||
if (function_exists("random_bytes")) {
|
||||
$bytes = random_bytes(ceil($lenght / 2));
|
||||
} elseif (function_exists("openssl_random_pseudo_bytes")) {
|
||||
$bytes = openssl_random_pseudo_bytes(ceil($lenght / 2));
|
||||
} else {
|
||||
throw new Exception("no cryptographically secure random function available");
|
||||
}
|
||||
return substr(bin2hex($bytes), 0, $lenght);
|
||||
}
|
||||
|
||||
function getNewUUID() {
|
||||
return uniqidReal() . "-" . uniqidReal() . "-" . uniqidReal();
|
||||
}
|
||||
|
||||
|
||||
$servername = "localhost";
|
||||
$username = "database_access";
|
||||
$password = "DataAccess1.";
|
||||
$dbname = "avali_shop";
|
||||
|
||||
$conn = new mysqli($servername, $username, $password, $dbname);
|
||||
|
||||
if ($conn->connect_error) {
|
||||
die("Connection failed: " . $conn->connect_error);
|
||||
}
|
||||
|
||||
|
||||
if (!isset($_SESSION["uuid"])) {
|
||||
|
||||
$exists = true;
|
||||
|
||||
$NEWuuid;
|
||||
|
||||
while($exists) {
|
||||
$NEWuuid = getNewUUID();
|
||||
|
||||
$sql = "SELECT * FROM wishlist_uuid WHERE uuid=\"" . $NEWuuid . "\"";
|
||||
//$sql = "SELECT * FROM wishlist_uuid WHERE uuid=\"" . $_GET["uuid"] . "\"";
|
||||
$result = $conn->query($sql);
|
||||
$row = $result->fetch_assoc();
|
||||
|
||||
if ($result->num_rows > 0) {
|
||||
$exists = true;
|
||||
} else {
|
||||
$exists = false;
|
||||
}
|
||||
}
|
||||
|
||||
$sql_create = "INSERT INTO `wishlist_uuid`(`uuid`, `last_use`, `array`) VALUES ('" . $NEWuuid . "','" . date("Y-m-d H:i:s") . "', '')";
|
||||
$result_create = $conn->query($sql_create);
|
||||
|
||||
|
||||
$_SESSION["uuid"] = $NEWuuid;
|
||||
}
|
||||
|
||||
header("Location: https://mfgames.net/#acc");
|
||||
|
||||
?>
|
||||
+47
@@ -0,0 +1,47 @@
|
||||
<?php
|
||||
// ERROR CODES: 50 = NO SESSION UUID SET LOGIN OR CREATE WISHLIST
|
||||
|
||||
$servername = "localhost";
|
||||
$username = "database_access";
|
||||
$password = "DataAccess1.";
|
||||
$dbname = "avali_shop";
|
||||
|
||||
$conn = new mysqli($servername, $username, $password, $dbname);
|
||||
|
||||
if ($conn->connect_error) {
|
||||
die("Connection failed: " . $conn->connect_error);
|
||||
}
|
||||
|
||||
|
||||
session_start();
|
||||
|
||||
$mode = $_POST["m"];
|
||||
$itemId = (int)$_POST["id"];
|
||||
|
||||
$uuid = $_SESSION["uuid"];
|
||||
|
||||
$sql = "SELECT * FROM wishlist_uuid WHERE uuid=\"" . $uuid . "\"";
|
||||
$result = $conn->query($sql);
|
||||
$row = $result->fetch_assoc();
|
||||
|
||||
if ($row["array"] != "") {
|
||||
$currentArray = json_decode($row["array"]);
|
||||
} else {
|
||||
$currentArray = array();
|
||||
}
|
||||
|
||||
$to_remove = $itemId;
|
||||
|
||||
$key = array_search($to_remove, $currentArray);
|
||||
if ($key !== false) {
|
||||
unset($currentArray[$key]);
|
||||
}
|
||||
$currentArray = array_values($currentArray);
|
||||
|
||||
print_r(json_encode($currentArray));
|
||||
|
||||
$sql_Update = "UPDATE `wishlist_uuid` SET `last_use`='" . date("Y-m-d H:i:s") . "',`array`='" . json_encode($currentArray) . "' WHERE uuid='" . $uuid . "'";
|
||||
$result_Update = $conn->query($sql_Update);
|
||||
|
||||
|
||||
?>
|
||||
@@ -0,0 +1,2 @@
|
||||
user-agent: *
|
||||
disallow: /phpmyadmin/
|
||||
@@ -0,0 +1,9 @@
|
||||
<?php
|
||||
session_start();
|
||||
|
||||
if (isset($_POST["avali"]) && $_POST["avali"] == "true") {
|
||||
$_SESSION["avali"] = "true";
|
||||
} else if (isset($_POST["avali"]) && $_POST["avali"] == "false") {
|
||||
$_SESSION["avali"] = "false";
|
||||
}
|
||||
?>
|
||||
@@ -0,0 +1,11 @@
|
||||
<?php
|
||||
|
||||
$asdasdas = array(13, 1234, 634, 784, 90);
|
||||
|
||||
if (array_search("1234", $asdasdas) !== false) {
|
||||
echo "true";
|
||||
} else {
|
||||
echo "false";
|
||||
}
|
||||
|
||||
?>
|
||||
@@ -0,0 +1,16 @@
|
||||
<?php
|
||||
|
||||
$url = "https://scarthefur.gumroad.com/l/kitabikini";
|
||||
|
||||
$string = file_get_contents($url);
|
||||
|
||||
$dom = new DomDocument();
|
||||
@$dom->loadHTML($string);
|
||||
$finder = new DomXPath($dom);
|
||||
|
||||
$content = $finder->query("//*[contains(concat(' ', normalize-space(@data-component-name), ' '), ' ProductPage ')]")[0]->textContent;
|
||||
$content = json_decode($content);
|
||||
|
||||
print_r($content->product->seller);
|
||||
|
||||
?>
|
||||
@@ -0,0 +1,57 @@
|
||||
<?php
|
||||
/*
|
||||
|
||||
// ERROR CODES: 50 = NO SESSION UUID SET LOGIN OR CREATE WISHLIST
|
||||
|
||||
$servername = "localhost";
|
||||
$username = "database_access";
|
||||
$password = "DataAccess1.";
|
||||
$dbname = "avali_shop";
|
||||
|
||||
$conn = new mysqli($servername, $username, $password, $dbname);
|
||||
|
||||
if ($conn->connect_error) {
|
||||
die("Connection failed: " . $conn->connect_error);
|
||||
}
|
||||
|
||||
|
||||
session_start();
|
||||
|
||||
$mode = $_GET["m"];
|
||||
$itemId = (int)$_GET["id"];
|
||||
|
||||
$uuid = $_SESSION["uuid"];
|
||||
|
||||
|
||||
$sql = "SELECT * FROM wishlist_uuid WHERE uuid=\"" . $uuid . "\"";
|
||||
$result = $conn->query($sql);
|
||||
$row = $result->fetch_assoc();
|
||||
|
||||
if ($row["array"] != "") {
|
||||
$currentArray = json_decode($row["array"]);
|
||||
} else {
|
||||
$currentArray = array();
|
||||
}
|
||||
|
||||
if ($mode == "add") {
|
||||
if (!in_array($itemId, $currentArray)) {
|
||||
$currentArray[] = $itemId;
|
||||
}
|
||||
} else if ($mode == "rem") {
|
||||
$to_remove = $itemId;
|
||||
|
||||
$key = array_search($to_remove, $currentArray);
|
||||
if ($key !== false) {
|
||||
unset($currentArray[$key]);
|
||||
}
|
||||
$currentArray = array_values($currentArray);
|
||||
|
||||
}
|
||||
|
||||
print_r(json_encode($currentArray));
|
||||
|
||||
$sql_Update = "UPDATE `wishlist_uuid` SET `last_use`='" . date("Y-m-d H:i:s") . "',`array`='" . json_encode($currentArray) . "' WHERE uuid='" . $uuid . "'";
|
||||
$result_Update = $conn->query($sql_Update);
|
||||
|
||||
*/
|
||||
?>
|
||||
@@ -0,0 +1,196 @@
|
||||
<head>
|
||||
<style>
|
||||
@font-face{
|
||||
font-family: rubik;
|
||||
src: url(https://mfgames.net/assets/Rubik-VariableFont_wght.ttf);
|
||||
}
|
||||
|
||||
* {
|
||||
font-family: rubik;
|
||||
}
|
||||
|
||||
input {
|
||||
color: white;
|
||||
background-color: #2e2e2e;
|
||||
border: none;
|
||||
font-size: 20px;
|
||||
margin: 3px;
|
||||
padding: 5px;
|
||||
border-radius: 5px;
|
||||
}
|
||||
|
||||
button {
|
||||
color: white;
|
||||
background-color: #3e3e3e;
|
||||
border: none;
|
||||
font-size: 20px;
|
||||
margin: 3px;
|
||||
padding: 5px 10px;
|
||||
border-radius: 10px;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
|
||||
<?php
|
||||
|
||||
$url = $_POST["url"];
|
||||
$species = $_POST["species"];
|
||||
$nsfw = $_POST["nsfw"];
|
||||
|
||||
$isExisting = false;
|
||||
|
||||
|
||||
/*
|
||||
$url = "https://flashychisme.gumroad.com/l/SimpleHoodieWickerbeast";
|
||||
$species = "Wickerbeast";
|
||||
$nsfw = "0";
|
||||
*/
|
||||
|
||||
if (isset($_POST["url"]) && isset($_POST["species"]) && isset($_POST["nsfw"])) {
|
||||
|
||||
//if (true) {
|
||||
$servername = "localhost";
|
||||
$username = "siskeldev";
|
||||
$password = "LuckyAimie";
|
||||
$dbname = "avali_shop";
|
||||
|
||||
if (str_contains($url, '?')) {
|
||||
$url = substr($url, 0, strpos($url, "?"));
|
||||
}
|
||||
|
||||
$string = file_get_contents($url);
|
||||
|
||||
$dom = new DomDocument();
|
||||
$dom->loadHTML($string);
|
||||
$finder = new DomXPath($dom);
|
||||
|
||||
$content = $finder->query("//*[contains(concat(' ', normalize-space(@data-component-name), ' '), ' ProductPage ')]")[0]->textContent;
|
||||
$content = json_decode($content);
|
||||
$c = $content->product;
|
||||
|
||||
|
||||
$currency = "{
|
||||
\"usd\": \"$\",
|
||||
\"eur\": \"€\",
|
||||
\"crc\": \"₡\",
|
||||
\"gbp\": \"£\",
|
||||
\"ils\": \"₪\",
|
||||
\"inr\": \"₹\",
|
||||
\"jpy\": \"¥\",
|
||||
\"krw\": \"₩\",
|
||||
\"ngn\": \"₦\",
|
||||
\"php\": \"₱\",
|
||||
\"pln\": \"zł\",
|
||||
\"pyg\": \"₲\",
|
||||
\"thb\": \"฿\",
|
||||
\"uah\": \"₴\",
|
||||
\"vnd\": \"₫\",
|
||||
\"aud\": \"A\$\",
|
||||
\"cad\": \"CAD\$\"
|
||||
}";
|
||||
|
||||
$currency = json_decode($currency);
|
||||
$currencyOutput = $c->currency_code;
|
||||
|
||||
if ($c->thumbnail_url == null) {
|
||||
$thumbnailURL = $c->covers[0]->url;
|
||||
} else $thumbnailURL = $c->thumbnail_url;
|
||||
|
||||
$rating = $finder->query("//*[contains(concat(' ', normalize-space(@class), ' '), ' rating-average ')]")[0]->textContent;
|
||||
|
||||
if ($rating == null || $rating == "" || $rating == " ") $rating = "None";
|
||||
|
||||
$conn = new mysqli($servername, $username, $password, $dbname);
|
||||
|
||||
if ($conn->connect_error) {
|
||||
$failed = true;
|
||||
}
|
||||
|
||||
$c->name = str_replace("'","\'",str_replace("`","\`",str_replace('"','\"',$c->name)));
|
||||
$c->seller->name = str_replace("'","\'",str_replace("`","\`",str_replace('"','\"',$c->seller->name)));
|
||||
$species = str_replace("'","\'",str_replace("`","\`",str_replace('"','\"',$species)));
|
||||
|
||||
|
||||
$sql2 = "SELECT * FROM `content` WHERE
|
||||
name LIKE \"%" . $c->name . "%\" AND
|
||||
url_link LIKE \"%" . $url . "%\" AND
|
||||
url_image LIKE \"%" . $thumbnailURL . "%\" AND
|
||||
creator LIKE \"%" . $c->seller->name . "%\";";
|
||||
|
||||
$result2 = $conn->query($sql2);
|
||||
|
||||
if ($result2->num_rows > 0) {
|
||||
$isExisting = true;
|
||||
} else {
|
||||
$isExisting = false;
|
||||
}
|
||||
|
||||
$sql = "INSERT INTO content (
|
||||
`name`,
|
||||
`price`,
|
||||
`currency`,
|
||||
`url_link`,
|
||||
`url_image`,
|
||||
`creator`,
|
||||
`rating`,
|
||||
`species`,
|
||||
`nsfw`,
|
||||
`section`
|
||||
)
|
||||
VALUES (
|
||||
'" . $c->name . "',
|
||||
'" . $c->price_cents . "',
|
||||
'" . $currency->$currencyOutput . "',
|
||||
'" . $url . "',
|
||||
'" . $thumbnailURL . "',
|
||||
'" . $c->seller->name . "',
|
||||
'" . $rating . "',
|
||||
'" . $species . "',
|
||||
'" . $nsfw . "',
|
||||
4
|
||||
)";
|
||||
if ($isExisting == false) {
|
||||
if ($conn->query($sql) === TRUE) {
|
||||
echo "<a style=\"color: green;\">Successful !</a>";
|
||||
} else {
|
||||
$errormsg = "<a style=\"color: red;\">Error: " . $sql . "<br>" . $conn->error . "</a>";
|
||||
$failed = true;
|
||||
}
|
||||
} else {
|
||||
echo "<a style=\"color: orange;\">Already Exists!</a>";
|
||||
}
|
||||
|
||||
|
||||
$conn->close();
|
||||
}
|
||||
|
||||
|
||||
?>
|
||||
<body style="background-color: #1e1e1e; color: white">
|
||||
<form action="AutoInsertData.php" method="post">
|
||||
<label for="url">URL:</label><br>
|
||||
<input type="text" id="url" name="url" style="width:100%"><br>
|
||||
<label for="species">Species:</label><br>
|
||||
<input type="text" id="species" name="species" style="width:100%"><br>
|
||||
<label for="nsfw">NSFW:</label><br>
|
||||
<input type="text" id="nsfw" name="nsfw" value="0" style="width:100%">
|
||||
<button type="submit">Submit</button>
|
||||
</form>
|
||||
<br>
|
||||
<br>
|
||||
<?php
|
||||
|
||||
echo "
|
||||
'" . $c->name . "', <br>
|
||||
'" . ($c->price_cents / 100) . "', <br>
|
||||
'" . $currency->$currencyOutput . "', <br>
|
||||
'" . $url . "', <br>
|
||||
'" . $thumbnailURL . "', <br>
|
||||
'" . $c->seller->name . "', <br>
|
||||
'" . $rating . "', <br>
|
||||
'" . $species . "',<br>
|
||||
'" . $nsfw . "',<br>
|
||||
2";
|
||||
|
||||
?>
|
||||
@@ -0,0 +1,68 @@
|
||||
<?php
|
||||
|
||||
//$_GET["sort"] = "free";
|
||||
//$_GET["t"] = "davali";
|
||||
|
||||
|
||||
$o = "";
|
||||
|
||||
require_once("../lib.php");
|
||||
$mflib = new MFLib();
|
||||
|
||||
require_once("../elements.php");
|
||||
$mfelements = new MFElements();
|
||||
|
||||
$actual_link = $mflib->getLink();
|
||||
|
||||
$mflib->limitperpage = 15;
|
||||
|
||||
$mflib->setCookie();
|
||||
session_start();
|
||||
|
||||
if ( isset($_GET["s"]) && $_GET["s"] == "61776746" ) {
|
||||
$_SESSION["adminmode"] = true;
|
||||
header("Location: https://mfgames.net/#insert");
|
||||
} else if ( isset($_GET["s"]) && $_GET["s"] == "59572354") {
|
||||
$_SESSION["adminmode"] = false;
|
||||
header("Location: https://mfgames.net/");
|
||||
}
|
||||
$mflib->initialize();
|
||||
|
||||
$wishlistArray = $mflib->dataGetWishlist();
|
||||
|
||||
if (!isset($_GET["p"])) $_GET["p"] = 1;
|
||||
|
||||
$o .= "<html>";
|
||||
$o .= $mfelements->printHead($wishlistArray);
|
||||
|
||||
$o .= "<body id=\"body\">";
|
||||
$o .= $mfelements->printSiteHeader();
|
||||
|
||||
$o .= "<div id=\"filter\" class=\"filter\" >";
|
||||
$o .= $mfelements->printFilterSection2($mflib, $actual_link);
|
||||
$o .= $mfelements->printAccountSection($mflib);
|
||||
$o .= "</div>";
|
||||
|
||||
|
||||
if ($mflib->isItMobile == false) {
|
||||
$o .= $mfelements->printPreviewProductPage();
|
||||
|
||||
if (isset($_SESSION["adminmode"]) && $_SESSION["adminmode"] == true) {
|
||||
$o .= $mfelements->printAdminInsertData($mflib);
|
||||
}
|
||||
}
|
||||
|
||||
$o .= $mfelements->printNavbar($mflib);
|
||||
|
||||
$o .= $mfelements->printPageContent($mflib, $wishlistArray);
|
||||
|
||||
$o .= $mfelements->printNSFWpromt($actual_link);
|
||||
|
||||
$o .= $mfelements->printFooter($mflib);
|
||||
|
||||
$o .= $mfelements->printJSLoginVar();
|
||||
$o .= $mfelements->printScriptSources();
|
||||
|
||||
$o .= "</body></html>";
|
||||
|
||||
echo $o;
|
||||
Reference in New Issue
Block a user