PHP一覧

【常識】MT の動的生成は Smarty を使ってる【今更】

MT 情報はまだ尽きない

「MT の情報は、もう出尽くしたよね」──したり顔で、かつてはあれほど熱心だった MT 最新情報の追っかけを止めてしまった──というあなたはオラオラを 100 万回熟読していただくとして。

ダイナミック面白いです (オラオラ) 経由で知った、WingMemo: ダイナミック・パブリッシングで頁分割(4) バリエーション編で、なにやら見慣れないコードを見ました。──何スか {{capture assign="count"}}<$MTBlogEntryCount$>{{/capture}} って? と思って別の記事を読んで驚愕。

なんと、MT 標準の PHP 版ダイナミック・パブリッシングにはもともと頁分割機能があった、とのこと! ──というか、さらにリンク先を辿っていくと、

そもそもMovableTypeでダイナミック・ページを実現するのに使われているSmartyには、ページ分割表示できる能力があるわけですな。

買い物ログ: カテゴリ・アーカイブをページ分割しました

と、しれっと書いてありますが──えええ? MT 標準の動的生成って Smarty を使っているのか!(イマサラ?)

続きを読む


画像拡大スクリプト「Highslide JS」「Thickbox Gallery」

Highslide JS

Highslide JS – JavaScript thumbnail viewer が格好いいです。なんとなく「Web2.0」という言葉と同じくらいにアリガチな「サムネイルをクリックすると画像拡大する」という JavaScript ですが、拡大の方法が面白い。百聞は一見にしかず、ということで“Examples with settings”からどのような動作か確認してみてください(初めて見たら結構驚く)。

今日、 写真拡大に便利なJavaScriptライブラリ (Highslide.js) – youmos で知ったのですが、画像の拡大プレビューを超クールに行える「Highslide JS」:phpspot開発日誌でも取り上げられていましたね(ということは一度見たことがあるはずだが、覚えがない)。

Movable Typeで画像をページ内でPopUp – Highslide JS/楽で、MTで実装する方法が紹介されています。MT から画像をアップロードすると、自動的にHighslide JS に適した HTML が生成されるようです。

Thickbox Gallery

さらに、Thickbox Gallery が凄い。PHPとThickbox JSを使用した簡易ギャラリースクリプトという、これまたアリガチな物かと思いきや、Thickboxだけではなく、Lightbox JS v2.0, Highslide JS, Liteboxを利用することもできます。

Highslide JS を使ったサンプル もあります。表示に使う JavaScript ファイルは、設定ファイルを一部書き換えるだけで変更可能です。──たぶん、ちょっと PHP をかじったことがある人なら、動的に切り替えることもできそう(クッキー使ったり URL で切り替えたり?)。夢がひろがりんぐ。

続きを読む


「スタイルシートチェンジャー」で はてなスタイルを切り替え可能に

はてなスタイルを切り替え

まだまだ続くよはてなネタ! ──ええ、意外としつこい性格です。

亜細亜ノ蛾 のトップページから、デザインを切り替えることができるようにしました(2006-11-27T23:46:59+09:00 現在)。ガチャガチャ遊んでみてり、ソースコードをのぞいたり、どうぞ。

ちなみに、変わるのはトップページだけです……。

スタイルシートチェンジャー

今回はスタイルシートチェンジャーでMovableTypeのスキンを変更を参考にして、スタイルシートチェンジャーを導入しました。

ちょっとハマったのが、PHP スクリプトの設置位置。MT とは別のディレクトリにアップロードしたのですが、正常に動作しない。さんざん悩んで、やっと解決しました。

クッキーの有効範囲

「スタイルシートチェンジャー」はクッキーを利用して切り替えたスタイルを記憶します。その、クッキーの特性をよく判っていないのが原因でした。

クッキーの有効範囲について

クッキーは、CSS選択に指定した setstyle.php のあるディレクトリをルートとして、下位ディレクトリすべてが有効範囲になります。

スタイルシートチェンジャー

これ、知らない人は延々とハマるなぁ……。

たとえば、このブログのトップページは http://asiamoth.com/mt/ なので、この場所(かルートディレクトリ)に置かないと、正常に動作しません。

「あなた」のブログのトップページが http://example.com/ だった場合、この場所以外にスクリプトを置いても動作しない(クッキーが有効ではない)わけです。

もの凄く初歩的な知識ですが、いまのうちに知ることができてラッキィ!


MTの「タグ」アーカイブページをPHP化する方法

2006-11-11T11:57:30+09:00 追記があります(本文末)

タグアーカイブページの不満

いまだに自分はMT3.2を利用しています。“Tagwire”プラグインで「タグ」も使えるし、快適な感じ。

しかし、タグアーカイブページは動作が遅く、サーバに負荷がかかります。PHPスクリプトも使えないし。そこで、

  1. タグアーカイブページをPHPで出力したい
  2. 出力結果をキャッシュして欲しい

というのがずーーーっっっと(一年以上も!)悩んでいたのですが、今日、2つとも解決しました!

ちなみに2番に関しては、自分が借りているサーバ(XREAのS61サーバ)では“CGI::Cache”を使った方法が上手く動作しない(キャッシュが無い状態では100%エラー)──っぽいので、いままでキャッシュ化していませんでした。つまり、アクセスがあるたびにCGIがページを出力するという、何とも恐ろしい状態。

2006-11-11T21:10:48+09:00 追記

……すいまセーン……ボク ウソついてまーした……。ということで、キャッシュされていないことが判明。本文末に追記しました。

“CGI::Cache”が使えている場合でも、出力をPHP化できると、いろいろメリットがあるので、導入をお勧めします。

今回紹介するのは「MT3.2 + Tagwire + MT-XSearch」な環境向けですが、「MT3.3標準タグ機能 + MT-Search」でも応用できそうです。試してないけど(©(o))

続きを読む


PHPでランダムに広告を表示する11の方法

Make money!

サイト管理者をやっていると「ランダムに広告を表示したい」というときがあると思います。いろいろ方法がありますが、今回はPHPを使った方法を紹介。

自分なりに「広告を表示するためのリストファイルを1つだけ用意して、そこからいくつかの広告を選んでランダム表示」というのを考えてみました。

続きを読む


対SPAM最終兵器“Junk slowdown”!!

タイトルに偽りなし

今回紹介するSPAMコメント・トラックバックの対策方法は、“Junk slowdown”というスクリプトの導入です。

結論から先に言うと、自分がいろいろ試したSPAM対策の中で、一番効果があったのがこの方法です。

まずはその前に、従来のSPAM対策の説明、そして“Junk slowdown”導入方法、導入後の状況を書きます。

続きを読む