ファイル構成変更
This commit is contained in:
+1
-1
@@ -2,4 +2,4 @@
|
||||
/drafts
|
||||
/database.php
|
||||
/db.sqlite3
|
||||
|
||||
/www/images
|
||||
|
||||
@@ -1,56 +0,0 @@
|
||||
<?php
|
||||
|
||||
require_once "${_SERVER['DOCUMENT_ROOT']}/database.php";
|
||||
|
||||
if (isset ($_GET['page']))
|
||||
$page = $_GET['page'];
|
||||
else
|
||||
$page = 0;
|
||||
|
||||
if (isset ($_GET['thread']))
|
||||
$thread = $_GET['thread'];
|
||||
else
|
||||
$thread = -1;
|
||||
|
||||
if (isset ($_GET['sort']))
|
||||
{
|
||||
$sort = $_GET['sort'];
|
||||
|
||||
if (!(in_array ($sort, array ('td', 'eg', 'ta', 'eb'))))
|
||||
$sort = 'td';
|
||||
}
|
||||
else
|
||||
$sort = 'td';
|
||||
|
||||
// 画像のディレクトリを開く.
|
||||
$dir = './images/';
|
||||
$handle = opendir ($dir);
|
||||
|
||||
// MySQL 宣言
|
||||
$mysqli = set_mysql ('miteruzo_bbs');
|
||||
|
||||
$mysqli -> set_charset ('utf8');
|
||||
|
||||
if ($row = Dao\Thread -> find ($thread))
|
||||
{
|
||||
$title = $row -> title;
|
||||
$explain = $row -> explain;
|
||||
}
|
||||
|
||||
if (isset ($_GET['id'])
|
||||
&& isset ($_GET['evaluate'])
|
||||
&& (($_GET['evaluate'] == 'good') || ($_GET['evaluate'] == 'bad')))
|
||||
{
|
||||
$mysqli -> query ("
|
||||
UPDATE
|
||||
responses
|
||||
SET
|
||||
{$_GET['evaluate']} = {$_GET['evaluate']} + 1
|
||||
WHERE
|
||||
(thread_id = $thread) AND (response_id = {$_GET['id']})");
|
||||
|
||||
header ("Location: ./?thread=$thread&sort=$sort");
|
||||
}
|
||||
|
||||
require_once './forms/index.frm.php';
|
||||
|
||||
-10
@@ -1,10 +0,0 @@
|
||||
<?php
|
||||
|
||||
require_once './db_connection.php';
|
||||
|
||||
|
||||
$files = glob ('./migrations/*.sql');
|
||||
|
||||
foreach ($files as $file)
|
||||
$__db_connection -> query (file_get_contents ($file));
|
||||
|
||||
@@ -1,2 +0,0 @@
|
||||
CREATE TABLE `miteruzo_bbs`.`threads` ( `id` INT NOT NULL AUTO_INCREMENT , `title` VARCHAR(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL , `explain` MEDIUMTEXT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL , `latest` DATETIME NOT NULL , `length` INT NOT NULL DEFAULT '0' , PRIMARY KEY (`id`)) ENGINE = InnoDB CHARSET=utf8mb4 COLLATE utf8mb4_unicode_ci;
|
||||
|
||||
@@ -1,2 +0,0 @@
|
||||
CREATE TABLE `miteruzo_bbs`.`responses` ( `thread_id` INT NOT NULL , `response_id` INT NOT NULL , `name` VARCHAR(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '名なしさん' , `message` MEDIUMTEXT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL , `date` DATETIME NOT NULL , `image` VARCHAR(31) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL , `held` TINYINT NOT NULL DEFAULT '0' , `deleted` TINYINT NOT NULL DEFAULT '0' , `pass` VARCHAR(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL , `good` INT NOT NULL DEFAULT '0' , `bad` INT NOT NULL DEFAULT '0' , PRIMARY KEY (`thread_id`, `response_id`)) ENGINE = InnoDB CHARSET=utf8mb4 COLLATE utf8mb4_unicode_ci;
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
-1051
File diff suppressed because it is too large
Load Diff
@@ -1,169 +0,0 @@
|
||||
const music = new Audio ('./assets/music.mp3'); // BGM
|
||||
let playing = false; // 再生フラグ
|
||||
let nowPlay = true; // 再生すべきかどぅか
|
||||
|
||||
document.getElementById ('sort').addEventListener ('change', sortChange);
|
||||
|
||||
/*
|
||||
* BGM を再生しよぅとする.
|
||||
*
|
||||
* 戻り値は,なし.
|
||||
*/
|
||||
async function
|
||||
PlayMusic ()
|
||||
{
|
||||
// 再生中でなぃ場合
|
||||
if (playing === false)
|
||||
{
|
||||
// BGM を再生しよぅとする.
|
||||
try
|
||||
{
|
||||
await music.play ();
|
||||
music.loop = true;
|
||||
|
||||
playing = true;
|
||||
nowPlay = true;
|
||||
|
||||
// オン/オフ・ボタン
|
||||
document.getElementById ('mute').innerHTML = 'BGM がうるさい人用';
|
||||
}
|
||||
catch (err)
|
||||
{
|
||||
playing = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* BGM の消音切替
|
||||
*
|
||||
* 戻り値は,なし.
|
||||
*/
|
||||
function
|
||||
PauseMusic ()
|
||||
{
|
||||
// 切替
|
||||
if (nowPlay && playing) // 再生中の場合
|
||||
{
|
||||
music.muted = true;
|
||||
document.getElementById ('mute').innerHTML = 'やっぱり BGM が恋しい人用';
|
||||
|
||||
nowPlay = false;
|
||||
}
|
||||
else // 消音中の場合
|
||||
{
|
||||
music.muted = false;
|
||||
document.getElementById ('mute').innerHTML = 'BGM がうるさい人用';
|
||||
|
||||
nowPlay = true;
|
||||
}
|
||||
}
|
||||
|
||||
// 1000 ms ごとに BGM 再生試行
|
||||
window.setInterval (function
|
||||
()
|
||||
{
|
||||
PlayMusic ();
|
||||
},
|
||||
1000);
|
||||
|
||||
// 画面クリックで BGM 再生試行
|
||||
document.addEventListener ('click', function
|
||||
()
|
||||
{
|
||||
PlayMusic ();
|
||||
});
|
||||
|
||||
// 画面タッチで BGM 再生試行
|
||||
document.addEventListener ('touchstart', function
|
||||
()
|
||||
{
|
||||
PlayMusic ();
|
||||
});
|
||||
|
||||
const body = document.getElementsByTagName ('body')[0]; // body 要素
|
||||
const cv = document.getElementById ('work'); // 作業用 Canvas
|
||||
const g = cv.getContext ('2d'); // 作業用 Canvas のコンテクスト
|
||||
|
||||
const list = ['magenta', 'lime', 'cyan', 'yellow', 'orange', 'pink', 'aliceblue',
|
||||
'antiquewhite', 'aqua', 'aquamarine', 'bisque', 'lightgreen', 'linen',
|
||||
'lightsalmon', 'darkorange', 'palegreen'];
|
||||
// 色リスト
|
||||
let nowColour = Math.floor (Math.random () * list.length);
|
||||
// 前の色番号
|
||||
let nextColour = Math.floor (Math.random () * list.length);
|
||||
// 次の色番号
|
||||
let [tempR, tempG, tempB] = getRGB (list[nowColour]);
|
||||
// 現在の RGB 値
|
||||
|
||||
// 3000 ms ごとに次の色指定
|
||||
window.setInterval (function
|
||||
()
|
||||
{
|
||||
nowColour = nextColour;
|
||||
nextColour = Math.floor (Math.random () * list.length);
|
||||
},
|
||||
3000);
|
||||
|
||||
// 20 ms ごとに,ぢょぢょに,色変更
|
||||
window.setInterval (function
|
||||
()
|
||||
{
|
||||
let [nowR, nowG, nowB] = getRGB (list[nowColour]);
|
||||
let [nextR, nextG, nextB] = getRGB (list[nextColour]);
|
||||
|
||||
body.style.backgroundColor = `rgb(${tempR}, ${tempG}, ${tempB})`;
|
||||
|
||||
tempR += (nextR - nowR) / 150;
|
||||
tempG += (nextG - nowG) / 150;
|
||||
tempB += (nextB - nowB) / 150;
|
||||
},
|
||||
20);
|
||||
|
||||
/*
|
||||
* カラ・コゥド c を RGB 値に変換する.
|
||||
*
|
||||
* 戻り値は,RGB 値排列.
|
||||
*/
|
||||
function
|
||||
getRGB (c)
|
||||
{
|
||||
g.fillStyle = c;
|
||||
g.fillRect (0, 0, 1, 1);
|
||||
|
||||
const img = g.getImageData (0, 0, 1, 1);
|
||||
const px = img.data;
|
||||
const rgb = [px[0], px[1], px[2]];
|
||||
|
||||
return rgb;
|
||||
}
|
||||
|
||||
function
|
||||
sortChange (evt)
|
||||
{
|
||||
const searchParams = new URLSearchParams (window.location.search);
|
||||
|
||||
switch (evt.currentTarget.value)
|
||||
{
|
||||
default:
|
||||
window.location.href = `./?thread=${searchParams.get ('thread')}&sort=td`;
|
||||
|
||||
break;
|
||||
|
||||
case 'evaluate-good':
|
||||
window.location.href = `./?thread=${searchParams.get ('thread')}&sort=eg`;
|
||||
|
||||
break;
|
||||
|
||||
case 'time-asc':
|
||||
window.location.href = `./?thread=${searchParams.get ('thread')}&sort=ta`;
|
||||
|
||||
break;
|
||||
|
||||
case 'evaluate-bad':
|
||||
window.location.href = `./?thread=${searchParams.get ('thread')}&sort=eb`;
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
Before Width: | Height: | Size: 805 KiB After Width: | Height: | Size: 805 KiB |
@@ -0,0 +1,53 @@
|
||||
<?php
|
||||
|
||||
use \Dao;
|
||||
use \Dto;
|
||||
|
||||
|
||||
if (isset ($_GET['page']))
|
||||
$page = $_GET['page'];
|
||||
else
|
||||
$page = 0;
|
||||
|
||||
if (isset ($_GET['thread']))
|
||||
$thread = $_GET['thread'];
|
||||
else
|
||||
$thread = -1;
|
||||
|
||||
if (isset ($_GET['sort']))
|
||||
{
|
||||
$sort = $_GET['sort'];
|
||||
|
||||
if (!(in_array ($sort, array ('td', 'eg', 'ta', 'eb'))))
|
||||
$sort = 'td';
|
||||
}
|
||||
else
|
||||
$sort = 'td';
|
||||
|
||||
// 画像のディレクトリを開く.
|
||||
$dir = './images/';
|
||||
$handle = opendir ($dir);
|
||||
|
||||
if ($row = Dao\Thread :: find ($thread))
|
||||
{
|
||||
$title = $row -> title;
|
||||
$explain = $row -> explain;
|
||||
}
|
||||
|
||||
if (isset ($_GET['id']))
|
||||
{
|
||||
if (($_GET['evaluate'] ?? '') === 'good')
|
||||
{
|
||||
Dao\Response :: like ((int) $_GET['id']);
|
||||
header ("Location: ./?thread=$thread&sort=$sort");
|
||||
}
|
||||
|
||||
if (($_GET['evaluate'] ?? '') === 'bad')
|
||||
{
|
||||
Dao\Response :: dislike ((int) $_GET['id']);
|
||||
header ("Location: ./?thread=$thread&sort=$sort");
|
||||
}
|
||||
}
|
||||
|
||||
require_once './forms/index.frm.php';
|
||||
|
||||
Reference in New Issue
Block a user