Google

Google Ajax Feeds APIでRSSのsummaryを書き出す。

近頃ブログとWebサイト&TwitterとFaceBookの連携をやることが多くて
大抵の場合同じサーバーにWordPressなんか入れてて同じドメイン内でjQueryのプラグインjfeedを使えば大抵のことはできるし、クロスドメインでもjfeedの中に入ってる「Prxoy.php」を通してやると大体大丈夫なんですが、前のエントリにも書いたホームページビルダー以下の機能のエディタを200万円で売りつけるボッタクリ会社のWebサーバーは設定も素敵すぎていて、いまだPHP4.3で文字コード周りの設定もいい加減、.htaccessもそれらを上書きできない感じで手詰まり。

もともとほかの作業のついででサービスでやってる部分なのであまり時間もかけられなく、外のAPI使って無難に終わらせることに。。

んでGoogle Ajax Feeds APIでやることにしました。
んで半日くらいつっかかってたのが10分で終了; でもほんとはサーバーの中だけで何とかしたかった。
1点引っかかったのはAtomのsummary部分が使いたくて「entry.summary」って書くもダメ、そのほか思いつくこといろいろ書いてたけどダメ。APIのリファレンスたどるもたどり着けず、そもそもパブリッシュした時間を「entry.publishedDate」って書くからそっちから当たってみたら、本文は「entry.content」で指定し、
summary(概要)を引っ張りたいときは「entry.contentSnippet」こっちは120文字以内と書いてあったような・・

まぁ任意の文字数で引っ張りたいなら

var 追加するノード = document.createTextNode(entry.contentSnippet.substring(0, 最大文字数));

みたいに書けばいいし。

FaceBookのファンページも管理者のアカウントにアプリ入れないとウォール弄ったりできないので、ちょいとメンドクサイと思う今日この頃。FBMLで書いちゃえばいいのかな?

phplist-logo

PHPListのアーカイブ(バックアップ)一覧を表示する

お客さんのところでメーリングリストを構築するのにPHPList(http://www.phplist.com/)を入れていたのですが、バックナンバーを見れるようにとのことでしたので(デフォルトではそのような機能がない)、追加でアドオン入れてみました。

「NewsletterArchive」(http://docs.phplist.com/NewsletterArchive
なにやらソースの上のほうに解除リンクの横にどうのこうの書いてますが、上記のソースを「archive.php」などで保存して142~155行あたりのメッセージをを日本語に書き換え、PHPListのルートに転送。

あとは管理画面側で「購読ページ」のテンプレを弄ったり、サイト側からで直接「archive.php」へリンクを張ってあげればOKでした。

facebook

FaceBookでブログのRSSをウォールに自動投稿する

いまFaceBookでいろいろと試行中なのですが、いろんなソーシャルメディアで同じように日記やウォールを更新するのは一苦労です;

でブログとFaceBookのエントリも同期取るためにブログのRSS→FaceBookのウォールに投稿する
「RSS Graffiti」
http://apps.facebook.com/rssgraffiti/
をFaceBookで使い始めました。

詳しくはYahoo!ブログのファンページを参考に
http://www.facebook.com/note.php?note_id=197836456913069&comments

RSSのURLとブログのタイトルやURLを記入して保存するだけ。

FaceBookは正直単体では雑然としていて使いにくいですが
(何か一つ設定するのに結構探し回る;)
いろんなサービスを統合するインターフェースとしてはちゃんとした戦略があるなと思います
本来ならばmixiが先にやるべきだったのでは・・
懐の深さはFaceBookに分があるようです。

「なんとFacebookがmixiと連携。Facebookに投稿した内容がmixiに反映される」(TechCrunch)
http://jp.techcrunch.com/archives/jp20101028facebook-to-mixi/

modxロゴ

MODX Revolution触ってみました

近日切り替える予定ですが、現在自社のサイトを「MODX Revolution」で再構築してます。
インストールの方法は「MODX Evolution」 と同じでアップロードしてパーミッション変更して終了w

で、インストール後に管理画面を確認しましたがデザインがかなり渋くなってましたw
本題はそれだけじゃなくて追加されたいろいろな機能
色々ありますが、気に入ったり驚かされたのは以下の機能。

1、ホスト名を振って複数のサイトが管理できる「コンテキスト」機能

通常一つのドメインで複数のサイトを運営する場合は、ルート以下にサイトの数だけCMSをインストールするか、
CMS側でリソース毎にテンプレートを設定しなおして、さも別のサイトのように編集する必要がありました。
ただその場合は、どうしてもルートのコンテンツの下位コンテンツのような印象になってしまったり
管理者を割り当てる場合も複雑にロールを組んだりと、ごちゃごちゃした作業が発生しておりました

これをもっとすっきり管理できるように

http://hi-kick.jpのほかにも
http://fish.hi-kick.jpや
http://blog.hi-kick.jp
なんかのようにドメイン名の前に「ホスト名」をつけて別のホストで別のコンテンツとして運営してますよってことができるようになったみたいです。
無論管理画面も割り当てられたホストの中身しか表示できないようにできるためチームを組んでホスト毎(コンテキスト毎)で編集・管理をすることが可能です。

詳しくはhttp://modx.jp/demo.htmlの二つのサンプルサイトの例を確認いただければわかりやすいかと思いますが、管理画面の「システム」→「コンテキスト」を開いてもらうとホスト毎の「コンテキスト」が表示され、各コンテキストを右クリックで編集し「コンテキスト設定」を弄ってみるとURLやルートになるリソースを指定することができます。

2、簡単にプラグインやスニペットをインストールできる「パッケージマネージャー」機能

MODX EvolutionではFTPで指定されたディレクトリに拡張機能のファイルを転送し、いろいろと設定ファイルを弄る必要がありましたが、Linuxで追加パッケージをダウンロード&インストールイメージで、好きなものを選んでダウンロード&インストールをすべて管理画面で行えるようになりました。
削除もワンクリックなので何かあったらFTPをつなげるというひと手間がなくなりました^^
またインストール後もデフォルトの表示が外国語で、日本語の言語ファイルがないため設定ファイルをメモ帳で手書きしてアップロードするって事が多々あったのですが、このようなことも楽に解消できるのが次に紹介する「語彙トピックの管理」機能です。

3、もう言語ファイルを探す必要なし「語彙トピックの管理」機能

拡張機能をインストールした後従来であれば、表示されるテキストを探して全部日本語に直したりと言語の管理って結構大変だったりするのですが、MODX Revolutionからはそれらを「システム」→「語彙トピックの管理」で管理することができます。

語彙トピックを管理するネームスペースを管理して

語彙トピックを管理するネームスペースを管理

画面右上の「項目作成」ボタンでネームスペース内の語彙プロパティとその値を編集します

ネームスペース内の語彙プロパティとその値を編集

申込フォームなどを作成するスニペットのeformの代替でformitというものを使ってますが、これで表示されるエラー表示はすべて英語だったので探してみましたがjaの語彙ファイルがなかったので、この方法でja用の語彙を作成しオーバーライドしてみたら全然問題なく動いてます!便利すぎる;;

以上またつかっていきながら色々報告します^^

modxロゴ

Modx BaseURL Same-Page-Link Fix で特定のアンカーだけ相対パスを渡さない

仕事で他の人が作成したページをCMS(Modx)化してるのですが、その中でイメージマップにオンマウスすると小窓で拡大画像が表示されるというJavaScriptが仕込まれている部分がありまして


<map name="Map" id="Map"> 
<area shape="poly" coords="**,**,**,**" href="#画像のID" />
</map>

の様なソースで「#画像のID」に指定されたIDを振られた画像をページの読み込み時に
“display:none”
で隠しておいて、オンマウスした時にそのIDの画像を小窓で表示するものでした

Modxに通常はページ内のアンカーが有効になるように
「BaseURL Same-Page-Link Fix」プラグインをいれてるので
そのままModxに移植すると


<map name="Map" id="Map"> 
<area shape="poly" coords="**,**,**,**" href="ベースURLからの相対パス?id=**#画像のID" />
</map>

みたいなBaseタグを元にページの相対パスが「#」の前についてしまい、今回の場合では正しい画像のIDを渡す事が出来ませんでした。

でJavaScriptを弄るか、「BaseURL Same-Page-Link Fix」プラグインを弄るかいろいろと考えてたら「BaseURL Same-Page-Link Fix」のソースコードにはhrefのパラメーターを「’」で囲んだ時、「”」で囲んだ時の振り分けが出来るとかいてあり、今回の場合は「’」で囲んで無事「#画像のID」をそのまま渡す事が出来ました^^。