ExpressionEngine
性懲りもなくまた別のCMSにチャレンジ。ExpressionEngineといって日本ではほとんどユーザーのいないCMSである。もちろん日本語サポートなんてない。フルシステムを使用する場合は有償となるため、今回は無償のcoreのみを設置。(普通に運用する分にはこれで十分かも)
php+MySQLということで設置自体は簡単。ファイルとフォルダのパーミッションを指定通りのパーミッションに変更してインストール画面から設定していくだけ。!当然、日本語パッチなんてないので全て英語。大体のところはわかるのだが、それでもよくわからん個所が何箇所かあってそこはカンだけで設定。これまで、MovableType、WordPress、TextPattern、Nucleus、Xoops、sb、SereneBachと試してみたけど、動きは軽い。動きの軽さとシステムの安定度からいうとWordPressがよいかも。MovableTypeは解説サイトも多いので使い勝手がよいのだが、更新時に非常に時間がかかってしまう。sb、SereneBachも使いやすいのだが、これも更新時に時間がかかってしまう。ExpressionEngineは軽いしわかりやすい管理画面になってはいるのだが、やはり言葉の壁が・・・ぶちやぶれるのだろうか。。。
設置時の覚書
EBINAVIさんとこのログ引用です。
ExpressionEngineの特徴:
・RSSがいろいろと出力できる、カスタマイズできる
・コメント荒らしやトラックバックスパムに対抗する手段が秀逸
・カスタマイズしやすいテンプレート(代わりに一発でテンプレートを入れ替える仕組みはない)
・高速さと負荷の低さを追求した構造(キャッシュ機能が非常に優秀)
・最初から多言語対応が前提なので内部的に文字化けしない
・更新しやすい、管理しやすい、覚えることが少ない
トップページ以外が「404」あるいは「真っ白」になる場合
これはなる場合とならない場合が。なる場合には、path_infoを吐き出さないサーバなので、「ADMIN」→「Output and Debugging Preferences」より「Force URL query strings」を「Yes」にします。それからindex.phpをローカルに一端ダウンロード、$qtypeを「2」に書き換えて、上書きします。これで真っ白け現象が回避されます。
テンプレートは事前に決めておくとラク
http://www.pmachine.com/ee/templates/に置いてあるテンプレートから、気に入ったものを選びましょう。デフォルトのテンプレートはあらゆる機能がオンになっているのでカスタマイズするのが大変すぎます。お望みのテンプレートを選んだら「Download」をクリックして、解凍。生成されたフォルダをそのままthemes→site_themesの直下に置きます。エビフライの選んだ「notebook」の場合はそのまま「notebook」フォルダをFTPで転送するだけ。あとはEEのインストール時にこのテーマを選択するだけ。お手軽です。あとからテンプレートを適用する方法もありますが、はっきりいってかなり手間暇がかかるので、おすすめできない。
別のテンプレートをデフォルトにする際には注意
「TEMPLATES」→「(新しく作ったテンプレートグループ名)」→「Edit Group」で「Make the index template in this group your site's home page?」にチェックを入れると、そのテンプレートがデフォルトとして使われます。
スマイルアイコンは使わないのであれば削除
「MODULES」→「Emoticon」の右端にある「Remove」で削り、あとはテンプレートから「smiley」とか書いてあるタグを片っ端から消せば大丈夫。同様の手順で、不要なものはいくらでも削ることが可能です。
時刻形式で深夜0時表記にする
あまり知られていませんが、アメリカ式表記とヨーロッパ式表記というのがあります。例えばアメリカ式だと、10月16日の深夜0時1分は10/16 AM:12:01になります。
「MY ACCOUNT」→「Localization Settings」→「Time Formatting」を「Europian」にするだけ。ついでに「ADMIN」→「System Preferences」より「Localization Settings」を選んで、そっちも「Europian」にしましょう。
自分以外が使う予定がない場合には、「MY ACCOUNT」→「Member Administration」より「Use this member's localization settings as the master site default?」にチェックを入れておけば、自分のアカウントのローカル設定が優先されるようになって便利かも。
ちなみにこの時刻表記は全てPHPに準拠してます。
自動でリンクを張る機能をオフにする
「http」とかの文字列を見付けたら自動でリンクタグを貼る機能は完璧とは言い難いので、いっそのことオフにしてしまうのがいい感じ。直リンしたくないけどアドレスは提示したい場合にも便利。
「Admin」→「Weblog Management」→「Edit Weblog」→「Weblog Posting Preferences」より、「Automatically turn URLs and email addresses into links?」を「No」にするだけ。
コメントやトラックバックが来たらメールでお知らせ
「Admin」→「Weblog Management」→「Edit Weblog」→「Weblog Posting Preferences」より、「Notification Preferences」の「Enable recipient list below for comment and trackbacks notification?」を「Yes」にして、直下の空欄にメールアドレスを記入、その下の選択肢も念のために「Yes」にすればOK。ただ、これだけだと来たメールが文字化けするので、
system/core/core.email.php
の42行目ぐらいにある「charset」の値を「utf-8」にして、FTPで上書きアップロードしましょう。これで文字化けせずに届きます。
コメント荒らしを防ぐために画像による文字コードを毎回入力させる
「Captcha」と海外では呼ばれている機能です。ネット黎明期に出てきたかの有名な「ひみコード」とか、ああいうものです。生成されるのが文字列ではないので自動で取得されないのがウリですが、中にはコレを突破するスクリプトも存在するわけなので、完璧とは言い難いですが、手動で延々と荒らされるのだけは確実に防御できます。
「Admin」→「Weblog Management」→「Edit Weblog」→「Weblog Posting Preferences」より、「Comment Posting Preferences」の中の「Enable Captcha for Comment Posting?」を「Yes」にするだけ。
さらに万全を期したい場合には「Moderate Comments?」も「Yes」にすれば、管理者に承認されるまではコメントは表示されません。完全なる検閲環境がお望みの場合にはオススメ。
連続投稿を防ぐには同じ箇所にある「Comment Re-submission Time Interval」を「0」以外にすれば、指定した秒数だけ再投稿を防ぎます。「180」なら180秒間は連続投稿不可能に。
トラックバックスパムを回避するために生成されるリンクアドレスをランダムに
同じトラックバックスパムを一つの記事にいくつも追加されないようにする機能です。アクセスする度にランダムに生成される文字列が通常のトラックバック用のリンクアドレスに付加されます。生成されたランダムな文字列1つについて、1つしかトラックバックは受け付けない仕組みです。
「Admin」→「Weblog Management」→「Edit Weblog」→「Weblog Posting Preferences」より、「Trackback Preferences」の中にある「Randomize Trackback URL」を「Yes」にするだけ。ついでに、「Maximum number of allowed trackback pings per hour」も使えば、1時間でいくつのトラックバックを受け付けるかが指定できます。
アップロードするディレクトリを複数に分ける
経験上、できるだけ画像をアップするディレクトリはこまめに細分化しておくのが吉。まず、「images/uploads/」の直下にジャンルごとのディレクトリを作成してパーミッションを「777」に。それから「Admin」→「File Upload Preferences」→「Create New Upload Destination」で場所を指定するだけです。デフォルトで一つ出来ているはずなので、それの設定値を参考にすれば簡単です。あと、画像はアップロードできるがサムネイルの作成に失敗する場合はサーバの「php.ini」にあるmax_execution_timeとmemory_limitを調整すればOK。
サムネイル画像の末尾に付く文字を変更する
デフォルトでは「photo.jpg」なら「photo_thumb.jpg」になりますが、これを例えば「photo_mini.jpg」などにできます。
「Admin」→「Image Resizing Preferences」→「Image Resizing Preferences」から、追加したい文字に変更すれば大丈夫。
テンプレートで変更できない英字部分を日本語化する
例えばカレンダーの曜日や月の表記です。これはもう言語ファイルを書き換えて上書きするのが一番早いです。バックアップは忘れずに。
「Admin」→「Translation Utility」→「lang.core.php」をクリック。真ん中あたりに曜日やらなんやらがあるので書き換え、「Save changes」をクリック。次にFTPクライアントで「/system/translations/lang.core.php」をダウンロード、これを「/system/language/english/lang.core.php」に上書きすればOK。本当は日本語ファイルを全部作るべきなのかもしれませんが、そんな悠長なことはしない方向で。
ページ目の記事タイトルバーに記事名を表示させる
まずテンプレートをhttp://taro.cc/med/index.php/Blogging/C44/に書いてあるように、文字コードを指定しているmetaタグをtitileタグより前に置きます。こうしないと、ページが真っ白になります。
次に、titleタグを以下のようにします。
<title>{exp:weblog:info weblog="{master_weblog_name}"}{blog_title}
- {exp:weblog:entries}{title}{/exp:weblog:entries}{/exp:weblog:info}</title>
おすすめはコメントのテンプレートに適用すること。で、「つづき」とかになる部分をコメントへリンクさせること。パーマネントリンクでもいいのかもしれませんが、その場合にはindexのテンプレートが対象になるので、トップページが大変なことになります……。
あと、記事投稿(PUBLISH)時にBodyを1ページ目、Extendedを2ページ目にするには、まずテンプレートの先頭、例えばindexのテンプレートの先頭に
{assign_variable:template_group_name="weblog"}
の一行を追加します。「weblog」の部分はテンプレートグループ名です。デフォルトは「weblog」ですが、新しいテンプレートグループを作った場合にはその新しい名前です。次に、
{extended}
を以下のテキストファイルみたいに書き換えればOK。
{if extended != ""}
<p>
<a href="{title_permalink={template_group_name}/comments}">続きを読む...</a>
</p>
{/if}
これで2つめ以降の記事は別ページにして、なおかつタイトルバーに記事名を表示させることができます。
Category : ExpressionEngine, web constraction
The entry "ExpressionEngine" is tagged: CMS, ExpressionEngine, php
