社内で期間限定で公開したいページがあって、手動でやればもちろん可能ではあるんですけど、せっかくなので自動化したいなと思い、.htaccessを使ってできないかな、と調べてみました。
まず見つかったのが「.htaccess - システム日付・時刻変数 - date and time」。
# Rewriteエンジンを起動
RewriteEngine On# 期間限定のページを開設する例
RewriteCond %{TIME_YEAR}%{TIME_MON}%{TIME_DAY} > 20150101
RewriteCond %{TIME_YEAR}%{TIME_MON}%{TIME_DAY} < 20150102
RewriteRule ^(.*)$ /HappyNewYear.html [L]
指定した期間について、指定したパスに飛ばしてくれる感じでしょうか。ただどうもこの書き方では思っていたのとは違うような。
ということでさらに調べてみると「.htaccessで指定時間になったらメンテナンス画面を表示する」が見つかりましたー。
ErrorDocument 503 /maintenance.html
<IfModule mod_rewrite.c>
RewriteEngine OnRewriteCond %{TIME_YEAR}%{TIME_MON}%{TIME_DAY}%{TIME_HOUR}%{TIME_MIN} ">201903062359"
RewriteCond %{TIME_YEAR}%{TIME_MON}%{TIME_DAY}%{TIME_HOUR}%{TIME_MIN} "<201903070300"
RewriteCond %{REQUEST_URI} !=/maintenance.htmlRewriteRule ^.*$ - [R=503,L]
</IfModule>
指定した期間について、503エラーを出して、指定したページに飛ばすっていう感じの動きです。このとき飛ばし先のパス(この引用例では「maintenance.html」)というのがブラウザ上は出てこないので、直接URLをたたいてアクセスされる可能性もかなり低くなりそうな気がします。
さっそくこれを応用して、「2022年4月1日から2022年4月30日までの毎日10時00分から22時00分まで限定でextra.htmlを公開」という内容で書いてみました。
#期間限定ここから
ErrorDocument 503 /extra.html
<IfModule mod_rewrite.c>
RewriteEngine On#日付
RewriteCond %{TIME_YEAR}%{TIME_MON}%{TIME_DAY} ">20220331"
RewriteCond %{TIME_YEAR}%{TIME_MON}%{TIME_DAY} "<20220501"#時間帯
RewriteCond %{TIME_HOUR}%{TIME_MIN} ">0959"
RewriteCond %{TIME_HOUR}%{TIME_MIN} "<2201"RewriteCond %{REQUEST_URI} !=/extra.html
RewriteRule ^.*$ - [R=503,L]
</IfModule>
#期間限定ここまで
ま、私生活においては日付や時間帯で制限するような内容なんて全然ないんですけど、ビジネスにおいては知っておくと便利な技かな、と思います。
フルート用のスタンドはすでに2つ作ったことがあります。
さて、2年4か月にわたりご指導いただいた窪田先生とお別れすることになったので、最後のレッスンのときに何かお礼の品を渡したいなーと思い、フルートとピッコロのスタンドをプレゼントすることにしました。
フルートのスタンドは、今までどおりの作り方で木製。さらに透明に近いワトコオイルで仕上げてかわいく仕上がったのですが…
ピッコロのスタンドを作ろうと思ったけれど、管の内径や形状がさっぱりわからないんです。ピッコロなんて触ったことないし。
10mmか8mmか6mmのいずれかの丸棒を使おうと思い、ホームセンターに行って実際に手に取ってみたところ、10mmはどう考えても太いだろうなと思ってボツ。8mmか6mmで考えてみたけれど、6mmは細いっ。先のほうはいい感じなんだけど根元が頼りない感じがしたので8mmを選択しました。
鉛筆削りで丸棒の先を多めに削ってみました。色は前回フルートのスタンドを作ったときのオイルステインで着色。長さ、これくらいでいいのかなぁ。
さて、最後のレッスンが終わって先生に渡しました。「恥ずかしいので、帰ってから見てください。」と念押しして。
その夜先生からLINEが来て、「ピッコロ入りましたよ。」ということだったのですが…
おー。金のフルートが刺さっている! ピッコロは、うーんどうも浅い。先生曰く「半分は刺さっていて大丈夫ですよー。」とのことですが、作り手の心情的にはもう少しズブッと刺さってほしい気がするので、「ナイフでさくさく削って、茶色の油性ペンで塗ってやってください。」とお願いしておきました。
ピッコロの内径、8mmの丸棒でも太いのかー。6mmが正解だったなんて。フルートの3分の1程度ってことになるよね。
「前」や「次」っていう表現が、「過去」なのか「未来」なのかがわかりにくいっていう問題については、以前整理できました。
これでほぼ満足していたのですが、「どうせなら記事の日付も表示したほうがさらにいいかなー」と思ったので、実装してみます。
きっかけになったのはコレ。
日付もセットで表示する
左右に異なる日付のページが表示されることで、どちらが新しいか古いか一目瞭然となります。
(1日に複数回投稿するような場合は時間まで記載することで解決できます。)
スマホ版のはてなブログでは日付が書いてありました。
「あっ、この方法いいな。」と思ったのですが、やり方がわからない…。またまた先人の知恵を拝借。
ここを参考にして、テーマファイルをいじります。
改造前はこんな感じ。
<dl>
<dt>古い記事</dt>
<dd>← <?php previous_post_link('%link', '%title', TRUE); ?></dd>
<dt>新しい記事</dt>
<dd>→ <?php next_post_link('%link', '%title', TRUE); ?></dd>
</dl>
改造後。
<?php
$previous_post = get_previous_post(true);
$previous_id = $previous_post->ID;
$previous_date = mysql2date('['.'Y年m月d日'.']', $previous_post->post_date);
$next_post = get_next_post(true);
$next_id = $next_post->ID;
$next_date = mysql2date('['.'Y年m月d日'.']', $next_post->post_date);
?><dl>
<dt>古い記事 <?php echo $previous_date; ?></dt>
<dd>← <?php previous_post_link('%link', '%title', TRUE); ?></dd>
<dt>新しい記事 <?php echo $next_date; ?></dt>
<dd>→ <?php next_post_link('%link', '%title', TRUE); ?></dd>
</dl>
うん…日付を表示してしまうと、カテゴリによっては執筆間隔の広さが目立つなぁ。ま、閲覧者にとってはあったほうがいい情報だとは思うので、これでいってみましょう。
先日、レジ締めや金庫の現金確認のときに使える計算機として作ったのですが、送信ボタンを押すとフォームに入力した値は消えてしまいました。
「数字が消えなかったらいいのに。」という意見があって、そりゃそうだよねーと自分でも思っていたところなので改良してみました。
どうでしょ? かなり理想に近づけたとは思うんですケド。
仕組みとして、
<?php
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
if (isset($_POST['u500'])) {
$u500_value = $_POST['u500'];
} else {
$u500_value = '';
}
} else {
$u500_value = '';
}
?>
としておいて、
<td>500円</td><td><input type="number" name="u500" step="any" autofocus class="price" value="<?php echo $u500_value; ?>">本</td>
という感じで、送信と同時にフォームに値が返るようにしています。これを金種ごとに記述しておきます。
値をリセットするには、
<input type="reset" value="消す">
は使えなかったので、
<form action="<?php print($_SERVER['PHP_SELF']) ?>" method="post">
<input type="submit" value="消す">
<input type="hidden" name="u500" value="">
……
<input type="hidden" name="b1000" value="">
</form>
で、type="hidden"で非表示にし、すべての金種に対して空の値を送るようにしてみました。これでフォームの中の数字を全て消すことができます。
もっとスマートな書き方があるのかもしれないけれど、思いつかなくて…
YAMAHAのフルートYFL-517とYFL-312、説明の文字だけ見ると全然違いがありません。
価格は定価でYFL-517が264,000円、YFL-312が148,500円です。1.8倍、この10万円以上の差は、いったいどこにあるのでしょうか。
これがたとえば自動車だったりパソコンだったりすると、パワーやCPUのクロック数の違いのように数値で表せるんですが、楽器にはそういう数値的なものがないんですよね。果たして、何がちがうのか。それを初心者視点で検証してみましょう。
まず、音の出方や吹奏感は全然違います。
これを未経験者に伝えようとすると、なんていうか、YFL-312が50ccのスーパーカブだとするとYFL-517は90ccっていう感じかなー。スーパーカブじゃない例えなら、1300ccの自動車から2000ccの自動車に乗り換えたようなイメージ。同じスピードを出すのにエンジン音や車の挙動・安定性が違うっていえば理解してもらいやすいかなぁ。
YFL-312は、あぐらをかいてぼんやりしながら口笛がわりにピョーと吹いても鳴りやすい。YFL-517は、吹くゾっという気持ちでちゃんと息を送らないと鳴ってくれないけれど、きちんと吹けばそれに応えてくれるのです。
それでは、楽器そのものの違いを見てみましょう。
パッと見では、色も部品の構成も同じなのだから同じようにしか見えないですね。でもよく見ると、トーンホールのピッチが微妙に異なります。キーもよく似ているけれど同じパーツではありません。
実際に吹いてみると、YFL-312のほうがカチャカチャしたキーの感触があります。YFL-517はしっとりしていて、速くキーを動かしてもカチャカチャしないんです。