NHKの言う「戦争を考えない若者」の定義がおかしな件

今日実家の帰りからの車内で溜まってたPodcastを聞いててビックリしました。
NHKラジオニュースの「8月15日 夜10持NHKジャーナル」です。

NHKラジオニュースは過去5回分しかダウンロードできない仕様になってるので、聞けるとしたら今日明日中でしょうか。
日曜に配信をしていないのであれば、月曜までは聞けると思います。

メインの話題は終戦の日

8月15日は終戦の日。今年で69年となります。
夜10持のNHKジャーナルは、その日あった出来事を評論家や専門家の方の意見を交えながら放送しています。

8月15日のメインの話題は、当然ながら終戦の日戦争と平和について。

全国戦没者追悼式に出席した最高齢100歳の女性の話とか最年少7歳の幼女の話とか、閣僚が靖国神社に参拝して中国と韓国が文句を言ってるとか、そんな感じの内容で始まります。

若者は戦争をどう考えているのか?

ビックリしたのは10分くらいからです。
若者が戦争どう考えているのかという話になって、こんなことを言い放ちます。

「10代の若者たちは戦争についてどのように考えているのでしょうか?」
 (え?若者って10代?
「東京の渋谷で若者たちにこんな質問をぶつけてみました。」
 (え?しかも渋谷の10代?)

当然ながらインタビューする若者全員が
「いや、知らないです。」
「え?何の日?」
と答えます。

素晴らしいですね!
見事に「今の若者は戦争を知らない」という図式が出来上がりました。

8月15日の終戦の日に、戦争のことを最も考えて無さそうな若者が集う場所で戦争についてインタビューして、「今の若者は戦争について知らない」と報道するのはマスコミとしてどうなんですかね。

さらに、
「正午の全国戦没者追悼式での黙祷の時間も渋谷の若者たちはいつものように過ごしてました。」
とか言ってて、
「そりゃそーだろw」
と一人ツッコミ入れてました。

「日本全国どんな場所でも8月15日の正午に黙祷すべき。」
とでも言いたいのでしょうか。

そもそも若者の定義がおかしい

インタビューした場所が渋谷なのも意味不明ですが、若者の定義を10代にしてるのにも違和感を感じます。

小学生のときは遊びに夢中だし、中学生になると高校受験があるし、高校生になると大学受験があり、大学生になると卒論があり就職活動がありで、おじいちゃんとかから直接戦争について聞かない限りは10代で戦争について真面目に考えることはないと思います。
自分の学生時代を振り返ってみても、10代のときに戦争について深く考えたことはなかったです。

大学を卒業して就職し、仕事も慣れて気持ちに余裕ができて、興味のあることを調べたりイベントに参加したりできる年齢、25~35歳くらいが「若者たちは戦争についてどのように考えているのか?」という質問の「若者」の定義に一番近い思うのですがどうでしょうか。

結論

少なくともNHKの言う
「今の若者たちは戦争について考えていません。」
は意図的に作られた虚実なので騙されないようにね!

Wordpressでプラグイン有効時に、依存プラグインのチェックを行う方法

Wordpressプラグインを開発してる時に、ある特定のプラグインが動作してる時にのみ処理を行いたい時があります。

もっと正確に言うと、「ある特定のプラグインが保持してる情報を使いたい」という時でしょうか。

そんなときは、そもそもそのプラグインが使われていない(有効化されていない)ときは、今自分が作ってるプラグインは有効化できないという実装にするのが一番スマートだと思います。

自作のプラグインを有効化して、その後に◯◯のプラグインが必要だから有効化してくれというのはあまりスマートとは言えません。
自分だったら「なら最初から有効化させんじゃねーよ」と思います。

ググってもそれらしい記事が出なかったので難しいのかと思ってたら、わりと簡単に実装できました。

プラグインを有効化する時に実行する register_activation_hook フィルターでプラグインのチェックをするだけです。

register_activation_hook(__FILE__, function() {
  // 依存プラグインが有効化されていない時は、エラーで処理を中断する
  if( is_bool(array_search('usc-e-shop/usc-e-shop.php', get_option('active_plugins'))) ) {
    echo '◯◯プラグインの動作には、Welcart e-Commerce プラグインが必要です。';
    exit();
  }
});

array_search はエラーの場合 FALSE が返ってくるらしいのですが、== FALSE とかしてもうまく if 分岐しくれませんでした。
gettype で型を調べると、エラーの時は boolean型で返ってきたので is_bool でチェックするようにするとうまくいきました。

チェックしたいプラグインのファイル名は、WordPressをインストールしたDBの wp_otions というテーブルに active_plugins という項目があり、有効化されているプラグインはここに保存されるので、その値を見ながらチェックしたいプラグインのファイル名を探しましょう。

MySQLの中身を見るときは、Windowsだと HeidiSQL、Macだと Navicat を使うとGUIでサクッと確認できます。

Welcartでクロネコwebコレクトを使う方法

WordPress専用のショッピングカートプラグインWelcartにWebpayやYahoo!Fastpayを導入できないか試行錯誤中です。

そんな中で見つけた記事がこれ。

ヤマトもオンライン決済やってたんだー。
配送業者はヤマト以外使う気ないからまとめれたら便利だなー。
手数料は・・・5%か。高い。

というわけでクロネコwebコレクトを使うことは諦めましたが、Welcart上での決済処理の流れを知るサンプルにいいと思ったのと、Welcartのプラグイン本体を修正してるやり方が美しくなかったので、記事を見ながらクロネコwebコレクトを使えるようにしてみました。

ちなみに動作確認まではしてません。
クロネコwebコレクトとの契約が必要ですので。。

2. 決済モジュール“kuroneko.php”を作成

前述の記事の(ry

3. 注文完了画面にボタンを追加

ここと4の実装が美しくないので、アクションフックを使うよう実装し直します。

// functions.phpに追記する。
add_filter('usces_filter_confirm_inform', function($html, $payments, $acting_flag, $rand, $purchase_disabled) {
  if($acting_flag != 'kuroneko.php') return $html;
  return $html . '<input type="hidden" name="acting" value="kuroneko" />';
}, 99, 5);

ちなみに、上記の書き方はPHP5.3以上じゃないと動かないので、5.2以下の人は次の記事を参考に修正してください。

4. ボタンに注文情報をもたせる

こちらも3と同様に実装が美しくないので、アクションフックを使うようにします。
あと、利用しないのに使ってるものもあるので、それも取り除きます。

// functions.phpに追記する。
add_filter('usces_filter_cartcompletion_page_body', function($nothing, $usces_entries, $usces_carts) {
  if( !isset($_REQUEST['acting']) || $_REQUEST['acting'] != 'kuroneko') return;
  $html =
    '<form id="purchase_form" action="https://payment.kuronekoyamato.co.jp/webcollect/settleSelectAction.gw" method="post" onKeyDown="if (event.keyCode == 13) {return false;}" Accept-charset="Shift_JIS">'.
      '<input type="hidden" name="TRS_MAP" value="V_W02">'.
      '<input type="hidden" name="trader_code" value="クロネコで契約した加盟店コード">'.
      '<input type="hidden" name="order_no" value="'. esc_attr($usces_entries['order']['ID']) . '">'.
      '<input type="hidden" name="settle_price" value="'. esc_attr($usces_entries['order']['total_full_price']) . '">'.
      '<input type="hidden" name="goods_name" value="商品">'.
      '<input type="hidden" name="buyer_name_kanji" value="' . esc_attr($usces_entries['customer']['name1']) . '' . esc_attr($usces_entries['customer']['name2']) . '">'.
      '<input type="hidden" name="buyer_name_kana" value="' . esc_attr($usces_entries['customer']['name3']) . '' . esc_attr($usces_entries['customer']['name4']) . '">'.
      '<input type="hidden" name="buyer_tel" value="'. esc_attr($usces_entries['customer']['tel']) . '">'.
      '<input type="hidden" name="buyer_email" value="'. esc_attr($usces_entries['customer']['mailaddress1']) . '">'.
      '<div class="send">'.
        '<input type="submit" name="purchase" id="purchase_button" class="checkout_button" value="クロネコでお支払手続きをする" />'.
      '</div>'.
    '</form>';
  return $html;
}, 99, 3);

ちなみに、上記コードもPHP5.3以上じゃないと動かないので注意してください。

5. Welcartの支払方法にクレジット決済を追加

前述の(ry

以上です。

これでWelcart本体の修正をすることなく、クロネコwebコレクトを導入することができました。
Welcartのアップデートをしても再度修正する必要はありません。

自分もWelcartでの決済の流れがなんとなく理解できたので、めでたしめでたし。