ExpressionEngine

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

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

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を変更しました

ExpressionEngine

このブログを 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

image
Low NoSpamに弾かれたスパムたち

最近、このブログにもスパムコメントが付き始め、スパム対策を何もしていなかったことに気づきました(苦笑)。

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 | コメント