iTunesで再生した曲をブログ(wordpress)に表示する
2011年12月29日 22時44分
右にある「最近聞いてる曲」ってウェジット。
案外設置に手間取ったのでメモ代わりに記載。
このウェジットはlast.fmのプラグインlast.fm Live!で対応した。
使用しているwordpressは3.2.1。
last.fmはSNSらしいけど自分の使い方は専ら自分が再生した曲の累計を眺めてニヤニヤしているのみ。
月に何曲聴いたとかもわかるし自分が予想していなかったアーティストが自分の再生ランキング上位にくることもある。
個人での使用でも十分楽しいのでお勧めである。
ちなみに俺のランキングTopは断トツでKOTOKO。2位のナイトメアにダブルスコア以上という状態w
設定も上のサイトでユーザー登録したらその後ここで連携用ソフトをインストールすれば終了。
至って簡単である。
・lastfm-rps
http://blog.hamamoto.info/archives/134.html
・lastfm-recently-played-tracks
http://wordpress.org/extend/plugins/lastfm-recently-played-tracks/
検索してみると上位に出てきた上の2つは2.xシリーズの時に開発されたらしく3.xシリーズだと警告が出て上手く動かない。
エラーの内容はregister_sidebar_widgetはもう使えないからwp_register_sidebar_widgetを使えというような感じのやつ。
調べてみたけど結構修正を加えないと駄目そうだったのでスパっと諦めた。
・lastfm-records
http://wordpress.org/extend/plugins/lastfm-records/
こちらはすんなり動いたけど見た目が残念。
↓こんな感じ
・lastfm-live
http://wordpress.org/extend/plugins/lastfm-live/
最終的に使用したのはこのlastfm-liveというプラグイン。
使用している3.xでもエラーがあまり出なく少しの修正で警告無しに持っていけて見た目の編集もテンプレートが分かれてて触りやすい。
プラグインのメモをしつつlast.fmが日本でももっと普及すれば嬉しいんだけどなぁ。
PHP DomDocumentがインストールできない為Simple XML に書き直す場合
2011年12月14日 19時01分
XMLを出力するためにDomDocumentを使用して作成していたのだが開発環境にはライブラリが入っていたが本番環境には’–disable-dom’オプションが付いていてDomDocumentが使えない。
ライブラリをインストールする場合はapache再起動が必要になるため商用リリースしている場合は勿論許可が出にくい。
そんな状況に自分が陥ったのでSimple XMLに書き直した時のメモ。
XML定義
DomDocument
|
$dom = new DomDocument("1.0"); $dom->encoding = "UTF-8"; $dom->formatOutput = true; $idea_mail_mag_data = $dom->appendChild($dom->createElement("aaaa")); |
↓
Simple XML
|
$xml_root = '<?xml version="1.0" encoding="UTF-8"?><aaaa></aaaa>'; $xml = simplexml_load_string($xml_root); |
子供追加・属性設定
DomDocument
|
//aaaaにbbbbノード追加 $bbbb_node = $idea_mail_mag_data->appendChild($dom->createElement("bbbb")); //bbbbノードに属性flagを追加 $bbbb_node->setAttribute("flag", "1"); //テキストノード追加 $bbbb_node->appendChild($dom->createTextNode("ほげ")); //CDATAで括る場合 $bbbb_node->appendChild($dom->createCDATASection("ほげ")); |
↓
Simple XML
|
//aaaaにbbbbノード追加 $bbbb_node = $xml->addChild('bbbb'); //bbbbノードに属性flagを追加 $bbbb_node->addAttribute('flag', '1'); //テキストノード追加 $xml->addChild('bbbb', 'ほげ'); //CDATAで括る場合(対応関数がないので直書きする $xml->addChild('bbbb', '<![CDATA[ほげ]]>'); |
後はXML形式に出力。
DomDocumentの場合はただ関数を1つ呼び出すだけでよい。
DomDocument
Simple XMLの場合はどうやってもCDATASectionの対応がライブラリ側だけではエスケープされてしまい誤動作するので以下に記述されていた関数をかます等して外部で対応するしかない。
http://students.kiv.zcu.cz/doc/php5/manual/cs/ref.simplexml.php.html
Simple XML
|
function fixCDATA($string) { $find[] = '<![CDATA['; $replace[] = '<![CDATA['; $find[] = ']]>'; $replace[] = ']]>'; return $string = str_replace($find, $replace, $string); } // XML出力 echo fixCDATA($xml->asXml()); |
本番の動作環境はよく調べましょうというお話。