MT4i相互乗り入れ実験2

前回の相互乗り入れ実験では、no(通し番号)の取り回しに関して問題がありましたが、他Blogへの飛び先はMain IndexもしくはPermalinkと考えれば、比較的簡単に対処できるのではないかと思います。今回は1.81β4も仮公開されたことですし、一応そちらをベースにしてみました。

ちなみに前回もそうですが、まだ仮公開であるβをベースにしているということもありますので、あくまでも実験です。

動作サンプルでは、1.81β3で新しく追加されている「自Blog内リンクの変換機能」はOFFにしてあります。テンプレートに手を入れる必要があるため、他のBlogへは従来どおりchtmltrans経由ですが、サイト内のリンクはMT4iへのリンクへ変換されていることが確認できると思います。

以下にいくつかPermalinkを、テスト用に貼っておきます。


改変内容の詳細ですが、とりあえず前回から変更した部分だけ。

関数 sub individual の先頭の方で

my $rowid;
if ($no) {
  $rowid = $no;
  $no--;
} else {
  $no = 0;
}

となっている個所を、

my $rowid;
if ($no) {
  $rowid = $no;
  $no--;
} else {
  $no = 0;
  my $ttlcnt = &get_ttlcnt;
  FOUND: while ($ttlcnt > 0) {
    my @entries = &get_entries($no, $disp_num);
    if (@entries <= 0) {
      last;
    }
    for my $entry (@entries) {
      $no++;
      if ($entry->id == $eid) {
        last FOUND;
      }
    }
    $ttlcnt -= $disp_num;
  }
  $rowid = $no;
  $no--;
}

としてます。要するに、全エントリーを調べてnoを逆算してます。重いかもしれませんが、実験なので(以下略)

One comment

  • Pingback: blog:N@TURE BRAIN

  • コメントを残す

    メールアドレスが公開されることはありません。