2012年3月31日土曜日

MODx Revolution で、日本語エイリアスを設定できるようにする

MODx Revolution でフレンドリーURL を有効にすると、各リソースで設定した 「エイリアス」 がそのページの URL に使われるようになります。でもこのエイリアスに日本語を設定すると、うまくいきません。どうでも良いことなんだけど、何とか設定できるようにしてみたくなりました。
ということで探してみると、以下の情報に当たりました。
参考URL:
http://forums.modx.com/index.php?topic=28290.0http://mixi.jp/view_bbs.pl?id=18851291&comm_id=571831&page=all
これらは Evo の情報だったので、Revo の方でも似たようなところがないかと探してみると、次の修正で出来るようになりました。なおバージョンは  2.2.0-pl2 です。
core/model/modx/modrequest.class.php の 417行目あたり
if (isset ($_GET[$rAlias])) {
    $_GET[$rAlias] = preg_replace("/[^A-Za-z0-9_\-\.\/]/", "", $_GET[$rAlias]);
}

if (isset ($_GET[$rAlias])) {
    $_GET[$rAlias] = preg_replace("/[^A-Za-z0-9_\-\.\/]/", "", str_replace("%2F","/",urlencode($_GET[$rAlias])));
}
これで出来ました。
完全に自己責任の世界ですのでそこのところよろしくです。

2012年3月12日月曜日

MODx の Articles でタグが表示されなくなった

MODx でブログの機能を実現する Articles、これはイイと思って、自分のテンプレートを使って使い始めました。

タグの表示

記事に設定したタグを表示する場合は、テンプレートに以下のように記述します(Articles のデフォルトテンプレートより抜粋)。
[[+tv.articlestags:notempty=` | <span class="tags">[[%articles.tags]]: [[!tolinks? &items=`[[+tv.articlestags]]` &target=`[[*id]]` &useTagsFurl=`1`]]</span>`]]
該当記事にタグが設定されていたらその一覧を表示し、何も設定されていなければ表示されません。これを自分のテンプレートに合わせて埋め込みました。

タグが表示されなくなった

最初は正常にタグが表示されていたのですが、いつの間にか表示されなくなってしまいました。キャッシュをクリアしてみてもダメでした。

情報はここ

Articles のタグ機能は、MODx のカスタムテンプレート機能によって実現されています(参考サイト)。
MODx 上で「エレメント」→「テンプレート変数」→「Articles」→「articlestags」へ進んで、「テンプレートの割り当て」タブの中に、Articles のタグ機能を適用するテンプレートの一覧が表示されます。Articles のデフォルトテンプレートはチェックが入っていましたが、自分の作ったテンプレートにはチェックが入っていませんでした。チェックを入れて保存して、改めてブログを表示してみるとタグが正常に表示されるようになりました。

2012年2月29日水曜日

MODx Revolution で 静的 HTML をエクスポートしたい

MODx Evolution では、作成したサイトを静的 HTML にエクスポートする機能があります([Tool] > [Export Static HTML])。MODx Revolution でもエクスポートをやりたいと思いました。

そもそも

私は、XREA 上にスタティックなサイトを作ってしばらくになりますが、最近、管理を楽にしたいと思い、CMS の使用を検討していました。いくつかの CMS を試して、MODx が好きになり、せっかくなので新しい方の Revolution を使いたいと思いました。ところが Revolution は、XREA の古いデータベースには対応していません。これを機に CORE SERVER に乗り換えようかと思っていましたが、その矢先、XREA サーバーの大幅増強 がアナウンスされました。CORE MINI よりも今の XREA の方が年間 100 円安いので (^_^;)、乗り換えはやめて、とりあえず WebMatrix を使ってローカルに MODx 環境を構築して、その環境丸ごといつでも XREA に移せるようにしておいて、サーバの増強が実施されるまでは MODx からエクスポートしたスタティックなページを載せておこうと考えました。特に静的ページにエクスポートして問題が出るようなダイナミックなサイトではないので、とりあえずはこれで十分です。

MODx Revolution のエクスポート機能はどこに?

MODx Revolution をインストールすると、core/export というディレクトリが作られていて、ドキュメントにはこんな風に書いてあります。

After running the Export function in MODx Revolution, the exported HTML files for your site will be located here.

要は、「このディレクトリには、エクスポート機能を使用した時に吐き出されるスタティックなHTMLファイルが格納される」ということです。こんな風に書いてあるということは、Revolution にもエクスポート機能はあると思うのですが、メニューの中を探してもどこにも見当たりません。検索をかけると、ここここが引っ掛かるのですが、よく分かりません。で、行き着いたのはここでした。

Revolution のエクスポート用拡張機能 Statiker

結局、Statiker というエクスポート機能を作ってくれた人がいるということのようです。早速インストールしてみました。使い方は非常に簡単で、「エクスポート完了!」みたいなメッセージも出た…のですが、なぜか指定したエクスポート先にファイルが作成されていません。README.md によると、フレンドリー URL が ON になっている必要があるとのことなので、何とか設定しましたが、それでもダメ。なぜ? WebMatrix 上でやっているから? 結局、色々試行錯誤しましたが出来ませんでした。

ということで代替手段

結局、ウェブ巡回保存ツール HTTrack を使って、ローカルの WebMatrix 上の MODx からサイトをダウンロードして、静的サイトとして XREA にアップする、なんていう方法に落ち着いちゃいました。おわり。

2012年2月22日水曜日

Blogger を Google アナリティクスでアクセス解析できるようにする

普通のサイトを Google アナリティクスで解析するには、ウェブページの中に専用の html コードを埋め込む必要があるが、Blogger は簡単な設定で可能になる。

  1. まずは Google アナリティクスで Blogger のサイトを登録
    • Google アナリティクスホームページ[アナリティクスにアクセス] をクリック。初めて使う方は申し込みが必要。


    • アカウントホーム画面で右上の設定ボタンをクリック


    • アカウント管理画面[新しいアカウント] をクリック


    • 新しいアカウントの作成画面でアカウント情報を設定
      アカウント名を適当に設定
      ウェブサイトのURLに Blogger のURL を指定
      タイムゾーン国または地域 を適切に設定
      利用規約に同意して[アカウントを作成]ボタンをクリック

    • 表示された解析用コードの中に "UA-XXXXX-YY" の形式で含まれている文字列(ウェブプロパティID)をコピー

  2. Blogger での設定
    • Blogger アカウントにログイン
    • ブログの[設定]->[その他]へ移動
    • 設定項目の中に『アナリティクスのウェブ プロパティ ID 』があるので、上で取得した ID を入力して設定を保存

以上で、しばらくすると解析結果がアナリティクスのページで表示されるようになる。

この記事で参考にしたページ:
Blogger - アナリティクス ヘルプ

2012年2月21日火曜日

WebMatrix に MODx Revolution をインストールしてみた

WebMatrix では、MODx Evolution は App Gallery の中にあってすぐ使えるようになっているが、Revolution は自力でインストールしないといけないようだ。ということでインストールしてみた。

  1. まず、MODx Evolution を App Gallery からインストールする。こうすることで必要なデータベース環境などが勝手に整ってしまう。
  2. MODx Revo の最新ファイルを ここ からダウンロードしてくる。今回は 2.2.0-pl2-ja-p1.zip であった。
  3. ダウンロードしたファイルを任意の場所に解凍する。今回は WebMatrix のデフォルトのサイト置き場(マイドキュメントの "My Web Sites")に適当なフォルダ (ここでは "TestSite") を作って展開する。
  4. データベースをいじるために、phpMyAdmin を ここ からダウンロードして、"TestSite\phpMyAdmin" フォルダ内に展開する。
  5. WebMatrix を起動して Open Site -> Open Folder から "TestSite" を選択。
  6. できたサイトへの URL が "http://localhost:ポート番号" の形で表示される。ポート番号はランダムな値が割り当たる。この URL リンクをクリックしても、まだ "503 Error" と表示される。
  7. ブラウザで直接 "http://localhost:ポート番号/setup" を指定し、セットアップを開始。
  8. ここで、MODx のインストーラは、勝手にポート番号を抜いた " http://localhost/setup/index.php?s=set" に行こうとするため、" Bad Request (Invalid Hostname) " と表示されてしまい、うまくいかない。改めてポート番号を追加して http://localhost:ポート番号/setup/index.php?s=set" とすれば次のステップに進める。ポート番号の指定は手順を次へ進めるたびに同様に行わなければならない。
  9. あとは次へ次へでOK。