From 74e505af771605b33b1638e4fda8ec36eaaf805b Mon Sep 17 00:00:00 2001 From: ghost Date: Wed, 11 Aug 2021 10:53:52 +0300 Subject: [PATCH 01/43] trim key/value --- public/index.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/public/index.php b/public/index.php index 287cf2e..4e6f0f1 100755 --- a/public/index.php +++ b/public/index.php @@ -53,8 +53,8 @@ foreach ($db->getData($ns, $tx, $query, $limit, PAGE_LIMIT) as $value) { 'block' => $value['block'], 'txid' => $value['txid'], 'time' => date('d-m-Y H:i', $value['time']), - 'key' => nl2br($value['key']), - 'value' => nl2br($value['value']), + 'key' => nl2br(trim($value['key'])), + 'value' => nl2br(trim($value['value'])), ]; } From e3837647580581cf8cad75c961333748bfa2b343 Mon Sep 17 00:00:00 2001 From: KVAZAR <88580090+kvazar-network@users.noreply.github.com> Date: Sun, 24 Apr 2022 19:19:44 +0300 Subject: [PATCH 02/43] change webapp domain --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 5e7a740..7d741d7 100644 --- a/README.md +++ b/README.md @@ -2,4 +2,4 @@ Web-oriented content exploring platform for Kevacoin Blockchain ### demo -https://kvazar.ml +https://kvazar.today From 6e4e2b103f37958216032f026ef243256ae45bc8 Mon Sep 17 00:00:00 2001 From: KVAZAR <88580090+kvazar-network@users.noreply.github.com> Date: Sun, 24 Apr 2022 19:20:03 +0300 Subject: [PATCH 03/43] change webapp domain --- config-default.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config-default.php b/config-default.php index 469c419..235419d 100644 --- a/config-default.php +++ b/config-default.php @@ -6,7 +6,7 @@ ini_set('display_startup_errors', '1'); error_reporting(E_ALL); // Application -define('BASE_URL', 'https://kvazar.ml'); +define('BASE_URL', 'https://kvazar.today'); define('PAGE_LIMIT', 10); define('SEF_MODE', true); From d3287da869e6f2fdd6a12f399d283f24c0f98983 Mon Sep 17 00:00:00 2001 From: KVAZAR <88580090+kvazar-network@users.noreply.github.com> Date: Sun, 24 Apr 2022 19:44:10 +0300 Subject: [PATCH 04/43] add requirements section --- README.md | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 7d741d7..53533c3 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,14 @@ # kvazar-network webapp -Web-oriented content exploring platform for Kevacoin Blockchain +Web-oriented content exploring platform for Kevacoin Blockchain + +### requirements +``` +php-7.4 +php-curl +php-mbstring +php-mysql +``` + ### demo https://kvazar.today From 72bfe4fdf0bb1388ac5c4c4c8fcced15a47d8987 Mon Sep 17 00:00:00 2001 From: KVAZAR <88580090+kvazar-network@users.noreply.github.com> Date: Sun, 24 Apr 2022 20:08:30 +0300 Subject: [PATCH 05/43] update requirements --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 53533c3..02bb27b 100644 --- a/README.md +++ b/README.md @@ -7,6 +7,8 @@ php-7.4 php-curl php-mbstring php-mysql +php-bcmath +php-gd ``` From ae2e1e2927bb6e73a1d2cbe9de62ce1088f65506 Mon Sep 17 00:00:00 2001 From: KVAZAR <88580090+kvazar-network@users.noreply.github.com> Date: Sun, 24 Apr 2022 20:25:11 +0300 Subject: [PATCH 06/43] Update README.md --- README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 02bb27b..866bcdd 100644 --- a/README.md +++ b/README.md @@ -10,7 +10,9 @@ php-mysql php-bcmath php-gd ``` +#### database +https://github.com/kvazar-network/database -### demo +### webapp example https://kvazar.today From 064e610713bcc226b62feeecb8e91d2f27f2c288 Mon Sep 17 00:00:00 2001 From: KVAZAR <88580090+kvazar-network@users.noreply.github.com> Date: Sun, 24 Apr 2022 22:24:32 +0300 Subject: [PATCH 07/43] add sef_mode nginx example --- README.md | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/README.md b/README.md index 866bcdd..bc36303 100644 --- a/README.md +++ b/README.md @@ -14,5 +14,17 @@ php-gd https://github.com/kvazar-network/database +### nginx sef mode + +``` + location / { + try_files $uri $uri/ =404 @sef; + } + + location @sef { + rewrite ^(/.*)$ /?$1 last; + } +``` + ### webapp example https://kvazar.today From 7fb9cfadedad9ba8c5c33c1428d6ee7638ddc5cf Mon Sep 17 00:00:00 2001 From: KVAZAR <88580090+kvazar-network@users.noreply.github.com> Date: Sun, 24 Apr 2022 22:25:12 +0300 Subject: [PATCH 08/43] Update README.md --- README.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index bc36303..dacbd40 100644 --- a/README.md +++ b/README.md @@ -17,13 +17,13 @@ https://github.com/kvazar-network/database ### nginx sef mode ``` - location / { - try_files $uri $uri/ =404 @sef; - } +location / { + try_files $uri $uri/ =404 @sef; +} - location @sef { - rewrite ^(/.*)$ /?$1 last; - } +location @sef { + rewrite ^(/.*)$ /?$1 last; +} ``` ### webapp example From 7ea0702506445510ed02904e45c88fe5dcd89708 Mon Sep 17 00:00:00 2001 From: KVAZAR <88580090+kvazar-network@users.noreply.github.com> Date: Sun, 24 Apr 2022 22:26:10 +0300 Subject: [PATCH 09/43] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index dacbd40..2e1da94 100644 --- a/README.md +++ b/README.md @@ -14,7 +14,7 @@ php-gd https://github.com/kvazar-network/database -### nginx sef mode +### nginx sef_mode example ``` location / { From 3ba8137f8f123cc0622c8bd0dce959e3d382cd8f Mon Sep 17 00:00:00 2001 From: KVAZAR <88580090+kvazar-network@users.noreply.github.com> Date: Thu, 28 Apr 2022 12:07:44 +0300 Subject: [PATCH 10/43] hide search button --- public/index.phtml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/public/index.phtml b/public/index.phtml index 4cb16a1..37cc87f 100755 --- a/public/index.phtml +++ b/public/index.phtml @@ -89,7 +89,7 @@
- +
From cbf85142490f79fb0bd524d199f5bc0dbe6eaf1e Mon Sep 17 00:00:00 2001 From: KVAZAR <88580090+kvazar-network@users.noreply.github.com> Date: Thu, 28 Apr 2022 12:08:18 +0300 Subject: [PATCH 11/43] update styles --- public/css/app.css | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/public/css/app.css b/public/css/app.css index 5799f99..3354288 100755 --- a/public/css/app.css +++ b/public/css/app.css @@ -12,12 +12,19 @@ button::-moz-focus-inner { input, button { opacity: 0.8; - color: #5A526C; + color: #432B79; + background: #BFBACC; + border: 0; + border-radius: 3px; + height: 18px; + line-height: 18px; + outline: none; + text-align: center; } body { color: #E8E8E8; - background-color: #000; + background-color: #18102d; font-family: Sans-Serif, Arial; font-size: 14px; font-weight: normal; @@ -89,7 +96,7 @@ img:hover { .b-g::before { content: ""; - background-image: linear-gradient(to left, #9B94BF, #000); + background-image: linear-gradient(to left, #9B94BF, #18102d); height: 1px; width: 360px; display: inline-block; @@ -97,7 +104,7 @@ img:hover { .b-g::after { content: ""; - background-image: linear-gradient(to right, #9B94BF, #000); + background-image: linear-gradient(to right, #9B94BF, #18102d); height: 1px; width: 360px; display: inline-block; From 8d88affa58f3699e3f0bcd57976ce88a5697105d Mon Sep 17 00:00:00 2001 From: KVAZAR <88580090+kvazar-network@users.noreply.github.com> Date: Thu, 28 Apr 2022 12:08:56 +0300 Subject: [PATCH 12/43] remove tabs --- public/css/app.css | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/public/css/app.css b/public/css/app.css index 3354288..d6db510 100755 --- a/public/css/app.css +++ b/public/css/app.css @@ -1,8 +1,8 @@ button::-moz-focus-inner { border: 0; - padding: 0; - margin-top:-2px; - margin-bottom: -2px; + padding: 0; + margin-top:-2px; + margin-bottom: -2px; } * { From 3e7ae1289ef18eaf130d6c289f8aecb59931d226 Mon Sep 17 00:00:00 2001 From: KVAZAR <88580090+kvazar-network@users.noreply.github.com> Date: Thu, 28 Apr 2022 12:09:56 +0300 Subject: [PATCH 13/43] update css revision number --- public/index.phtml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/public/index.phtml b/public/index.phtml index 37cc87f..e4c318b 100755 --- a/public/index.phtml +++ b/public/index.phtml @@ -1,7 +1,7 @@ - + From 58815af72d5ba5f62254abf72213dcdb0aeed27b Mon Sep 17 00:00:00 2001 From: KVAZAR <88580090+kvazar-network@users.noreply.github.com> Date: Thu, 28 Apr 2022 12:11:41 +0300 Subject: [PATCH 14/43] display pseudo-deleted content --- library/mysql.php | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/library/mysql.php b/library/mysql.php index fa9c3b3..d702a97 100755 --- a/library/mysql.php +++ b/library/mysql.php @@ -27,7 +27,7 @@ class MySQL { WHERE `namespace`.`hash` = ? AND `data`.`ns` = "1" - AND `data`.`deleted` = "0" + -- AND `data`.`deleted` = "0" -- ORDER BY `data`.`blockId` DESC @@ -63,7 +63,7 @@ class MySQL { WHERE `data`.`txid` = ? AND `data`.`ns` = "0" - AND `data`.`deleted` = "0" + -- AND `data`.`deleted` = "0" -- ORDER BY `block`.`blockId` DESC @@ -86,7 +86,7 @@ class MySQL { WHERE `namespace`.`hash` = ? AND `data`.`ns` = "0" - AND `data`.`deleted` = "0" + -- AND `data`.`deleted` = "0" -- ORDER BY `block`.`blockId` DESC @@ -114,7 +114,7 @@ class MySQL { OR `data`.`txid` LIKE :search) AND `data`.`ns` = "0" - AND `data`.`deleted` = "0" + -- AND `data`.`deleted` = "0" -- ORDER BY `block`.`blockId` DESC @@ -138,7 +138,7 @@ class MySQL { JOIN `namespace` ON (`namespace`.`nameSpaceId` = `data`.`nameSpaceId`) WHERE `data`.`ns` = "0" - AND `data`.`deleted` = "0" + -- AND `data`.`deleted` = "0" -- ORDER BY `block`.`blockId` DESC From 7ffa8d0e403877d1bcdd5e61f31d3a899d193465 Mon Sep 17 00:00:00 2001 From: KVAZAR <88580090+kvazar-network@users.noreply.github.com> Date: Thu, 28 Apr 2022 15:05:06 +0300 Subject: [PATCH 15/43] fix rays on mobile view --- public/css/app.css | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/public/css/app.css b/public/css/app.css index d6db510..117c053 100755 --- a/public/css/app.css +++ b/public/css/app.css @@ -95,19 +95,21 @@ img:hover { } .b-g::before { - content: ""; - background-image: linear-gradient(to left, #9B94BF, #18102d); - height: 1px; - width: 360px; - display: inline-block; + content: ""; + background-image: linear-gradient(to left, #9B94BF, #18102d); + height: 1px; + width: 50%; + max-width: 360px; + display: inline-block; } .b-g::after { - content: ""; - background-image: linear-gradient(to right, #9B94BF, #18102d); - height: 1px; - width: 360px; - display: inline-block; + content: ""; + background-image: linear-gradient(to right, #9B94BF, #18102d); + height: 1px; + width: 50%; + max-width: 360px; + display: inline-block; } .br-50 { From b2c4fa389f9afdb36b430aabdd33247fa1b6b3fb Mon Sep 17 00:00:00 2001 From: KVAZAR <88580090+kvazar-network@users.noreply.github.com> Date: Thu, 28 Apr 2022 15:05:35 +0300 Subject: [PATCH 16/43] update css revision --- public/index.phtml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/public/index.phtml b/public/index.phtml index e4c318b..1863366 100755 --- a/public/index.phtml +++ b/public/index.phtml @@ -1,7 +1,7 @@ - + From 9739b7258a2f1cf0929c286f3eb374a87333f65b Mon Sep 17 00:00:00 2001 From: KVAZAR <88580090+kvazar-network@users.noreply.github.com> Date: Thu, 28 Apr 2022 15:08:01 +0300 Subject: [PATCH 17/43] update input colors --- public/css/app.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/public/css/app.css b/public/css/app.css index 117c053..7ba85cf 100755 --- a/public/css/app.css +++ b/public/css/app.css @@ -12,7 +12,7 @@ button::-moz-focus-inner { input, button { opacity: 0.8; - color: #432B79; + color: #18102d; background: #BFBACC; border: 0; border-radius: 3px; From e757b3d2faf4b93cb4b139be8c3f554b1802d95b Mon Sep 17 00:00:00 2001 From: KVAZAR <88580090+kvazar-network@users.noreply.github.com> Date: Thu, 28 Apr 2022 15:08:32 +0300 Subject: [PATCH 18/43] update revision number --- public/index.phtml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/public/index.phtml b/public/index.phtml index 1863366..ecf7dd4 100755 --- a/public/index.phtml +++ b/public/index.phtml @@ -1,7 +1,7 @@ - + From f078a54800130d7185b3b92af31d41d1403ed4c3 Mon Sep 17 00:00:00 2001 From: KVAZAR <88580090+kvazar-network@users.noreply.github.com> Date: Sun, 1 May 2022 00:52:16 +0300 Subject: [PATCH 19/43] add sitemap generation script --- crontab/sitemap.php | 59 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 crontab/sitemap.php diff --git a/crontab/sitemap.php b/crontab/sitemap.php new file mode 100644 index 0000000..5991e8b --- /dev/null +++ b/crontab/sitemap.php @@ -0,0 +1,59 @@ +'; +$transaction .= ''; + +$namespace = ''; +$namespace .= ''; + +$namespaces = []; +$transactions = []; + +foreach ($db->getData(false, false, false, 0, 1000000) as $value) { + + if (!in_array($value['namehash'], $namespaces)) { + $namespace .= '' . BASE_URL . '/' . $value['namehash'] . ''; + } + + + if (!in_array($value['namehash'], $transactions)) { + $transaction .= '' . BASE_URL . '/' . $value['txid'] . ''; + } + + $namespaces[] = $value['namehash']; + $transactions[] = $value['txid']; +} + +$namespace .= ''; +$transaction .= ''; + +$handle = fopen(dirname(__FILE__) . '/../public/sitemap.transaction.xml', 'w'); +fwrite($handle, $transaction); +fclose($handle); + + +$handle = fopen(dirname(__FILE__) . '/../public/sitemap.namespace.xml', 'w'); +fwrite($handle, $namespace); +fclose($handle); + + +// Sitemap +$sitemap = ''; +$sitemap .= ''; +$sitemap .= ' '; +$sitemap .= ' ' . BASE_URL . '/sitemap.namespace.xml'; +$sitemap .= ' '; +$sitemap .= ' '; +$sitemap .= ' ' . BASE_URL . '/sitemap.transaction.xml'; +$sitemap .= ' '; +$sitemap .= ''; + +$handle = fopen(dirname(__FILE__) . '/../public/sitemap.xml', 'w'); +fwrite($handle, $sitemap); +fclose($handle); From 58ecf0ea12d8691468e9ccac65f5132df293b698 Mon Sep 17 00:00:00 2001 From: KVAZAR <88580090+kvazar-network@users.noreply.github.com> Date: Sun, 1 May 2022 00:53:01 +0300 Subject: [PATCH 20/43] Create robots.txt --- public/robots.txt | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 public/robots.txt diff --git a/public/robots.txt b/public/robots.txt new file mode 100644 index 0000000..d08107c --- /dev/null +++ b/public/robots.txt @@ -0,0 +1,2 @@ +User-Agent: * +Sitemap: https://kvazar.today/sitemap.xml From 4fe592b36c31011d9387e5a409613f9b1f63e822 Mon Sep 17 00:00:00 2001 From: KVAZAR <88580090+kvazar-network@users.noreply.github.com> Date: Sun, 1 May 2022 00:57:49 +0300 Subject: [PATCH 21/43] add crontab task --- README.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/README.md b/README.md index 2e1da94..f9f939a 100644 --- a/README.md +++ b/README.md @@ -14,6 +14,12 @@ php-gd https://github.com/kvazar-network/database +#### crontab + +``` +0 0 * * * /path-to/php /path-to/crontab/sitemap.php > /dev/null 2>&1 +``` + ### nginx sef_mode example ``` From e0245efaf1359ce268bbbfa7e267e123209cb16e Mon Sep 17 00:00:00 2001 From: ghost Date: Fri, 6 May 2022 22:45:46 +0300 Subject: [PATCH 22/43] add image cache support --- cache/index.html | 0 public/image.php | 14 +++++++++++--- 2 files changed, 11 insertions(+), 3 deletions(-) create mode 100644 cache/index.html diff --git a/cache/index.html b/cache/index.html new file mode 100644 index 0000000..e69de29 diff --git a/public/image.php b/public/image.php index 7f97825..259803b 100755 --- a/public/image.php +++ b/public/image.php @@ -4,8 +4,16 @@ require_once('../library/icon.php'); if (isset($_GET['hash'])) { - $icon = new Icon(); - header("Content-Type: image/jpeg"); - echo $icon->generateImageResource(md5($_GET['hash']), 60, 60, false); + + $filename = dirname(__FILE__) . '/../cache/' . $_GET['hash'] . '.jpeg'; + + if (!file_exists($filename)) { + + $icon = new Icon(); + + file_put_contents($filename, $icon->generateImageResource(md5($_GET['hash']), 60, 60, false)); + } + + echo file_get_contents($filename); } From d60fa45866e767ac878f2680286f8d3b9ea14693 Mon Sep 17 00:00:00 2001 From: ghost Date: Fri, 6 May 2022 23:50:59 +0300 Subject: [PATCH 23/43] add noindex/nofollow attributes on pagination pages --- public/index.phtml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/public/index.phtml b/public/index.phtml index ecf7dd4..e1ff9a9 100755 --- a/public/index.phtml +++ b/public/index.phtml @@ -8,12 +8,14 @@ <?php echo $namespaceValue ? $namespaceValue : $ns; ?> | PART <?php echo $page; ?> | KVAZAR + <?php echo $namespaceValue ? $namespaceValue : $ns; ?> | KVAZAR KVAZAR | PART <?php echo $page; ?> + <?php echo $tx && isset($data[0]['key']) ? $data[0]['key'] : $tx; ?> | KVAZAR @@ -76,13 +78,13 @@
- newer + >newer | - older + >older
From 5de0a77cccf5b1728f7038cbfa0c8eb94e73bd97 Mon Sep 17 00:00:00 2001 From: ghost Date: Fri, 6 May 2022 23:55:49 +0300 Subject: [PATCH 24/43] add cache enabled optional --- config-default.php | 1 + public/image.php | 20 +++++++++++++++----- 2 files changed, 16 insertions(+), 5 deletions(-) diff --git a/config-default.php b/config-default.php index 235419d..a527d31 100644 --- a/config-default.php +++ b/config-default.php @@ -9,6 +9,7 @@ error_reporting(E_ALL); define('BASE_URL', 'https://kvazar.today'); define('PAGE_LIMIT', 10); define('SEF_MODE', true); +define('CACHE_ENABLED', false); // Database define('DB_HOST', 'localhost'); diff --git a/public/image.php b/public/image.php index 259803b..2f0bf78 100755 --- a/public/image.php +++ b/public/image.php @@ -1,19 +1,29 @@ generateImageResource(md5($_GET['hash']), 60, 60, false)); + } + + echo file_get_contents($filename); + + } else { $icon = new Icon(); - file_put_contents($filename, $icon->generateImageResource(md5($_GET['hash']), 60, 60, false)); + echo $icon->generateImageResource(md5($_GET['hash']), 60, 60, false); } - - echo file_get_contents($filename); } From e48d60ac1d6b11c045e2b53a0b36f1d2a251cffc Mon Sep 17 00:00:00 2001 From: ghost Date: Fri, 13 May 2022 18:31:50 +0300 Subject: [PATCH 25/43] set image format to png --- library/icon.php | 2 +- public/image.php | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/library/icon.php b/library/icon.php index aee6941..aab527e 100755 --- a/library/icon.php +++ b/library/icon.php @@ -81,7 +81,7 @@ final class Icon { } ob_start(); - imagejpeg($resized, null, 100); + imagepng($resized); imagedestroy($resized); return ob_get_clean(); } diff --git a/public/image.php b/public/image.php index 2f0bf78..abaa6a7 100755 --- a/public/image.php +++ b/public/image.php @@ -5,11 +5,11 @@ require_once('../library/icon.php'); if (isset($_GET['hash'])) { - header("Content-Type: image/jpeg"); + header("Content-Type: image/png"); if (CACHE_ENABLED) { - $filename = dirname(__FILE__) . '/../cache/' . $_GET['hash'] . '.jpeg'; + $filename = dirname(__FILE__) . '/../cache/' . $_GET['hash'] . '.png'; if (!file_exists($filename)) { From c04689a33de7091447a4bdf8fcd0708e51d62f66 Mon Sep 17 00:00:00 2001 From: ghost Date: Fri, 13 May 2022 18:57:07 +0300 Subject: [PATCH 26/43] add NS favicons --- library/icon.php | 19 ++++++++++++++++--- public/image.php | 13 ++++++++++--- public/index.phtml | 1 + 3 files changed, 27 insertions(+), 6 deletions(-) diff --git a/library/icon.php b/library/icon.php index aab527e..35ac52a 100755 --- a/library/icon.php +++ b/library/icon.php @@ -10,7 +10,7 @@ final class Icon { private $_spriteZ = 800; - public function generateImageResource($hash, $width, $height, $filter = false) { + public function generateImageResource($hash, $width, $height, $filter = false, $radius = 0) { $this->_width = $width; $this->_height = $height; @@ -74,12 +74,25 @@ final class Icon { imagecopyresampled($resized, $identicon, 0, 0, (imagesx($identicon) - $this->_spriteZ * 3) / 2, (imagesx($identicon) - $this->_spriteZ * 3) / 2, $this->_width, $this->_height, $this->_spriteZ * 3, $this->_spriteZ * 3); - imagecolortransparent($resized, $bg); - if ($filter) { + imagefilter($resized, $filter); } + if ($radius) { + + imagearc($resized, $radius-1, $radius-1, $radius*2, $radius*2, 180, 270, $bg); + imagefilltoborder($resized, 0, 0, $bg, $bg); + imagearc($resized, $width-$radius, $radius-1, $radius*2, $radius*2, 270, 0, $bg); + imagefilltoborder($resized, $width-1, 0, $bg, $bg); + imagearc($resized, $radius-1, $height-$radius, $radius*2, $radius*2, 90, 180, $bg); + imagefilltoborder($resized, 0, $height-1, $bg, $bg); + imagearc($resized, $width-$radius, $height-$radius, $radius*2, $radius*2, 0, 90, $bg); + imagefilltoborder($resized, $width-1, $height-1, $bg, $bg); + + imagecolortransparent($resized, $bg); + } + ob_start(); imagepng($resized); imagedestroy($resized); diff --git a/public/image.php b/public/image.php index abaa6a7..1ef64bf 100755 --- a/public/image.php +++ b/public/image.php @@ -5,17 +5,24 @@ require_once('../library/icon.php'); if (isset($_GET['hash'])) { + $hash = md5($_GET['hash']); + + $width = isset($_GET['width']) ? (int) $_GET['width'] : 60; + $height = isset($_GET['height']) ? (int) $_GET['height'] : 60; + + $radius = isset($_GET['radius']) ? (int) $_GET['radius'] : 0; + header("Content-Type: image/png"); if (CACHE_ENABLED) { - $filename = dirname(__FILE__) . '/../cache/' . $_GET['hash'] . '.png'; + $filename = dirname(__FILE__) . '/../cache/' . $hash . '.png'; if (!file_exists($filename)) { $icon = new Icon(); - file_put_contents($filename, $icon->generateImageResource(md5($_GET['hash']), 60, 60, false)); + file_put_contents($filename, $icon->generateImageResource($hash, $width, $height, false, $radius)); } echo file_get_contents($filename); @@ -24,6 +31,6 @@ if (isset($_GET['hash'])) { $icon = new Icon(); - echo $icon->generateImageResource(md5($_GET['hash']), 60, 60, false); + echo $icon->generateImageResource($hash, $width, $height, false, $radius); } } diff --git a/public/index.phtml b/public/index.phtml index e1ff9a9..6a21556 100755 --- a/public/index.phtml +++ b/public/index.phtml @@ -6,6 +6,7 @@ + <?php echo $namespaceValue ? $namespaceValue : $ns; ?> | PART <?php echo $page; ?> | KVAZAR From 61d0facb5c82bc88c2289058eb70e70d8c355c68 Mon Sep 17 00:00:00 2001 From: ghost Date: Fri, 13 May 2022 19:41:00 +0300 Subject: [PATCH 27/43] add NS subtitles --- library/mysql.php | 26 ++++++++++++++++++++++++-- public/index.php | 12 +++++++++++- public/index.phtml | 32 +++++++++++++++++--------------- 3 files changed, 52 insertions(+), 18 deletions(-) diff --git a/library/mysql.php b/library/mysql.php index d702a97..5976746 100755 --- a/library/mysql.php +++ b/library/mysql.php @@ -16,7 +16,7 @@ class MySQL { } } - public function getNamespaceName($namehash) { + public function getNamespaceValueByNS($ns) { try { @@ -33,7 +33,7 @@ class MySQL { LIMIT 1'); - $query->execute([$namehash]); + $query->execute([$ns]); return $query->rowCount() ? $query->fetch()['value'] : []; @@ -44,6 +44,28 @@ class MySQL { } } + public function getNamespaceHashByTX($txid) { + + try { + + $query = $this->_db->prepare('SELECT `namespace`.`hash` + + FROM `namespace` + JOIN `data` ON (`data`.`nameSpaceId` = `namespace`.`nameSpaceId`) + + WHERE `data`.`txid` = ?'); + + $query->execute([$txid]); + + return $query->rowCount() ? $query->fetch()['hash'] : []; + + } catch(PDOException $e) { + + trigger_error($e->getMessage()); + return false; + } + } + public function getData($namehash = false, $txid = false, $search = false, $start = 0, $limit = 10) { try { diff --git a/public/index.php b/public/index.php index 4e6f0f1..a57a611 100755 --- a/public/index.php +++ b/public/index.php @@ -41,8 +41,18 @@ if ($page > 0) { $db = new MySQL(); if ($ns) { - $namespaceValue = $db->getNamespaceName($ns); + + $namespaceHash = $ns; + $namespaceValue = $db->getNamespaceValueByNS($ns); + +} else if ($tx) { + + $namespaceHash = $db->getNamespaceHashByTX($tx); + $namespaceValue = $db->getNamespaceValueByNS($namespaceHash); + } else { + + $namespaceHash = false; $namespaceValue = false; } diff --git a/public/index.phtml b/public/index.phtml index 6a21556..37f44b4 100755 --- a/public/index.phtml +++ b/public/index.phtml @@ -5,23 +5,25 @@ - - - - <?php echo $namespaceValue ? $namespaceValue : $ns; ?> | PART <?php echo $page; ?> | KVAZAR - - - <?php echo $namespaceValue ? $namespaceValue : $ns; ?> | KVAZAR + + + + + <?php echo $namespaceValue ? $namespaceValue : $ns; ?> | PART <?php echo $page; ?> | KVAZAR + + + <?php echo $namespaceValue ? $namespaceValue : $ns; ?> | KVAZAR + - - KVAZAR | PART <?php echo $page; ?> - - - <?php echo $tx && isset($data[0]['key']) ? $data[0]['key'] : $tx; ?> | KVAZAR - - KVAZAR | Observe Kevacoin Universe - + + KVAZAR | PART <?php echo $page; ?> + + + <?php echo $tx && isset($data[0]['key']) ? $data[0]['key'] : $tx; ?> | <?php echo ($namespaceValue ? $namespaceValue : ($namespaceHash ? $namespaceHash : false)); ?> | KVAZAR + + KVAZAR | Observe Kevacoin Universe + From 22b9663c6d6502c53b94fddc00f49626206902db Mon Sep 17 00:00:00 2001 From: ghost Date: Fri, 13 May 2022 19:44:18 +0300 Subject: [PATCH 28/43] add multidimensional favicons --- public/index.phtml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/public/index.phtml b/public/index.phtml index 37f44b4..e7388aa 100755 --- a/public/index.phtml +++ b/public/index.phtml @@ -6,7 +6,9 @@ - + + + From 88113bf748b687898697dd095805e6938dd51e41 Mon Sep 17 00:00:00 2001 From: ghost Date: Fri, 13 May 2022 20:19:08 +0300 Subject: [PATCH 29/43] add default favicon set --- public/image/favicon-16x16.png | Bin 0 -> 804 bytes public/image/favicon-32x32.png | Bin 0 -> 401 bytes public/image/favicon.png | Bin 0 -> 804 bytes public/index.phtml | 8 ++++++-- 4 files changed, 6 insertions(+), 2 deletions(-) create mode 100644 public/image/favicon-16x16.png create mode 100644 public/image/favicon-32x32.png create mode 100644 public/image/favicon.png diff --git a/public/image/favicon-16x16.png b/public/image/favicon-16x16.png new file mode 100644 index 0000000000000000000000000000000000000000..5eb09e03b90526a55df73a8bb7f14f88aed1d9a4 GIT binary patch literal 804 zcmV+<1Ka$GP)bU%j(8-~M)H-h2BF1{!D}ll82ZH}}0@ z8Ylx(zyvS`lz?G%$sKS7Tmntt7-+~iJTeB@_k!2J5>NrgbKd40r~$h&4u2LB*!O~E zpb9KJ@H4Cf+cFNn7XsM#f(oz#EcST$9ROQ04r_e@_Psy=tH8%c-gh>Ebs2}h@(doz z3HuiK3M}_wqb&o|t|MAW8eQ}p*!O}Dzy>he$J6B{Fz-6zI!U9Go&oz_PzBc15B6In zV9s^KO_D}O4-TxHT?1YeD2^BbW?V-|U8jdKtl5o%INJ_-(sjhC&YB+5fE8+knx(iZ z0i&)X_LDTa?RMdFjhn6ZAeiWd7SvqxpTjDs_+eOn@V;Aca-YL11|~!+xn5}%8!s9N zyr|}$+2N|eX>T>t8dfRZq2amyn|7&XCx@3TC~hoed8I2B09UktRas`-0^o7Qa<9W> z>`_? zg6amt);qOIbPFxF4F>Kw_xrv)>|kLqchhLBbZa? z+LUqlEo-*)uhtFO!0KwQIo9*-oAPFzRa05b)GZUJ9p9Pa22$kfG?q|uS<2nkFU;Pq}QXLqs;%G{@= zoIV9c>0gseU9H)@tOIj(;;A*guf{+2k+lhY(%GOgM_M|1GR>uJz@J9@a2xQa(IDOd izHom57-*n@%+_yDsNf0elE4c90000! zLi(>>{J(R&=iXnqcNuLL&Mn6T7JvtYfD732_yDB921tNYQRd%+0EqDu5CN-}ygT3x z*xv#%ZkRs+G2jEUj@`WgTi~@Q^K)l_x#cW@cd5RQ_Q1L*^Q<+1n129|1MRgV5U3!G zhPGz|RIcj8vi>uRq7fib z0h}bsjIEt`U0=s@%XtPqN4yU%z)Ml)Url4Uml!pcw&F3-Kms5O))J$J(ou5Z`L~0p v3XuUpy#_^r_Anz00000NkvXXu0mjfUd*b* literal 0 HcmV?d00001 diff --git a/public/image/favicon.png b/public/image/favicon.png new file mode 100644 index 0000000000000000000000000000000000000000..5eb09e03b90526a55df73a8bb7f14f88aed1d9a4 GIT binary patch literal 804 zcmV+<1Ka$GP)bU%j(8-~M)H-h2BF1{!D}ll82ZH}}0@ z8Ylx(zyvS`lz?G%$sKS7Tmntt7-+~iJTeB@_k!2J5>NrgbKd40r~$h&4u2LB*!O~E zpb9KJ@H4Cf+cFNn7XsM#f(oz#EcST$9ROQ04r_e@_Psy=tH8%c-gh>Ebs2}h@(doz z3HuiK3M}_wqb&o|t|MAW8eQ}p*!O}Dzy>he$J6B{Fz-6zI!U9Go&oz_PzBc15B6In zV9s^KO_D}O4-TxHT?1YeD2^BbW?V-|U8jdKtl5o%INJ_-(sjhC&YB+5fE8+knx(iZ z0i&)X_LDTa?RMdFjhn6ZAeiWd7SvqxpTjDs_+eOn@V;Aca-YL11|~!+xn5}%8!s9N zyr|}$+2N|eX>T>t8dfRZq2amyn|7&XCx@3TC~hoed8I2B09UktRas`-0^o7Qa<9W> z>`_? zg6amt);qOIbPFxF4F>Kw_xrv)>|kLqchhLBbZa? z+LUqlEo-*)uhtFO!0KwQIo9*-oAPFzRa05b)GZUJ9p9Pa22$kfG?q|uS<2nkFU;Pq}QXLqs;%G{@= zoIV9c>0gseU9H)@tOIj(;;A*guf{+2k+lhY(%GOgM_M|1GR>uJz@J9@a2xQa(IDOd izHom57-*n@%+_yDsNf0elE4c90000 - - + + + + + + From f2e4019c12a9ce521b89d15b96cd383a0a81b4a3 Mon Sep 17 00:00:00 2001 From: ghost Date: Fri, 13 May 2022 20:38:57 +0300 Subject: [PATCH 30/43] add 48x48 favicon --- public/image/favicon-48x48.png | Bin 0 -> 679 bytes public/index.phtml | 4 +++- 2 files changed, 3 insertions(+), 1 deletion(-) create mode 100644 public/image/favicon-48x48.png diff --git a/public/image/favicon-48x48.png b/public/image/favicon-48x48.png new file mode 100644 index 0000000000000000000000000000000000000000..58f576b94555e8b3a485430da6d2e336c3250941 GIT binary patch literal 679 zcmV;Y0$BZtP)zU(d?>`QE(w&l}ijrC)Z%Ng)~gL|?Jys$0jI+_JnYXfj| z#dkmhc$q?Dc?KNWmU9!$g2BoFBKXh1^Ax+|9&l(|P7nu?Nl-S8l!L$56X3wMoS~|m zGBF$WETythWn$m9oQr4{+{zX_R(yN{R5UnjDZ?Jx7DhugvtioVah6i zk^ulE6+poNfPxAjZva4E1&}oWAe+<+8KFghsR1!hRRCiH0LChSkpTcB6+qtrfW8W# zX8=G?1#l@0ldhVG807%M<#jX$=q%1tW#>RkV}Mrdl~UYz+8PGmmJNX)I*HFU1dzrg zoeM>?;J0l#S&i-oO+WO$B(W0nY5-jgg71o0NSpzYg2x#;2Daq{z(IeM(#w|?rJ|G~5z&>~L`%TyU zY1}`*6u?|LU5JgpsqWMSKB#JbQUBK?p9JI>6Q5ZnAX|Ir-f5>5^%rwq!$cgEyORI_ N002ovPDHLkV1nb4Ca?ei literal 0 HcmV?d00001 diff --git a/public/index.phtml b/public/index.phtml index 815953d..4d8eb4f 100755 --- a/public/index.phtml +++ b/public/index.phtml @@ -6,11 +6,13 @@ - + + + From 3b0ad190b5212a3d4639d97fe8c7574a9e68da2e Mon Sep 17 00:00:00 2001 From: ghost Date: Sat, 14 May 2022 02:18:42 +0300 Subject: [PATCH 31/43] add light/dark favicon versions, update main page title --- public/image/favicon-16x16.png | Bin 804 -> 0 bytes public/image/favicon-32x32.png | Bin 401 -> 0 bytes public/image/favicon-48x48.png | Bin 679 -> 0 bytes public/image/favicon-dark.png | Bin 0 -> 4129 bytes public/image/favicon-light.png | Bin 0 -> 6719 bytes public/image/favicon.png | Bin 804 -> 0 bytes public/index.phtml | 12 +++--------- 7 files changed, 3 insertions(+), 9 deletions(-) delete mode 100644 public/image/favicon-16x16.png delete mode 100644 public/image/favicon-32x32.png delete mode 100644 public/image/favicon-48x48.png create mode 100644 public/image/favicon-dark.png create mode 100644 public/image/favicon-light.png delete mode 100644 public/image/favicon.png diff --git a/public/image/favicon-16x16.png b/public/image/favicon-16x16.png deleted file mode 100644 index 5eb09e03b90526a55df73a8bb7f14f88aed1d9a4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 804 zcmV+<1Ka$GP)bU%j(8-~M)H-h2BF1{!D}ll82ZH}}0@ z8Ylx(zyvS`lz?G%$sKS7Tmntt7-+~iJTeB@_k!2J5>NrgbKd40r~$h&4u2LB*!O~E zpb9KJ@H4Cf+cFNn7XsM#f(oz#EcST$9ROQ04r_e@_Psy=tH8%c-gh>Ebs2}h@(doz z3HuiK3M}_wqb&o|t|MAW8eQ}p*!O}Dzy>he$J6B{Fz-6zI!U9Go&oz_PzBc15B6In zV9s^KO_D}O4-TxHT?1YeD2^BbW?V-|U8jdKtl5o%INJ_-(sjhC&YB+5fE8+knx(iZ z0i&)X_LDTa?RMdFjhn6ZAeiWd7SvqxpTjDs_+eOn@V;Aca-YL11|~!+xn5}%8!s9N zyr|}$+2N|eX>T>t8dfRZq2amyn|7&XCx@3TC~hoed8I2B09UktRas`-0^o7Qa<9W> z>`_? zg6amt);qOIbPFxF4F>Kw_xrv)>|kLqchhLBbZa? z+LUqlEo-*)uhtFO!0KwQIo9*-oAPFzRa05b)GZUJ9p9Pa22$kfG?q|uS<2nkFU;Pq}QXLqs;%G{@= zoIV9c>0gseU9H)@tOIj(;;A*guf{+2k+lhY(%GOgM_M|1GR>uJz@J9@a2xQa(IDOd izHom57-*n@%+_yDsNf0elE4c90000! zLi(>>{J(R&=iXnqcNuLL&Mn6T7JvtYfD732_yDB921tNYQRd%+0EqDu5CN-}ygT3x z*xv#%ZkRs+G2jEUj@`WgTi~@Q^K)l_x#cW@cd5RQ_Q1L*^Q<+1n129|1MRgV5U3!G zhPGz|RIcj8vi>uRq7fib z0h}bsjIEt`U0=s@%XtPqN4yU%z)Ml)Url4Uml!pcw&F3-Kms5O))J$J(ou5Z`L~0p v3XuUpy#_^r_Anz00000NkvXXu0mjfUd*b* diff --git a/public/image/favicon-48x48.png b/public/image/favicon-48x48.png deleted file mode 100644 index 58f576b94555e8b3a485430da6d2e336c3250941..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 679 zcmV;Y0$BZtP)zU(d?>`QE(w&l}ijrC)Z%Ng)~gL|?Jys$0jI+_JnYXfj| z#dkmhc$q?Dc?KNWmU9!$g2BoFBKXh1^Ax+|9&l(|P7nu?Nl-S8l!L$56X3wMoS~|m zGBF$WETythWn$m9oQr4{+{zX_R(yN{R5UnjDZ?Jx7DhugvtioVah6i zk^ulE6+poNfPxAjZva4E1&}oWAe+<+8KFghsR1!hRRCiH0LChSkpTcB6+qtrfW8W# zX8=G?1#l@0ldhVG807%M<#jX$=q%1tW#>RkV}Mrdl~UYz+8PGmmJNX)I*HFU1dzrg zoeM>?;J0l#S&i-oO+WO$B(W0nY5-jgg71o0NSpzYg2x#;2Daq{z(IeM(#w|?rJ|G~5z&>~L`%TyU zY1}`*6u?|LU5JgpsqWMSKB#JbQUBK?p9JI>6Q5ZnAX|Ir-f5>5^%rwq!$cgEyORI_ N002ovPDHLkV1nb4Ca?ei diff --git a/public/image/favicon-dark.png b/public/image/favicon-dark.png new file mode 100644 index 0000000000000000000000000000000000000000..c0da2722afe3e2125f8b5a0eb903de0eba5ebf39 GIT binary patch literal 4129 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 P834js+hJ-fJ+J= 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 z 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 literal 0 HcmV?d00001 diff --git a/public/image/favicon.png b/public/image/favicon.png deleted file mode 100644 index 5eb09e03b90526a55df73a8bb7f14f88aed1d9a4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 804 zcmV+<1Ka$GP)bU%j(8-~M)H-h2BF1{!D}ll82ZH}}0@ z8Ylx(zyvS`lz?G%$sKS7Tmntt7-+~iJTeB@_k!2J5>NrgbKd40r~$h&4u2LB*!O~E zpb9KJ@H4Cf+cFNn7XsM#f(oz#EcST$9ROQ04r_e@_Psy=tH8%c-gh>Ebs2}h@(doz z3HuiK3M}_wqb&o|t|MAW8eQ}p*!O}Dzy>he$J6B{Fz-6zI!U9Go&oz_PzBc15B6In zV9s^KO_D}O4-TxHT?1YeD2^BbW?V-|U8jdKtl5o%INJ_-(sjhC&YB+5fE8+knx(iZ z0i&)X_LDTa?RMdFjhn6ZAeiWd7SvqxpTjDs_+eOn@V;Aca-YL11|~!+xn5}%8!s9N zyr|}$+2N|eX>T>t8dfRZq2amyn|7&XCx@3TC~hoed8I2B09UktRas`-0^o7Qa<9W> z>`_? zg6amt);qOIbPFxF4F>Kw_xrv)>|kLqchhLBbZa? z+LUqlEo-*)uhtFO!0KwQIo9*-oAPFzRa05b)GZUJ9p9Pa22$kfG?q|uS<2nkFU;Pq}QXLqs;%G{@= zoIV9c>0gseU9H)@tOIj(;;A*guf{+2k+lhY(%GOgM_M|1GR>uJz@J9@a2xQa(IDOd izHom57-*n@%+_yDsNf0elE4c90000 - - - - + - - - - + @@ -30,7 +24,7 @@ <?php echo $tx && isset($data[0]['key']) ? $data[0]['key'] : $tx; ?> | <?php echo ($namespaceValue ? $namespaceValue : ($namespaceHash ? $namespaceHash : false)); ?> | KVAZAR - KVAZAR | Observe Kevacoin Universe + KVAZAR | TODAY From 8b150af09edaa0878a7bb63d5754925033509f82 Mon Sep 17 00:00:00 2001 From: ghost Date: Sat, 14 May 2022 03:05:53 +0300 Subject: [PATCH 32/43] create dynamical main page favicon --- public/image/favicon-dark.png | Bin 4129 -> 0 bytes public/image/favicon-light.png | Bin 6719 -> 0 bytes public/index.phtml | 4 ++-- 3 files changed, 2 insertions(+), 2 deletions(-) delete mode 100644 public/image/favicon-dark.png delete mode 100644 public/image/favicon-light.png diff --git a/public/image/favicon-dark.png b/public/image/favicon-dark.png deleted file mode 100644 index c0da2722afe3e2125f8b5a0eb903de0eba5ebf39..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4129 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 P834js+hJ-fJ+J= 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 z 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 diff --git a/public/index.phtml b/public/index.phtml index d2f5b06..22521b4 100755 --- a/public/index.phtml +++ b/public/index.phtml @@ -6,9 +6,9 @@ - + - + From 2e892c5165fe4453f19b0ef38d0187390553e7f3 Mon Sep 17 00:00:00 2001 From: ghost Date: Sat, 14 May 2022 03:11:49 +0300 Subject: [PATCH 33/43] fix dimensions pass --- library/icon.php | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/library/icon.php b/library/icon.php index 35ac52a..3daeddc 100755 --- a/library/icon.php +++ b/library/icon.php @@ -83,12 +83,12 @@ final class Icon { imagearc($resized, $radius-1, $radius-1, $radius*2, $radius*2, 180, 270, $bg); imagefilltoborder($resized, 0, 0, $bg, $bg); - imagearc($resized, $width-$radius, $radius-1, $radius*2, $radius*2, 270, 0, $bg); - imagefilltoborder($resized, $width-1, 0, $bg, $bg); - imagearc($resized, $radius-1, $height-$radius, $radius*2, $radius*2, 90, 180, $bg); - imagefilltoborder($resized, 0, $height-1, $bg, $bg); - imagearc($resized, $width-$radius, $height-$radius, $radius*2, $radius*2, 0, 90, $bg); - imagefilltoborder($resized, $width-1, $height-1, $bg, $bg); + imagearc($resized, $this->_width-$radius, $radius-1, $radius*2, $radius*2, 270, 0, $bg); + imagefilltoborder($resized, $this->_width-1, 0, $bg, $bg); + imagearc($resized, $radius-1, $this->_height-$radius, $radius*2, $radius*2, 90, 180, $bg); + imagefilltoborder($resized, 0, $this->_height-1, $bg, $bg); + imagearc($resized, $this->_width-$radius, $this->_height-$radius, $radius*2, $radius*2, 0, 90, $bg); + imagefilltoborder($resized, $this->_width-1, $this->_height-1, $bg, $bg); imagecolortransparent($resized, $bg); } From d04759f4edc37964c4de4be71507d32ba2427eb2 Mon Sep 17 00:00:00 2001 From: ghost Date: Sat, 14 May 2022 09:58:13 +0300 Subject: [PATCH 34/43] remove favicon from the non-profile pages --- public/index.phtml | 2 -- 1 file changed, 2 deletions(-) diff --git a/public/index.phtml b/public/index.phtml index 22521b4..62cd493 100755 --- a/public/index.phtml +++ b/public/index.phtml @@ -7,8 +7,6 @@ - - From 8e9d38df135e4aded058847bd433e6437225b9c0 Mon Sep 17 00:00:00 2001 From: d4708 <96319366+d4708@users.noreply.github.com> Date: Wed, 25 May 2022 02:21:53 +0300 Subject: [PATCH 35/43] remove domain relations --- public/index.phtml | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/public/index.phtml b/public/index.phtml index 62cd493..0b80271 100755 --- a/public/index.phtml +++ b/public/index.phtml @@ -4,9 +4,8 @@ - - + @@ -34,7 +33,7 @@
- <?php echo $ns; ?> + <?php echo $ns; ?>
@@ -49,18 +48,18 @@
- +
@@ -81,13 +80,13 @@ From fa16dbc15d363f88baa43f586e0ac4c9a04e0b16 Mon Sep 17 00:00:00 2001 From: d4708 <96319366+d4708@users.noreply.github.com> Date: Wed, 25 May 2022 02:26:49 +0300 Subject: [PATCH 36/43] add yggdrasil mirror --- README.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index f9f939a..6419bb2 100644 --- a/README.md +++ b/README.md @@ -32,5 +32,8 @@ location @sef { } ``` -### webapp example +### web https://kvazar.today + +### yggdrasil +[http://[200:4f97:7cc6:fdd5:1508:5dcc:d8a3:88c5]http://[200:4f97:7cc6:fdd5:1508:5dcc:d8a3:88c5]http://[200:4f97:7cc6:fdd5:1508:5dcc:d8a3:88c5]](http://[200:4f97:7cc6:fdd5:1508:5dcc:d8a3:88c5]) From ba3ac27834f667e1b3441f46c2a17f6650a66269 Mon Sep 17 00:00:00 2001 From: d4708 <96319366+d4708@users.noreply.github.com> Date: Wed, 25 May 2022 02:27:24 +0300 Subject: [PATCH 37/43] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 6419bb2..a6c2844 100644 --- a/README.md +++ b/README.md @@ -36,4 +36,4 @@ location @sef { https://kvazar.today ### yggdrasil -[http://[200:4f97:7cc6:fdd5:1508:5dcc:d8a3:88c5]http://[200:4f97:7cc6:fdd5:1508:5dcc:d8a3:88c5]http://[200:4f97:7cc6:fdd5:1508:5dcc:d8a3:88c5]](http://[200:4f97:7cc6:fdd5:1508:5dcc:d8a3:88c5]) +[http://[200:4f97:7cc6:fdd5:1508:5dcc:d8a3:88c5]](http://[200:4f97:7cc6:fdd5:1508:5dcc:d8a3:88c5]) From 5228630f0682599c7b2701f5ed6bc7b17bc8d561 Mon Sep 17 00:00:00 2001 From: d4708 <96319366+d4708@users.noreply.github.com> Date: Wed, 25 May 2022 02:29:34 +0300 Subject: [PATCH 38/43] Update README.md --- README.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index a6c2844..7cc54bd 100644 --- a/README.md +++ b/README.md @@ -32,8 +32,9 @@ location @sef { } ``` -### web +### examples +#### web https://kvazar.today -### yggdrasil +#### yggdrasil [http://[200:4f97:7cc6:fdd5:1508:5dcc:d8a3:88c5]](http://[200:4f97:7cc6:fdd5:1508:5dcc:d8a3:88c5]) From 494db5b0ad6d90ca575a988e5640866b80c693c9 Mon Sep 17 00:00:00 2001 From: ghost Date: Fri, 15 Jul 2022 08:30:02 +0300 Subject: [PATCH 39/43] relate links with the document root --- public/index.phtml | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/public/index.phtml b/public/index.phtml index 62cd493..0b80271 100755 --- a/public/index.phtml +++ b/public/index.phtml @@ -4,9 +4,8 @@ - - + @@ -34,7 +33,7 @@
- <?php echo $ns; ?> + <?php echo $ns; ?>
@@ -49,18 +48,18 @@ - +
@@ -81,13 +80,13 @@ From 91cab9cc8779d52034cacfac5ad23d158be8f2cb Mon Sep 17 00:00:00 2001 From: ghost Date: Fri, 15 Jul 2022 08:33:44 +0300 Subject: [PATCH 40/43] fix search request vulnerability --- public/index.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/public/index.php b/public/index.php index a57a611..fb6c0f6 100755 --- a/public/index.php +++ b/public/index.php @@ -4,7 +4,7 @@ require_once('../config.php'); require_once('../library/icon.php'); require_once('../library/mysql.php'); -$query = isset($_GET['q']) ? $_GET['q'] : false; +$query = isset($_GET['q']) ? preg_replace('/[\W\D\S]+/', '', $_GET['q']) : false; $ns = isset($_GET['ns']) ? preg_replace('/[^a-zA-Z0-9]+/', '', $_GET['ns']) : false; $tx = isset($_GET['tx']) ? preg_replace('/[^a-zA-Z0-9]+/', '', $_GET['tx']) : false; $page = (int) isset($_GET['page']) ? $_GET['page'] : 0; From ddf952d0d799fc51832ab374c03c2772e5792b46 Mon Sep 17 00:00:00 2001 From: d47081 Date: Fri, 15 Jul 2022 09:48:56 +0300 Subject: [PATCH 41/43] update yggdrasil address --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 7cc54bd..7054ecd 100644 --- a/README.md +++ b/README.md @@ -37,4 +37,4 @@ location @sef { https://kvazar.today #### yggdrasil -[http://[200:4f97:7cc6:fdd5:1508:5dcc:d8a3:88c5]](http://[200:4f97:7cc6:fdd5:1508:5dcc:d8a3:88c5]) +[http://[203:7693:ae20:18a6:7689:cb63:c53d:43c6]](http://[203:7693:ae20:18a6:7689:cb63:c53d:43c6]) From 814830c1cca3491cc3250b13ecc57c3a5a322bda Mon Sep 17 00:00:00 2001 From: d47081 Date: Fri, 15 Jul 2022 09:52:29 +0300 Subject: [PATCH 42/43] add mysql/sqlite edition links --- README.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/README.md b/README.md index 7054ecd..0fee7a2 100644 --- a/README.md +++ b/README.md @@ -14,6 +14,14 @@ php-gd https://github.com/kvazar-network/database +##### MySQL + +https://github.com/kvazar-network/webapp/tree/master + +##### SQLite + +https://github.com/kvazar-network/webapp/tree/sqlite + #### crontab ``` From f6edf4e15351846a4f2ce3e19520349cf332dfca Mon Sep 17 00:00:00 2001 From: d47081 Date: Fri, 15 Jul 2022 09:54:28 +0300 Subject: [PATCH 43/43] update dependencies list --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 0fee7a2..ec295ed 100644 --- a/README.md +++ b/README.md @@ -7,6 +7,8 @@ php-7.4 php-curl php-mbstring php-mysql +php-sqlite +php-pdo php-bcmath php-gd ```