表題の件のテスト記事です。この記事でTwitterに更新してくれれば成功です。
カテゴリー: オープンソース
Twitterで遊びだしました話し
以前IDを登録していたTwiterで遊びだしました。
このブログで使っているWordPressにTwitterのプラグインがないかと探しましたが、やはり、たくさんありました。何がいいかわからないので、とりあえずTwitter for WordPressをインストールしておきます。
これで右メニューに私のTwitterの投稿が表示されています。みなさんフォローよろしく。
WordPress 2.8.2 にアップグレードした話し
WordPressにXSS の脆弱性が見つかったということですので、WordPress を2.8.2にアップグレードしました。今回も自動アップグレードです。
WordPress2.8.1にアップデート
WordPress2.8.1がリリースされていたので、何も考えずに自動アップデートする。念のためというのもあるが。
以前のバージョンが問題がありなバージョンだったらしいが、こちらではファイルが消えるなどの問題はなかった。今度も問題ないでしょう。上手くバージョンアップされたようだ。
PukiWikiでユーザー認証できなくなっていた話し
今サポートをやっているゴルフゲームですが、そのサポートページはPukiWikiで作っています。久しぶりにページを更新しようとしたら、編集のユーザー認証ができなくなっている。
パスワードを間違えていると思って再設定しても変わらない。そういえばと気がついた。
今使っているサーバーがPHP5にバージョンアップされたと同時に、mod_phpからCGI版のPHPに変更なっていた。昔に連絡をもらっていたが、なかなかバージョンアップされてなかったので忘れていた。いつの間にかバージョンアップされていた。
CGI版のPHPになるとPEAR:Authが使えなくなって、PEAR:Authを使っているPukiWikiはユーザー認証できなくなるという訳。CGI版PHPに変わったところで影響のないと思っていたが、こんなところでひっかかるとは。
そこで、CGI版PHPへのPukiWikiの対応方法はここに書かれているが、時間を見て対応しておこうと思う。その間は更新するときは設定ファイルを書き換える。原始的な方法。だって、ユーザーは私一人だし、あまり更新しないし・・・。
pukiwiki.sourceforge.jphttp://pukiwiki.sourceforge.jp/?自作プラグイン/login.inc.phphttp://pukiwiki.sourceforge.jp/?自作プラグイン/login.inc.phpでも何でCGI版PHPにするかな? 何かレンタルサーバー会社にとって意図があるのかな???
WordPressのショートコードの実験
WordPressには、簡単に独自機能を記事に埋め込めるショートコードとあるらしいので実験してみる。
例えば、ここのサイトを参考にして
[hw]
と記述すると(両側の括弧は1バイトです)、
[hw]
と表示される。つづいてここのサイトを参考にして、
[bk1_vc id="03092262" title="WordPress 2.7対応「導入&カスタマイズ」実践ガイド"]
と記述すると、
[bk1_vc id=”03092262″ title=”WordPress 2.7対応「導入&カスタマイズ」実践ガイド”]
とbk1のバリューコマースのアフリエイトのリンクが表示されるように、ショートコードを書いてみた。これでわざわざ、MyLinkの変換ページでURLとか画像とかをコピーしなくてよくなった。ただし、適当なIDの決め打ちですので間違えているかも。とりあえず動いているレベルです。
bk1のAPIの仕様がわかれば、もっとパラメータのチェックをきちんとすればいいかもしれません。Amazonみたいに、商品IDからいろいろな情報を取得できるようなAPIをbk1は用意していませんでしたよね?
30分で作成した簡単なものですが公開します。divタグのclassを打っていますので、適当にCSSでデザインしてください。あとIDを変えてあげないと、全部アフリエイトは私がいただきます。
ブログのデザインを変えてみる
今使っているWordPressが2.8にバージョンアップされたついでに、強化されたテーマの機能をつかってデザインを変えてみました。
何のことはない配布されているテーマを入れ替えただけ。色、段数などを選択していくだけでテーマが表示され、プレビューして、テーマのダウンロード、サイトアップロードまで、ボタンをクリックしていくだけで簡単にデザインを変えることができます。ここまで5分かからなかった。
あとはカレンダーとかアーカイブなどの部品を配置するだけ。とても簡単。もちろん、以前のテーマにもすぐに戻せる。
ただし、タイトルとかリンク名とか英文のままですので、時間をみて日本語にしていきましょう。
Windows Live Writer で WordPress の記事を投稿すると、タグが見えてしまう障害
表題の通りなのですが、突然障害発生。
これはテストです。
これはテストです。
このような記事をWindows Live Writerで投稿すると、
pこれはテストです。/p pこれはテストです。/p
とタグが見えてしまう。
解決方法を探してみると、やはりありました。こちらで一連の解決方法が載っています。
この通り、xmllib2-fixというWordPressのプラグインをインストールしたら解決しました。
しかし、何が変わってこの障害が発生したか不明。Windows Live Writerがアップデートした覚えがないし、WordPressもアップデートされていないし・・・。不思議です。
CakePHP URLの指定 - 例えば、htmlヘルパーのlinkのパラメータの話し
CakePHPを使っていると、ヘルパーなどのリファレンスを解説本では簡単に説明を済ませているところに当たります。CakePHPのマニュアルをよく見れば書いているのですが(ただし、日本語サイトは遅れている場合があり)。
例えばhtmlヘルパーのlinkの説明ところ。Webとか解説本には、
HtmlHelper::link($title, $url = null, $htmlAttributes = array(), $confirmMessage = false, $escapeTitle = true) $title : タイトル $url : リンク先URL $htmlAttributes : 属性 $confirmMessage : 確認メッセージの有無 $escapeTitle : エスケープの有無
などど書いていています。$urlは、”http://testtest.jp/”のようなURLをテキストで設定するようにサンプルに書かれています。
しかし、CakePHPではURLの指定は、
array('controller' => コントローラ名, 'action'=>アクション名)
のように連想配列で指定可能なのです。もし、管理者サイトでは、
array(Configure::read('Routing.admin') => true,'controller' => コントローラ名, 'action'=>アクション名)
のようにすればいいのです。アクション名には’admin_’とかは付ける必要はありません。
CakePHPを使いこなしている人なら当たり前かもしれませんが。一応、自分の覚え書きです。
あとlinkのURLに関連して、ここのサイトに書かれていますが(感謝!)、IDなどの検索条件のパラメータをpaginatorヘルパーに含めるには、 Veiwで$paginator->optionsにurlをキーにした連想配列を設定すればいいようです。Veiwで$paginator->optionsのurlに設定してしまうと、View内のpaginatorヘルパーでsort()などのリンク先には、’val1/val2’が勝手に付けてくれます。
もし、このようにパラメータが付けてアクセスしたときに、
http://testtest.jp/コントローラー/アクション/val1/val2/
ビューの最初で
<?php $paginator->options = array( 'url' => $this->passedArgs ); ?>
とすると、passedArgs変数は、パラメータを持っていますので、ビュー内の
<?php echo $paginator->sort('title');?>
は、
http://testtest.jp/コントローラー/アクション/val1/val2/page:1/sort:title/direction:asc
というようなパラメータを付けたリンクを作ってくれます。
CakePHP 日付の月の選択フォーマットの指定。月を英文から数字で表示する話し
現在、CakePHPでニュースリリース管理を作成しています。そこで、リリースの日付を入力するところがあるのですが、CakePHPのそのままのHtmlヘルパーを使って日付を入力してしまうと、日本人向けではないフォーマットで選択させてしまう。
例えば、
$option_datetime = array( 'type' => 'datetime', 'timeFormat'=> 24, 'dateFormat'=> 'YMD', 'legend' => false, 'label' => false, 'div' => false, 'interval' => 15, ); echo $form->input('release_date', $option_datetime);
のようにする。
これだと、月が英文(”Januaru” ~”December”)で選択させる。dateFormat属性の指定は、date()のfomartになるかと思えば違っていた。仕方ないので、formヘルパー(/cake/libs/view/helpers/form.php)に手を入れようとした。しかし、FormHelperクラスの__generateOptionsメソッドのこの部分
case 'month': if ($options['monthNames']) { $data['01'] = __('January', true); $data['02'] = __('February', true); $data['03'] = __('March', true); $data['04'] = __('April', true); $data['05'] = __('May', true); $data['06'] = __('June', true); $data['07'] = __('July', true); $data['08'] = __('August', true); $data['09'] = __('September', true); $data['10'] = __('October', true); $data['11'] = __('November', true); $data['12'] = __('December', true); } else { for ($m = 1; $m <= 12; $m++) { $data[sprintf("%02s", $m)] = strftime("%m", mktime(1, 1, 1, $m, 1, 1999)); } } break;
を見ると、マニュアルにないmonthNames属性があることがわかる。上記の$option_datetimeに
'monthNames' => false,
を追加すれば、月が’01’~’12’になる。ソースは読んでみるものだ。
しかし、このソースを書いた人は、date()を頭にないような感じがする。本当ならば、dateFormat属性がdate()のフォーマット指定のように振る舞えればいいのだが。