Home | エビバーガー半額 »

ExpressionEngineを使って「えびなび」を再開しました

2005/10/16 日曜日 5:00:00 | おしらせ — By ebifly

前回の「えびなび」はXOOPSを使っていたわけですが、不満だった点がいくつか。
・RSSの出力がおかしい
・トラックバックすると文字化けしまくりで話にならない
・重すぎる
・更新する気になれないほど煩雑な操作体系

そんなわけで、世界中のあらゆるスクリプトを試しまくった結果、これに落ち着きました。

ExpressionEngine
http://www.pmachine.com/ee/

略して「EE」らしい。

エビフライ的に気に入ったのは、
・RSSがいろいろと出力できる、カスタマイズできる
・コメント荒らしやトラックバックスパムに対抗する手段が秀逸
・カスタマイズしやすいテンプレート(代わりに一発でテンプレートを入れ替える仕組みはない)
・高速さと負荷の低さを追求した構造(キャッシュ機能が非常に優秀)
・最初から多言語対応が前提なので内部的に文字化けしない(1カ所だけ手作業で修成)
・更新しやすい、管理しやすい、覚えることが少ない

代わりに、無料のスクリプトではないわけですが……ついでに日本語の言語ファイルも古すぎて役に立ちません、アヒャ!英語がある程度出来ないとお話にならない。

そんなわけで、エビフライが行った作業から、ポイントとなる点をいくつか。

0.トップページ以外が「404」あるいは「真っ白」になる場合
これはなる場合とならない場合が。なる場合には、path_infoを吐き出さないサーバなので、「ADMIN」→「Output and Debugging Preferences」より「Force URL query strings」を「Yes」にします。それからindex.phpをローカルに一端ダウンロード、$qtypeを「2」に書き換えて、上書きします。これで真っ白け現象が回避されます。

1.テンプレートは事前に決めておくとラク
http://www.pmachine.com/ee/templates/に置いてあるテンプレートから、気に入ったものを選びましょう。デフォルトのテンプレートはあらゆる機能がオンになっているのでカスタマイズするのが大変すぎます。お望みのテンプレートを選んだら「Download」をクリックして、解凍。生成されたフォルダをそのままthemes→site_themesの直下に置きます。エビフライの選んだ「notebook」の場合はそのまま「notebook」フォルダをFTPで転送するだけ。あとはEEのインストール時にこのテーマを選択するだけ。お手軽です。あとからテンプレートを適用する方法もありますが、はっきりいってかなり手間暇がかかるので、おすすめできない(とか言いながらエビフライは他のテンプレートもインストールしてみました)

2.別のテンプレートをデフォルトにする際には注意
「TEMPLATES」→「(新しく作ったテンプレートグループ名)」→「Edit Group」で「Make the index template in this group your site’s home page?」にチェックを入れると、そのテンプレートがデフォルトとして使われます。これが分からなかったので半泣きに。

3.スマイルアイコンは使わないのであれば削除
外人はなぜかコレを本文中で多用しますがエビフライはこんなの使わないので必要ないです、システム自体から削りました。「MODULES」→「Emoticon」の右端にある「Remove」で削り、あとはテンプレートから「smiley」とか書いてあるタグを片っ端から消せば大丈夫。同様の手順で、不要なものはいくらでも削ることが可能です。

4.時刻形式で深夜0時表記にする
あまり知られていませんが、アメリカ式表記とヨーロッパ式表記というのがあります。例えばアメリカ式だと、10月16日の深夜0時1分は10/16 AM:12:01になります。エビフライ的には00: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に準拠してます。えびなびの場合は

<h3 class=”date”>{entry_date format=’%Y年%m月%d日 %H時%i分%s秒’}</h3>

としています。

5.自動でリンクを張る機能をオフにする
エビフライの経験則的に、「http」とかの文字列を見付けたら自動でリンクタグを貼る機能は完璧とは言い難いので、いっそのことオフにしてしまうのがいい感じ。直リンしたくないけどアドレスは提示したい場合にも便利。
「Admin」→「Weblog Management」→「Edit Weblog」→「Weblog Posting Preferences」より、「Automatically turn URLs and email addresses into links?」を「No」にするだけ。

6.コメントやトラックバックが来たらメールでお知らせ
あらゆるものをメールで管理する手も足も出ないエビフライにはコレが超便利でした。
「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で上書きアップロードしましょう。これで文字化けせずに届きます。

7.コメント荒らしを防ぐために画像による文字コードを毎回入力させる
「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秒間は連続投稿不可能に。
エビフライ的に最高だと思ったのが指定した期間だけコメントを受け付ける機能。同じ箇所にある「Comment Expiration」を使って、日数を指定するだけ。これを使えば、あまりにも古い記事にコメントスパムを投げられるのが防御できます。
つーか、企業とか荒らされると困るブログは全部こういう仕組みを採用すればいいのにと思うのだが…。

8.トラックバックスパムを回避するために生成されるリンクアドレスをランダムに
同じトラックバックスパムを一つの記事にいくつも追加されないようにする機能です。アクセスする度にランダムに生成される文字列が通常のトラックバック用のリンクアドレスに付加されます。生成されたランダムな文字列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時間でいくつのトラックバックを受け付けるかが指定できます。

9.アップロードするディレクトリを複数に分ける
経験上、できるだけ画像をアップするディレクトリはこまめに細分化しておくのが吉。まず、「images/uploads/」の直下にジャンルごとのディレクトリを作成してパーミッションを「777」に。それから「Admin」→「File Upload Preferences」→「Create New Upload Destination」で場所を指定するだけです。デフォルトで一つ出来ているはずなので、それの設定値を参考にすれば簡単です。あと、画像はアップロードできるがサムネイルの作成に失敗する場合はサーバの「php.ini」にあるmax_execution_timeとmemory_limitを調整すればOK。共用サーバの場合はメールすればできるかもしれず。

10.サムネイル画像の末尾に付く文字を変更する
デフォルトでは「photo.jpg」なら「photo_thumb.jpg」になりますが、これを例えば「photo_mini.jpg」などにできます。
「Admin」→「Image Resizing Preferences」→「Image Resizing Preferences」から、追加したい文字に変更すれば大丈夫。

11.テンプレートで変更できない英字部分を日本語化する
例えばカレンダーの曜日や月の表記です。これはもう言語ファイルを書き換えて上書きするのが一番早いです。バックアップは忘れずに。
「Admin」→「Translation Utility」→「lang.core.php」をクリック。真ん中あたりに曜日やらなんやらがあるので書き換え、「Save changes」をクリック。次にFTPクライアントで「/system/translations/lang.core.php」をダウンロード、これを「/system/language/english/lang.core.php」に上書きすればOK。本当は日本語ファイルを全部作るべきなのかもしれませんが、そんな悠長なことはしない方向で。

12.2ページ目の記事タイトルバーに記事名を表示させる
まずテンプレートを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。
extend.zip

これで2つめ以降の記事は別ページにして、なおかつタイトルバーに記事名を表示させることができます。かなりややこしい。

あと、EE独自タグを使えば、メアドをエンコードしてくれるのでスパム業者のメアド回収ボットに捕まりにくいという機能もありますが、万全を期すならメールフォームを置く方がよいかと。さらに万全を期したいのであれば、Flashによるメールフォームかな…。

Topics: おしらせ |

トラックバック URL :

2 Responses to “ExpressionEngineを使って「えびなび」を再開しました”

  1. マット Says:
    3月 19th, 2008 at 18:20:38

    Expression Engine を日本語化にしました。↓
    Expression Engine 日本語

    まだ間違えがあると思うので是非修正も送ってください。

  2. マット Says:
    3月 19th, 2008 at 18:21:48

    あれ、リンクがぼけてしまった。

    こちらです

コメント