更新記事一覧

エントリー単位で、MTIfで条件分岐する

現在のMTのバージョンは4.261。MTIfタグやMTSetvarなどで条件分岐もやりやすい。

MTIfCategoryタグなどは、カテゴリーごとに条件分岐するので非常に重宝する。で、もっと細かくエントリーごとに条件分岐できないか考えてみた。

全文を読む >>

IE8でスタイルシートが有効にならない

SSL通信で保護されたページ、ページのURLがhttpsから始まるページを表示する際に、IE8でCSSが有効にならない場合がある。

どういう場合でそうなるかというと、linkタグのhref属性で指定しているCSSのパスを通常のhttpから始まるURLで指定していると、SSL通信で保護されていない空間からスタイルシートを呼び出す形になるため、IE8でウェブページを表示する際に以下のメッセージが表示されたダイアログボックスが開く

セキュリティで保護された Webページ コンテンツのみを表示しますか?

ここで[いいえ]を選択すれば、SSLで保護されていない空間にあるCSSも認識するが、[はい]にするとCSSが無効になる。

SSL通信で保護されたページを公開する場合は、関連するファイルもSSL通信で保護された空間に置いた方が良い。

全文を読む >>

MTのアップグレード時に遭遇するエラー

データベースをSqliteにしているMovableTypeをアップグレードするときに遭遇するエラー。

エラーが発生しました。
close Can't connect to data source , no database driver specified and DBI_DSN env var not set

SqliteのMTの場合、アップグレードする際は、元のMTのディレクトリをリネームし、別に元のディレクトリ名でMTを設置。インストールまで完了させて、Sqliteファイルを上書きするのが確実。

上記のエラーは、アップグレード前のMTのダッシュボードを表示させた状態で、新バージョンのMTをFTPでアップロードした後に、そのダッシュボードから別ページに遷移する際に表示される。

重要なエラーのような気がするが、mt-config.cgiのSqliteのパスで指定したディレクトリが無いために表示されるエラーなので、FTPで該当のディレクトリを作成すれば、すぐに解消される。

全文を読む >>

MySQLで、 AUTO_INCREMENT のカウンターをリセットする

MySQLでデータにオートナンバーを振って管理することが多いだろう。
テスト段階で振られた番号をどうやって元に戻すのか良く分からなかった。

Googleで検索したところ、
http://d.hatena.ne.jp/kovaio/20060726/1153903521
なるサイトが。

まさにここに書いてある通りのSQLでリセットできるらしい。

ALTER TABLE [テーブル名] AUTO_INCREMENT=0;

といった感じ。非常に参考になりました。

全文を読む >>

PHPでメール差出人の文字化けを解消する

PHPでメールを送信する場合、mb_send_mail関数でメールを送信することだろう。

そのまま、メールヘッダーを指定せず、メールを送信すると、レンタルサーバーなんかだと、そこのメールアドレスが差出人になってしまう。

これを解消しようと、メールヘッダーに入れる差出人情報を、

$mailheader = 'From:まるまる事務局';

などとしたら当然のように文字化け。さて。。。

全文を読む >>

PCサイトとモバイルサイトの振り分け

携帯電話から、PCサイトにアクセスした際にモバイル用のサイトに振り分けるといった対策を行うことは多いだろう。

自分もその一人である。

最初は、.htaccessを使って頑張っていたんだけど、知識不足で上手くいかず。ページ単位での転送はできるんだけど、転送した後に携帯サイト内でページ移動するとページが表示されず・・・

いろいろ悩んでいたんだけど、PHPが使えるなら、header関数で転送したほうが安全のようだ。

全文を読む >>

Smartyで\nなどの改行コードを取り除く

フォームからの入力の際に、都道府県の一覧をfile関数で読み込んでいた。
入力フォーム自体の出力はSmartyのテンプレートで。

表示自体は問題なかったが、foreach関数で県名を出力する際になぜか改行が・・・
trim関数を使うも、うまくいかず・・・

いろいろ調べたら、Smartyのテンプレート上でもPHPの関数が使えるらしい。

全文を読む >>

XREAのphpMyAdminでテーブルの日本語が文字化け

PHP経由でMySQLにデータを登録。
スクリプト自体は正常に動くし、Select文などでデータを抽出しても
文字化けはしない。

しかし、phpMyAdminでデータを確認すると日本語が文字化けしてしまっている。
いろいろ調べたら、SQL実行の前に文字コードをセットする必要があるようだ。

全文を読む >>

Smartyのコメント

Smartyのコメントは、波括弧(中括弧)とアスタリスク(*)でコードを挟めばOK

例:
{*include file="./menu/side_menu2.tpl"*}

参考ページ
http://www.smarty.net/manual/ja/language.basic.syntax.php

全文を読む >>

親カテゴリとサブカテゴリの記事一覧を表示する

MovableTypeで、カテゴリページに、そのカテゴリーに属する記事一覧だけを表示するだけでなく、そのカテゴリーに属するサブカテゴリの記事一覧も表示したいです。

ただ、サブカテゴリページで、同階層のサブカテゴリと、その親カテゴリに属する記事一覧を表示させようとする場合、サブカテゴリからみた親カテゴリに属する記事の一覧の出力ができないため、MTSetVarBlockタグなどを使う必要がある感じです。

全文を読む >>

CSSプロパティ「behavior」でIE7でページが表示できない

このbehaviorというプロパティ。IE5以降にサポートされたCSSプロパティである。

詳細はよく分からないんだけど、IE5以降で利用できるようになったビヘイビアという機能を使うためのものらしい。ビヘイビアについては、こちらを見て下さい。

全文を読む >>

テンプレートセット作成時の注意2

テンプレートセットをアップロードしてMTのダッシュボードにアクセスしたら、

Got an error: Error reading /home/USER/www/mt/plugins/TMPL/config.yaml: Bad hash line

といったエラーが・・・。このエラーについていろいろ調べてみると、

全文を読む >>

テンプレートセットプラグイン(config.yaml)作成時の注意

MT4では、カスタムテンプレートをプラグイン化することによって、テンプレートの一括入れ替えが可能にすることができる。

config.yamlを用意して、カスタムテンプレートをmtmlという拡張子で作成し、まとめてMTのpluginsディレクトリにアップロードすることで、プラグインとしてカスタムしたテンプレートがテンプレートセットして認識される。

このconfig.yamlだが、記述の仕方を間違えるとエラーになり、ダッシュボードにアクセスできなくなるので注意が必要である。

全文を読む >>

MTが生成するHTMLファイルのパーミッションを644にする

さくらサーバー(スタンダードプラン以上)でMTを設置した場合、mt-config.cgiに以下の記述を追加しておくと生成されるHTMLファイルのパーミッションを644にできる。。

DBUmask 0022
HTMLUmask 0022
UploadUmask 0022
DirUmask 0022

さくらインターネットの場合だと、デフォルトの状態で生成されるHTMLファイルのパーミッションが「666」のため、生成するファイルの拡張子をPHPにした場合、

全文を読む >>

自動保存を無効にする

現在のMovable Typeは、編集中に自動保存する機能が付いている。

便利なようで、これがたまに記事保存やテンプレートの編集を保存する際に邪魔になることがある。自分の経験上では、自動保存中に、手動保存すると画面が固まるといった現象に何度か遭遇している。

これを無効にするには、設定ファイルであるmt-config.cgiに以下の記述を加えると良い。

AutoSaveFrequency 0

エディタで開き、一番下にでも記述しておけばOK

全文を読む >>

m630.netについて

Movable Type、XHTML、CSS、PHP、MySQLなどウェブ製作に関連する備忘録的小技集。
アーカイブ
LINKS