グラビティワークスのブログで実装したもの
2008.11.21
グラビティワークスのブログはMTで作られているのですが、追加や修正した機能がだいぶ増えてきたので、まとめてみました(2008/11/21現在)。


【プラグインを使ったもの】

" target="_self">ページ分割
・細かい条件分岐  http://www.sixapart.jp/movabletype/plugins/compare.html
" target="_self">絵文字
" target="_self">カテゴリーの並べ替え
" target="_self">エントリーの中でMTタグを使う

【工夫したもの】

・カスタムフィールドでテンプレート切り替え
→ テンプレート内にあらかじめ複数の形式を用意しておいて、カスタムフィールドに入力した値からどの形式を使うかを判断させた。

・画像の挿入を簡単にする
→ テンプレートに<img src="○○○○" alt="○○○">まで入れておいて、カスタムフィールドにファイル名とALT文を入れるようにした。ファイルはFTPで一度にアップするので楽。(制作履歴で使用)

・続きを見る
→ 記事ページでは表示されてほしいが、記事リストページでは表示されたくないので<MTIfArchiveType archive_type="individual">(記事ページのときだけ中身を表示)を使って分岐させた。


【社内ブログのルール】

・キーワードの項目に入力した内容を、メタタグの「キーワード」の部分に入れる
・ブログ・カテゴリ・記事の説明の項目に入力した内容を、メタタグの「ディスクリプション」の部分に入れる
・タイトルは「記事タイトル|カテゴリー名|ブログ名」とする
・フッター部分にはコピーライトを入れ、社名部分を会社サイトにリンクさせる。
・記事のタイトル部分は、パーマリンクで個別ページにリンクする
・登録されているタグを表示する
・新着記事のリストは、カテゴリ別ではなく記事全ての中から日付順に選ぶ
・テンプレートのバックアップをとる
・サイドメニューとメインコンテンツが並ぶとき、
HTMLのソース上でメインコンテンツが上になるようにする


【MTの特徴】

・ブログ内検索の対象になるのは、タイトル・本文・続き・キーワード

・管理画面で消しても、サーバー上にデータは残る
→記事やリストページなど、直接見れるページは消える。ただしカテゴリーなどを消しても、フォルダは残る。また、もともと「.html」で書き出していたページを「.shtml」で書き出す、などの場合、元の「.html」のファイルはそのまま残る。

・概要を表示するタグ<$MTEntryExcerpt$>は、概要の項目が入力されてない場合は本文の最初の部分が表示される(文字数指定可能)

| コメント(0)
MT:エントリーでMTのタグを使う
2008.11.21
記事を書いているときに、「MTのタグが使えたら便利なのに」と思ったことが何度かありましたので、プラグインとかあるのではないかと探してみたところ、

MT::Plugin::EvalTemplate

ちゃんとありました。

使い方は簡単で、上のサイトからファイルをダウンロードして、MTの「plugins」ディレクトリにアップします( .txt 形式になっているので、.pl に直します)。

そうしたら、テンプレートの中で記事を表示させるタグ(<$MTEntryBody$>など)の中から、MTタグを使わせたい部分に

「eval="1"」

を付け加えるだけです。

<$MTEntryBody eval="1"$>

という感じになります。
これで、記事本文の中でMTのタグが使えるようになりました。


おっしーでした
| コメント(0)
MT:ページを分割するプラグイン
2008.11.21
ブログを見ていると、記事が並んでいるページの下のほうに
「次のページへ」というようなページ移動のためのリンクがあったりしますよね。

ページ分割

当ブログでもこの機能を付けようとしたのですが、これってデフォルト機能ではなかったのですね・・

こちらで、便利なプラグインが公開されてました。

静的ページ用ページ分割プラグイン:PageBute



まず、「PageBute.pl」をダウンロードしてMTの「plugins」ディレクトリにアップします。
これでインストールは完了。


次にテンプレートを開いて、記事のリストを書きだしている部分(<MTEntries>とか)を挟むように、<MTPageContents>を書き、区切りたい部分に、<$MTPageSeparator$>を書きます。

<MTPageContents>
<MTEntries>
~表示する中身~
<$MTPageSeparator$>
</MTEntries>
</MTPageContents>

こんな感じです。

さらにその下に

<MTIfPageBefore>
<span><$MTPageBefore delim="<前の5件 "$></span>
</MTIfPageBefore>

<$MTPageLists$>

<MTIfPageNext>
<span><$MTPageNext delim=" 次の5件>"$></span>
</MTIfPageNext>

と書くことで、最初の画像のようなページ移動用のリンクができます。


これで最低限の機能が付きました。
配布元のページでこれ以外のタグや属性も解説されているので、
必要にあわせていろいろカスタマイズしてください^^


おっしーでした。
| コメント(0)
<img>タグでのサイズ指定
2008.10.30
更新のたびに画像を差し替えるサイトで、かつ画像の縦幅が毎回変わるような場合。

<img>タグの height の値を指定してしまうと更新のたびに変えなくてはいけなくなってしまうので、最初から height を入れない、という方法を取ることにしました(指定しなければ勝手に画像のサイズになるので)。

ですがこの<img>タグのサイズ指定、入れなければならないものという認識があったので、実際のところどうなのか調べてみました。


するとどうやら、サイズ指定は必須ではなく任意、のようなのです。
HTMLチェッカーにかけてみても、エラーなどは出ませんでした。

では何故入れるのかというと、ちゃんとメリットがあるようです。

・ページの表示速度が上がる
・ページ読み込み中と読み込み後とで、レイアウト崩れが起きない
(画像が読みこまれた瞬間にテキストがずれるとか、そういうのが防げる)

表示速度はほとんど変わらないようですが、レイアウト崩れのほうは、重いページでは多少関わってくるかもしれません。


基本は入れるようにして、画像サイズが変わる可能性がある部分は外す、という形が一番良さそうですね。


おっしーでした。
| コメント(0)
PHPでの文字化け
2008.10.23
PHPでラジオボタンを作ったのですが、文字化けに悩まされてしまいました。

結局は、PHPの仕組みをよく理解できていなかっただけなのですが・・


PHPではフォームから情報を受け取ると、文字コードをEUC-JPに変換して処理します。
これをそのまま表示してしまうと、文字化けが起こってしまいます。
HTMLはShift_JISかUTF-8の場合が多いですし。


それでどうするかというと、データを表示する前に文字コードを変えてやります。

$str = mb_convert_encoding($str, "UTF-8", "EUC-JP");

こんな感じです。

たったこれだけ・・


これのどこに引っかかってたんだ、と自分でも少し思いましたが。
実はPHPの設定で、ソースを保存するときのコードとブラウザへ出力するときのコードが設定できて、それも合わせていろいろ試していたのが問題だったようです。


PHPでの処理はEUC-JPで行われるわけですから、設定は

「ソースをEUC-JPで保存し、ブラウザへEUC-JPで出力する」

としておいて、
ブラウザで表示させるときに任意の文字コードに変換する、というのが一番安定するようです。


おっしーでした。
| コメント(0)

月別アーカイブ