Страница с одобренными тегами
This commit is contained in:
parent
93a2286d46
commit
751476c4f8
@ -37,7 +37,11 @@ function Tags_GetListOfApproved (): array {
|
||||
return $result;
|
||||
|
||||
while ($row = $d->fetch_array()) {
|
||||
$result[] = $row["value"];
|
||||
$result[] = array(
|
||||
"value" => $row["value"],
|
||||
"author_id" => $row["author_id"],
|
||||
"added_at" => $row["added_at"]
|
||||
);
|
||||
}
|
||||
|
||||
return $result;
|
||||
|
@ -33,8 +33,8 @@ USE e949;
|
||||
CREATE TABLE users (
|
||||
id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY COMMENT 'Unique identifier of user',
|
||||
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT 'When account was created',
|
||||
login VARCHAR(255) NOT NULL COMMENT 'User login',
|
||||
email VARCHAR(255) NULL COMMENT 'User e-mail address',
|
||||
login VARCHAR(255) NOT NULL UNIQUE COMMENT 'User login',
|
||||
email VARCHAR(255) NULL UNIQUE COMMENT 'User e-mail address',
|
||||
password_hash BINARY(32) NOT NULL COMMENT 'User password hash',
|
||||
salt VARCHAR(8) NOT NULL COMMENT 'User salt, used for password hash',
|
||||
avatar_path VARCHAR(255) NULL COMMENT 'Path or URL to avatar picture',
|
||||
@ -78,7 +78,9 @@ CREATE TABLE invites (
|
||||
uses_last SMALLINT UNSIGNED NOT NULL COMMENT 'Remaining uses of invite'
|
||||
);
|
||||
CREATE TABLE approved_tags (
|
||||
value VARCHAR(255) NOT NULL COMMENT 'The tag itself'
|
||||
value VARCHAR(255) NOT NULL UNIQUE COMMENT 'The tag itself',
|
||||
author_id INT UNSIGNED NULL COMMENT 'ID of user who added this tag to list of approved',
|
||||
added_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT 'When this tag was added'
|
||||
);
|
||||
```
|
||||
|
||||
|
@ -6,11 +6,14 @@
|
||||
$MARKUP_CURRENT_PAGE = "class=\"current\"";
|
||||
$MARKUP_CURRENT_PAGE_LOGIN = "";
|
||||
$MARKUP_CURRENT_PAGE_REGISTER = "";
|
||||
$MARKUP_CURRENT_PAGE_VIEWTAGS = "";
|
||||
|
||||
if ($WHAT_PAGE_IS_CURRENT["login"])
|
||||
$MARKUP_CURRENT_PAGE_LOGIN = $MARKUP_CURRENT_PAGE;
|
||||
if ($WHAT_PAGE_IS_CURRENT["register"])
|
||||
elseif ($WHAT_PAGE_IS_CURRENT["register"])
|
||||
$MARKUP_CURRENT_PAGE_REGISTER = $MARKUP_CURRENT_PAGE;
|
||||
elseif ($WHAT_PAGE_IS_CURRENT["view_tags"])
|
||||
$MARKUP_CURRENT_PAGE_VIEWTAGS = $MARKUP_CURRENT_PAGE;
|
||||
|
||||
|
||||
|
||||
@ -33,7 +36,7 @@ if ($WHAT_PAGE_IS_CURRENT["register"])
|
||||
<p><a title="A paginated list of every post" href="./?do=search_posts">Posts</p></a>
|
||||
</li>
|
||||
<span>|</span>
|
||||
<li>
|
||||
<li <?php echo $MARKUP_CURRENT_PAGE_VIEWTAGS; ?>>
|
||||
<p><a title="A paginated list of every tag" href="./?do=view_tags">Tags</p></a>
|
||||
</li>
|
||||
<span>|</span>
|
||||
|
62
front/pages/tags_viewer/page.php
Normal file
62
front/pages/tags_viewer/page.php
Normal file
@ -0,0 +1,62 @@
|
||||
<?php
|
||||
// Approved tags list
|
||||
|
||||
|
||||
// Includes
|
||||
require_once("api/_config.php");
|
||||
require_once("api/user/index.php");
|
||||
require_once("api/tags/index.php");
|
||||
require_once("front/pages/main_nav.php");
|
||||
require_once("front/notifications.php");
|
||||
|
||||
|
||||
|
||||
$TAGS_NEED_TO_BE_FILTERED = false;
|
||||
if (isset($_GET["s"])) {
|
||||
if (strlen($_GET["s"]) > 0 && strlen($_GET["s"]) < $Config["posting"]["tags"]["max_single_length"])
|
||||
$TAGS_NEED_TO_BE_FILTERED = true;
|
||||
}
|
||||
|
||||
$result = Tags_GetListOfApproved_Method();
|
||||
if ($result->IsError())
|
||||
NTFY_AddNotice("Error occured while trying to get tags list:<br>" . $result->GetError(), "fail");
|
||||
|
||||
|
||||
|
||||
NTFY_EchoAllNotices();
|
||||
|
||||
|
||||
|
||||
?>
|
||||
<div class="visualbox">
|
||||
<h1>Approved tags list</h1>
|
||||
<?php
|
||||
if ($TAGS_NEED_TO_BE_FILTERED)
|
||||
echo "<p style=\"margin-bottom: 15px;\"><b>Search term:</b> " . $_GET["s"] . "</p>\n";
|
||||
|
||||
$cachedAuthorsInfo = array();
|
||||
|
||||
if (!$result->GetData()) {
|
||||
echo "<h2 style=\"color: gray; font-style: italic;\">Nothing here yet</h2>";
|
||||
} else {
|
||||
foreach ($result->GetData() as $tagInfo) {
|
||||
if ($TAGS_NEED_TO_BE_FILTERED && !str_contains($tagInfo["value"], $_GET["s"]))
|
||||
continue;
|
||||
echo "<div style=\"display: inline-block; margin-right: 20px; margin-bottom: 10px;\">\n";
|
||||
echo "<p>" . $tagInfo["value"] . "</p>\n";
|
||||
echo "<p style=\"font-size: 70%\">Added by: ";
|
||||
$aid = $tagInfo["author_id"];
|
||||
if (!isset($cachedAuthorsInfo[$aid])) {
|
||||
$uinfo = User_GetInfoByID($aid);
|
||||
if ($uinfo->IsError()) { // Seems like no such user id
|
||||
$cachedAuthorsInfo[$aid] = strval($aid) . " <i>(user deleted)</i>";
|
||||
} else {
|
||||
$cachedAuthorsInfo[$aid] = "<a href=\"./?do=user_info&id=" . strval($aid) . "\">" . $uinfo->GetData()["login"] . "</a>";
|
||||
}
|
||||
}
|
||||
echo $cachedAuthorsInfo[$aid];
|
||||
echo "</p>\n</div>\n";
|
||||
}
|
||||
}
|
||||
?>
|
||||
</div>
|
10
index.php
10
index.php
@ -27,11 +27,19 @@ else
|
||||
$WHAT_PAGE_IS_CURRENT = array(
|
||||
"main" => false,
|
||||
"login" => false,
|
||||
"register" => false
|
||||
"register" => false,
|
||||
"view_tags" => false
|
||||
);
|
||||
|
||||
// Picking current page
|
||||
switch ($PICKED_PAGE) {
|
||||
// Approved tags viewer
|
||||
case "view_tags":
|
||||
$WHAT_PAGE_IS_CURRENT["view_tags"] = true;
|
||||
$PAGE_TITLE = "Approved tags list";
|
||||
$PAGE_STYLE = "front/styles/main.css";
|
||||
$PAGE_FILE = "front/pages/tags_viewer/page.php";
|
||||
break;
|
||||
// Registration page
|
||||
case "register":
|
||||
$WHAT_PAGE_IS_CURRENT["register"] = true;
|
||||
|
Loading…
Reference in New Issue
Block a user