ExpressionEngine
ExpressionEngineについてのアレコレ
ExpressionEngineでページの種類を判別する
ExpressionEngineではURLのディレクトリ名に相当する部分(セグメント)を変数で取得できるようになっています。これを利用すれば、表示中のページの種類(個別ページだ何だ)を判別できるはず、ということで調べてみました。
利用する変数は、{segment_1}、{segment_2}、{segment_3} の3つ。たとえば、表示中のページのURLが「http://ブログのURL/index.php/site/post_title/」の場合、それぞれの変数の値は
{segment_1} = “site”
{segment_2} = “post_title”
{segment_3} は空
となります。
スタッフブログの場合、URLを「ExpressionEngineのURLからindex.phpを消す (2)」のように設定したので、ページごとに変数の値は次のようになります。
トップページ
すべて空
記事の個別ページ
{segment_1} = 記事のタイトル
{segment_2} と {segment_3} は空
カテゴリー別ページ
{segment_1} = “category”
{segment_2} = カテゴリー名
{segment_3} は空
月別ページ
{segment_1} = archives
{segment_2} = 年
{segment_3} = 月
すべてのアーカイブページ
{segment_1} = archives
{segment_2} と {segment_3} は空
これで、たとえばカテゴリー別ページを判別するには
{if segment_1 == "category"} ~ {/if}
と指定します。
2009年5月22日 Posted by staff_r | コメント
ExpressionEngineのURLからindex.phpを消す (2)
「ExpressionEngineのURLからindex.phpを消す(1)」の続きです。テンプレートを編集して、ExpressionEngineが出力するリンク先のURLからindex.phpとグループ名を除去します。
出力するURLからindex.phpを除去する
ExpressionEngineのテンプレートタグは、標準ではindex.phpを含めたURLを出力します。index.phpを除去して出力するには、[Admin>システムプリファレンス>全体的な構成]で、「サイトのインデックスページの名称」の「index.php」を削除します。
出力するURLからグループ名を除去する
URLからテンプレートのグループ名を削除するには、テンプレートタグを次のように修正します。テンプレートタグについてはまだ細かく調べていないので、ちょっと適当ですが…。
index/archives/commentsテンプレート
| 修正前 | 修正後 | 修正後の出力 | |
|---|---|---|---|
| スタイルシートのURL | {stylesheet= {my_template_group}/site_css} |
{path=site_css} | http://~/site_css/ |
| 記事の個別ページのURL | {title_permalink= {my_template_group}/index} |
{title_permalink} | http://~/記事のタイトル/ |
| コメントページのURL | {url_title_path= “{my_template_group}/comments”} |
{url_title_path= “comments”} |
http://~/comments/記事のタイトル/ |
| カテゴリー別ページのURL | {path={my_template_group}/index} | {path=site_index} | http://~/category/カテゴリー名 |
| 月別ページのURL | {path={my_template_group}/index} | {path=archives} | http://~/archives/2009/04/ |
| すべてのアーカイブのURL | {path={my_template_group}/archives} | {path=archives} | http://~/archives/ |
| AtomのURL | {path={my_template_group}/atom} | {path=atom} | http://~/atom/ |
| RSSのURL | {path={my_template_group}/rss_2.0} | {path=rss_2.0} | http://~/rss_2.0/ |
Atomテンプレート
| 修正前 | 修正後 | 修正後の出力 | |
|---|---|---|---|
| 記事の個別ページのURL | {url_title_path=myblog/index} | {url_title_path} | http://~/記事のタイトル/ |
| カテゴリー別ページのURL | {path=myblog/index} | {path=site_index} | http://~/category/カテゴリー名 |
RSSテンプレート
| 修正前 | 修正後 | 修正後の出力 | |
|---|---|---|---|
| 記事の個別ページのURL | {title_permalink=myblog/index} | {title_permalink} | http://~/記事のタイトル/ |
※{path=hoge}と指定すると「http://ブログURL/hoge」というURLが出力されます。
カテゴリー名をURLに使用する
カテゴリー別ページのURLには、標準ではカテゴリーのID番号が使用されます。カテゴリー名を使ったURLにするには、[Admin>ブログアドミニストレーション>グローバル・ブログ・プリファレンス ]で「カテゴリURLタイトルをリンクに使用しますか? 」を「はい」に設定します。
2009年4月28日 Posted by staff_r | コメント
ExpressionEngineのURLからindex.phpを消す (1)
ExpressionEngineで生成したページのURLには必ず「index.php」が入っていて、ブログ開設以来ずーっと気になっていました。さらに、URLにはテンプレートのグループ名も入っていて、使用するグループを変更するとページのURLが変わってしまいます。これでは簡単にブログのデザインを変更することができません。
たとえば、月別ページの標準のURLは次のようになります。
http://~/index.php/tempname/2009/04/
これを↓のようなURLにしたい。
http://~/2009/04/
どうにかできないかと検索してみると、ExpressionEngineのwikiにそのものずばりな記事がありました:「Remove index.php From URLs」。しかし、どう見ても簡単ではなさそうです。自前で.htaccessを作成することも試みましたが、うまく機能してくれないし…。
そこで、「LG .htaccess Generator v1.0.0」 という拡張を利用しました。
指示通りインストールしたら管理画面で[Admin>ユーティリティ>拡張マネージャ]を開き、LG .htaccess Generatorを「有効」にしてセッティング画面を開きます。.htaccessの生成場所のパスがブログのルートディレクトリになっていることを確認して「Submit & Regenerate」をクリックすれば、.htaccessが生成されます。なお、.htaccessはあらかじめ作成しておきます。既存の.htaccessがある場合は中身が上書きされるそうなので注意が必要です。
以上で、各ページにindex.phpとグループ名を削除したURLでアクセスできるようになります。
ただ、これで完了ではありません。ExpressionEngineが出力する各ページへのリンクのURLには、index.phpとグループ名が含まれています。リンク先のURLからindex.phpとグループ名を削除するにはテンプレートの編集が必要です。詳しくは、次の記事にまとめます。
2009年4月26日 Posted by staff_r | コメント
ブログのURLを変更しました
このブログを http://www.kuromatsunai.info/blog/ からサブドメインアドレス http://blog.kuromatsunai.info/ に移設しました。
同じサーバー内での引っ越しだったので、データベースはいじらずに、ExpressionEngineの構成ファイルを移設先に丸ごとコピーしました。再インストールなどしなくても、これだけで新しいURLでページが生成され、管理画面にもアクセスすることができます。WordPressでも同じようなことができるのでExpressionEngineでも…と思ったのですが、当たりだったようです。
なお、ブログの各ページへのリンクは古いURLで出力されてしまうので、管理画面の[Admin>ブログアドミニストレーション>ブログマネジメント>ブログプリファレンスの編集>パス設定]と[Admin>システムプリファレンス>全体的な構成]でURL関連の設定を修正しました。
2009年4月26日 Posted by staff_r | コメント
ExpressionEngineのスパム対策
最近、このブログにもスパムコメントが付き始め、スパム対策を何もしていなかったことに気づきました(苦笑)。
ExpressionEngineのスパム対策について調べてみると、WordPressのAkismetが使えるとのこと! それなら最強かもしれない、ということで早速セットアップしてみました。
今回利用したのは「Low NoSpam」というモジュール。解凍してできたファイルをそのままのフォルダ構成でアップロードしたら、管理画面の[モジュール]を開き、「Low NoSpam」をインストールします(”インストール” というリンクをクリックするだけ)。
次に、[Admin>ユーティリティ>拡張マネージャ]で「Low NoSpam」を有効にしてセッティング画面を開き、Serviceで「Akismet」を選択して、AkismetのAPI Keyを入力します。
AkismetのAPI KeyはWordPress.comにユーザー登録をして取得します。「Sign Up Now!」をクリックしてユーザー登録を済ませたら、ログインして管理画面を開きます。左側のメニューから「Profile」を選択すると、一番上に「Your WordPress.com API key is: ########」と表示されるので、「########」をコピーしてExpressionEngineの設定画面に入力します。
以上で設定完了です。スパム認定されたコメントは[モジュール>Low NoSpam]で確認することができます。設定してから10日ほどたちましたが、スパム判定を間違えることもなく、快調に仕事してくれているようです。
2009年4月23日 Posted by staff_r | コメント

