2015-08-16

baserCMSで会員サイトを作る

baserCMSで会員サイトを作っていたのですが、はまったところを忘れないように書いて置きます。
環境: baserCMS 3.0.7
やろうとしたこと: 会員用のログイン機能の追加
参考にしたサイト: てるてる坊主様ブログ 2013年4月20日土曜日 baserCMSで会員制のページを作る

はまった事:
  1. 「認証プレフィックス設定」の設定でエラーが出て進めない。
  2. 見つけてきた参考サイトはbaserCMSの3系では2系のもので、3系のものに修正する必要があった。
  3. phpのheaderファンクションが安定しない。
  4. 会員IDと管理者IDの登録メールを同じにしたため?にトラブル。

修正方法:
(1) てるてる坊主様のブログに書いてあるように準備し、新規のユーザーグループを作ろうとしてもbaserCMSの設定で「認証プレフィックス設定」でエラーが発生します。結局、「管理システム」ですでに作成してあったものをコピーして、その名前などの設定と認証プレフィックス設定の選択を変更すると新しいグループを作成することができました。
 
(2) 次の様な感じで修正してエラーが出なくなりました。

---オリジナル---
$url = $html->url();
$pattern = '/member_blog/';
if (preg_match($pattern, $url)) {
    if (!isset($this->viewVars['user'])) {
        header('Location: '.$bcBaser->
          getUrl(Configure::read('BcAuthPrefix.mypage.loginAction')));
    }
}

---3系に対応するよう修正---
$url = $this->BcBaser->>getUri('');
$pattern = '/member_blog/';
if (preg_match($pattern, $url)) {
    if (!isset($this->viewVars['user'])) {
        header('Location: '.$this->bcBaser->
          getUrl(Configure::read('BcAuthPrefix.mypage.loginAction')));
        exit();
    }
}
 
デバッグ中、headerの前にecho文など追加して確認していたのですが、調べて見ると、それはしてはいけないようですね。基本の基本のようです。

(3) サーバーキャッシュのクリア直後はうまく行くのですが、二回目以降はheaderが機能しません。結局、(2)のソースには入っていますが exit 文を追加して安定して動作するようになりました。どうやら、これも基本のことのようです。

(4) 多分の話しなのですが、もしかしたら参考になるかもしれないので書いておきます。
両者の登録メールアドレスを同じにしてしまっている状態で、会員IDのパスワードリセットをテストの目的で試しました。メールで送るように指示するものです。

 すぐにメールは飛んできたのですが、送られてきたパスワードではログインできませんでした。しかも、管理者の方のパスワードまで変わってしまったらく、それまで使っていたパスワードでも、送られてきたパスワードでも管理者でログインできなくなりました。これは慌てました。

 phpMyAdminから暗号化されたパスワードを修正する方法を試してみても駄目です。
最終的には、たぶん、メールアドレスを設定しおなして、再度、パスワードリセットを試して、うまくいったのだと思います。(確証はありません)


2015-02-03

Machine-Readable? Machine-Understandable?


Web Accessibility について議論されるとき、Machine-Readable という言葉がよく使われます。読み上げたり、拡大したり、視覚的な表現を変更する技術を支援技術といいます。この 支援技術は大抵はソフトウェア(マシン)ですから、そうした支援技術がコンテンツを解釈できるようにするためには、Machine-Readableにすることが大切なんですよ、ということを説明しています。

しかし、それであれば Machine-Understandable の方が適切ではいなかと思います。実際、そういう言葉もあります。そこで Google で普及具合を調べて見ました。

 "machine readable" web accessibility :        134,000件
 "machine understandable" web accessibility : 8,570件

こうしてみてみると、まだ readable が主流なんですね。
 (semanticをキーワードにした場合は 390,000件: 47,100件となります。)

readable は WCAG2.0で言うところのレイヤーの一つ perceivable だけを実現すると思います。さらにoperableであり、understandable であることが求められるとするならば、Machine-Understandable"と呼んだ方が良いと、私は思うのです。



さて、とは言ってみても、、、
あと10から30年すると、tag なんかによらず視覚的な表現だけで人工知能が意味までも"理解"してしまうようになるのではないかと密かに期待しています。きっとその時に起こることは、出来の悪いAIの誤解釈に対する対策でしょう。つまり、「Kidproof Design」というような表現が出てきそうな予感がするのです。

子どもに失礼かな :-)

2015-01-28

Mac OS X の Caps ロックを無効化

ワイヤレスキーボードを使っているのですが、[caps]が左下にあるため、度々誤って押してしまいます。押してしまうと、LEDが緑色に点灯して、そのままロック状態になるので、かな入力モードの時などに、英数字が入力されてしまいます。パスワード入力で失敗するのも、大抵はこの Caps Lock状態が原因です。

キーの入れ替えソフトなどあるかと思い探してみると、なーんだ、OSの標準機能として存在しているではありませんか。


  1. [システム環境設定] - [キーボード] - [修飾キー] でメニューを出す。
  2. Caps Lock を「アクションなし」か他のキーに割り当てる。


これだけでした。 :-)

たぶん、探せば別のキーに割り振ることもできるのでしょうが、あまり他のソフトはいれたくないので、これで良しとしたいと思います。