MODxの最近のブログ記事



最近MODxなサイトで文章を書きはじめたので、こちらにもはてなスターとかはてブとかつけたいなあと思い設置することに。スターは公式のガイドがあったので参考にした。


はてブはxusersアイコンと↑Bアイコンを表示することにする。参考になりそうなのは以下。



しかしながらMODxに関する情報がないようなので、テンプレートに追加したコードをまとめておく。


xusersアイコン


テンプレートの任意の場所に次のコードを追加。



<a href="http://b.hatena.ne.jp/entry/[(site_url)][~[*id*]~]">
<img src="http://b.hatena.ne.jp/entry/image/[(site_url)][~[*id*]~]" alt="はてなブックマーク - [*pagetitle*]" title="はてなブックマーク - [*pagetitle*]>">
</a>

↑Bアイコン


テンプレートの任意の場所に次のコードを追加。



<a href="http://b.hatena.ne.jp/entry/[(site_url)][~[*id*]~]">
<img src="/image/b_entry.gif" width="16" height="12" style="border: none;" alt="このエントリーを含むはてなブックマーク" title="このエントリーを含むはてなブックマーク" />
このエントリーを含むブックマーク
</a>

まとめ


スターの表示は次のとおり。フォントが小さいけど気にしないことにした。


f:id:Tnzk:20090308121403p:image


はてブの表示は次のとおり。ちゃんと表示される。↑Bアイコンがそれ単独だと目立たないので、テキストを添えてみることにした。


f:id:Tnzk:20090308121404p:image


参考




たいていのテンプレートでデフォルトでサイドバーに入ってるWayFinderは、コンテンツの階層構造をリストで再現するのではてダの「最新タイトル」のようなこと(便宜的にこういう機能をRecentEntriesと呼ぶことにする)をしようとすると微妙に使い勝手が悪い。


調べるとDittoというのを使えば狙いどおりのことができるらしい。


テンプレートの変更


まず、テンプレートのRecentEntriesを表示したい場所に次のコードを追加する:



<div class="recententry_box">
<ul>
[!Ditto? &config=`recententry` !]
</ul>
</div>

Dittoのconfigファイルを作成


上記のコードから呼ばれる設定ファイルを作成する。


assets/snippets/ditto/configsの中に、config名.config.phpというファイルを作成する。



$ cd /var/www/html/modx/assets/snippets/ditto/configs
$ su
# vi recententry.config.php

内容は次のように:



<?php
$id='recententry';
$parents='0';
$depth='4';
$display='10';
$showInMenuOnly='1';
$hideFolders='1';
$sortBy='editedon';
$tpl='recententry';
?>

表示用のチャンクを作成


Dittoからの出力時にテンプレートとして使われるチャンクを作成する。


チャンク名はrecententryとして、内容は以下。



<li><a href="[~[+id+]~]">[+pagetitle+]</a></li>

結果


以下のとおり。狙いどおりに表示できて満足。


f:id:Tnzk:20090214162645p:image


参考




とりあえずテンプレートを追加しなければ使おうという気にならない(形から入るタイプ)。


テンプレートを探す


MODx日本語版ページのテンプレートは非常にバリエーションに乏しいので、本家から探す。ときどき落ちてるので、そのときはしばらく待つ。


MODx Content Management System | Resource Listing


アーカイブのダウンロード


気に入ったテンプレートがあったら、これを/modx/assets/templatesにダウンロード。今回は本家より"Andreas_03"をインストールして、展開。



# wget 'http://modxcms.com/assets/snippets/repository/repo_download/download.php?dwnParam=YXNzZXRzL3JlcG9zaXRvcnl8MTc1OHxyZXBvX2Rjb3VudHxyZXBvLTE3NTguemlwfEFuZHJlYXNfMDNfMi4wLnppcA=='
# unzip Andreas_03_2.0.zip
# rm Andreas_03_2.0.zip

管理画面での設定



  • リソース→リソース管理→テンプレートと移動

  • 「テンプレートを作成」のクリック

  • テンプレート名: Andreas03

  • テンプレートの説明: 「@wikiで見たことあるデザイン」

  • テンプレートコード: Andreas03/Andreas03.template.htmlの内容をコピペ

  • ツール→グローバル設定→サイト→デフォルトテンプレートと移動

  • Andreas03を選択

  • 「保存」をクリック


テンプレートの修正


上記設定だとスタイルシートが適用されなかったので、テンプレートを見てみる。



<meta name="keywords" content="_your,keywords,goes,here_" />
<meta name="author" content="_your name goes here_ / Original design: Andreas Viklund - http://andreasviklund.com/" />
<link rel="stylesheet" type="text/css" href="/assets/templates/andreas03/style/andreas03.css" />
<title>[(site_name)] | [*pagetitle*]</title>
</head>
<body>

MODxがDocumentRootにインストールされていることを想定している様子。/modxに入っているので、assetsの前のスラッシュを削除して保存。


完了


f:id:Tnzk:20090211202211p:image


参考




昨日の時点でも気づいてたんだけど、MODx管理ページへのログインのため http://example.com/modx/managerにアクセス、ログインしようとすると、その直後にBasic認証させられた。Tracへログインしてくださいとのこと。


最初はmodxが../trac/*なファイルにアクセスしようとしてるのかと思ったんだけど、冷静に考えたら少しおかしいので調べてみる。


原因は昨日書いたtrac.confにあった。



<locationMatch "/[[:alnum:]]+/login">
AuthType Basic
AuthName "trac"
AuthUserFile /var/www/.htpasswd
Require valid-user
</locationMatch>

:alnum:?は正規表現で英数字を意味するので、/英数字/loginなURLへのアクセスにはすべてこの認証を通ることが要求される。たぶん/modx/loginみたいなファイルがあったのかなー。


というわけで次のように書き換え。



<locationMatch "/trac/[[:alnum:]]+/login">
AuthType Basic
AuthName "trac"
AuthUserFile /var/www/trac/.htpasswd
Require valid-user
</locationMatch>

で、.htpasswdの場所もあわせてあげる。



# cd /var/www
# mv .htpasswd trac/

解決。




id:rosylillyにおすすめのCMSを尋ねたら「MODxがいいよ」とのことだったので、試そうとしてみる。


アーカイブの入手と展開


まずはアーカイブのダウンロード。URLに特殊文字が含まれているのでエスケープしてwget。



# wget 'http://modxcms.com/assets/snippets/filedownload/download.php?path=YnVpbGRz&fileName=modx-0.9.6.3.tar.gz&utm_source=0963&utm_medium=web&utm_campaign=download'

で、その場で展開しようと思ったら、何かブラウザ経由でアクセスしてインストールするとのことなので、apacheから見える場所に移動。それから展開。



# mv modx-0.9.6.3.tar.gz /var/www/modx.tar.gz
# tar -xvzf modx.tar.gz
# mv modx-0.9.6.3/ modx

パーミッションの設定


前述のとおりブラウザからのアクセスでインストールするため、一部ファイルのパーミッションを変更する必要がある。



# cd manager/includes/
# mv config.inc.php.blank config.inc.php
# chmod 666 config.inc.php
# cd ../../assets/
# chmod 777 cache/ export/ images/
# cd cache/
# chmod 666 siteCache.idx.php sitePublishing.idx.php

ブラウザからインストール


http://example.net/modx/install/へアクセス!


と思ったら404 Not Found。なんでかなーと思って/etc/httpd/conf/httpd.confを見ると、DocumentRootが/var/www/htmlになってた。以前id:WaroeがUbuntu Serverをいじってたとき、デフォが/var/wwwだった覚えがあったのでwwwに置いてたのが問題だったっぽい。/var/www/htmlへ移動。



# cd /var/www
# mv modx html/modx

今渡こそ、http://example.net/modx/install/へアクセス。なかなかカッコいいインストール画面が表示される。


前置き


  • Choose Language: japanese

  • インストールの選択: 新規インストール


データベース設定


  • Tableプリフィクス: modx_

  • 接続時の文字セットの扱い: SET_CHARACTER_SET

  • 照合順序: utf8_general_ci

  • DBホストとの接続テストの結果: 接続できます

  • データベースとのマッチング: 問題ありません


インストールオプションの選択

初心者かつチキンなのですべて選択


インストール中...


完了するまで結構時間がかかるので、しばらくお茶でも飲みながら待つ。といっても3分くらいで完了。


後片付け


ブラウザからアクセスしていろいろできてあぶないので、パーミッションをもどしておく!


具体的には、



  • installディレクトリを削除

  • config.inc.phpを644に戻す



# pwd
/var/www/html/modx
#rm -rf install/
# chmod 644 manager/includes/config.inc.php

インストール完了!


http://example.net/modx/managerにアクセスして好きなようにする。Ajaxでロボットみたいにがしょがしょ動いてカッコいいぞ!


参考


このアーカイブについて

このページには、過去に書かれたブログ記事のうちMODxカテゴリに属しているものが含まれています。

前のカテゴリはMIDIです。

次のカテゴリはOpenCVです。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

ウェブページ

Powered by Movable Type 4.32-ja