さてお約束通りCODINGネタ。
前回のキャッシュする作戦は一応成功したらしく、運悪く再生成する場合には、顕著に表示が遅くなる。
まぁ自己満足ですけどね。
でもアルゴリズム的に無駄な所を一カ所発見してショーック。
make_update_list()は、引数を4つ取っているのですが、当然どんな引数が渡されるかは実行時にならないと分かりません。
つまり、前回の引数と違っていたら、動作を変えなくてはいけないので、キャッシュを破棄して再生成しなくてはいけない。
そこで、再生成する度にそのとき使った引数をデータベース上に保存することにしたのですがー。
別に個々の引数が必要な訳じゃないんだから、まとめて判定してまとめて保存しておきゃーいいのに気付かず、
いちいち引数四つを個別に更新しているか判定、さらに個別に保存してまつた…。
後で直します…。
さて次の私の(自己満足の)ターゲットは、本家のあの長〜いヘッダ。アレどうにかしたい。CSSを外部ファイル化したい。とてもしたい。
その為のHeadClearnerってプラグインもあるんだけど、諸般の事情により使えないので、自作(!)しちゃえ。
自作と言う程のことは出来ないけど、Atahualpaのheader.phpを操作(ってかhack)すれば、ページに出力されるCSSが変更できるのは実証済みなので、
その出力を(場合によって)ファイルに保存しておけばいいのです。で、<style rel=”???.css”>とか書き込めば、うまくいく筈ですよね?
同じCSSを使っているページなら、外部CSSファイルを共有して、ブラウザ側でキャッシュしてくれるので、そう言う意味でもサーバ側もクライアント側も嬉しい筈。
で、方針。echoをリダイレクトします。出来るのかチェックした訳じゃないんだけど、これだけCそっくりなんだったら、標準出力への出力をリダイレクトする機能も多分あるでしょ。
CSSをモーレツに出力し始める手前で、条件分岐して、ファイルの更新日時と、タイムスタンプを比較して、もし設定が変わっているようなら、ファイル出力をやり直します。
そうでないなら素通しで。あ、あとカテゴリ毎に違うヘッダを適用するって、Atahualpaじゃ出来ないんでしょうか。Atahualpaの設定項目のほとんどは、CSSの形でheader.phpで呼び出されてしまうので、
header.phpの内容をどうにかしない限りは、どうにもならない。
今はheader.php内にカテゴリ判別を付加して強引に動かしているのですが…。
そんな感じ。いつ取りかかれるやら…。Atahualpa設定項目多過ぎですよ(泣)。