こんにちは。

ソーシャルブックマークへの追加アイコンをコンテンツに挿入するスニペットを公開します。
公開するのは躊躇われるような稚拙なものですが、PHPの勉強をかねて作ってみました。
自分としては、テンプレやチャンクにコーディングするより汎用的でいるつもりですw
DLはこちらから↓
http://modxcms.com/forums/index.php?action=dlattach;topic=21528.0;attach=6465
インストール
1.DLしたファイルを解凍し、"bookmarkmtns"フォルダを丸ごと"assets/snippets/"にULしてください。
2.「スニペットを作成」で、DLしたファイルの中にある"bookmarkbtns.php"をコピー&ペーストしてください。
-------------------------------------------------------------
:: スニペット: BookmarkBTNs
概要:
ソーシャルブックマークに追加するためのアイコンを挿入します。
バージョン:
0.1.0
作成者: はりぼて
作成日:2008/01/12
サンプルコード:
[[BookmarkBTNs? &services=`hatena,delicious,digg` &nameby=`longtitle`]]
----------------------------------------------------------------
:: 対応ブックマークサービス一覧(順不同)
----------------------------------------------------------------
- del.icio.us: http://del.icio.us/
- Digg: http://www.digg.com/
- はてなブックマーク: http://b.hatena.ne.jp/
- livedoorクリップ: http://clip.livedoor.com/
- ニフティクリップ: http://clip.nifty.com/
- Yahoo!ブックマーク: http://bookmarks.yahoo.co.jp/
- FC2ブックマーク: http://bookmark.fc2.com/
----------------------------------------------------------------
:: パラメータ
----------------------------------------------------------------
&services [delicious|digg|hatena|livedoor|nifty|yahoo|fc2]
初期値: `delicious,digg,hatena`
ソーシャルブックマークサービスの名称を書きます。
カンマで区切ることで複数のサービスが利用出来ます。
また、任意の順番でサービス名を入力すると、 その順番通りにアイコンが出力されます。
&img_path
初期値: `/assets/snippets/bookmarkbtns/images/`
ボタン用イメージが保存されているディレクトリを指定します。
MODxがインストールされているディレクトリから見た相対パスを指定してください。
&nameby [pagetitle|longtitle]
初期値: `pagetile`
ブックマークに登録するページ名を「タイトル」・「長いタイトル」のどちらから参照するかを指定します。
&alt [接頭辞,接尾辞]
初期値: `このエントリーを,に追加する`
<img>タグのalt属性、<a>タグのtitle属性に入力されるサービス名の接頭辞と接尾辞を指定します。
-------------------------------------------------------------
また、コードの110行目と118行目を編集することによって、アイコン群を囲むHTMLタグが指定できます。
具体的な動き
1.$_SERVER変数を利用して動的にURLを取得(サーバによってはうまくいかないかも)。
2.ページタイトルをurlencode。(UTF8環境が前提・EUCの場合はmb_convert_encodingで文字コードを変換する必要有り)
3.連想配列内から指定されたブックマークサービスの各値を取り出す。
4.取り出した値をHTMLタグに整形。
・・・と言ったような感じです。
今後の予定
・対応サービスを増やす。
・より効率的なコーディングを目指す。
お願い
livedoor, nifty, Yahoo!, FC2 ではアカウントを持っていないため動作確認を行っていません!
それぞれのアカウントをお持ちの方がいらっしゃいましたら、是非テストをお願いします。
いかんせん初めて作ったPHPのプログラムなので、至らない点もあるかと思います。
「ここはこうした方がいいよ」などの指摘がありましたら、どうぞお申し付け下さい。