差分アップデート

category-icon

 こんばんは。v1.7.5になってだいぶ安定した気はしますが・・・と言いつつアップデートです。

 ひとつは、自動モブログを有効にしてると、アクセス解析の画面などでエラーが出る場合があると思うので、それに対処するためのutils.phpと(後、ソーシャルブックマークのAPIが変わったのがあるようでそれは今回見送り)、後は、JavaScript関連です。oParts.jsLink に関してですが、サーバーのセキュリティーの設定によっては、IEでの外部HTCファイルの読み込みが出来なくなる可能性もあるので、それに対処しました(うちのところがそうだったんですが)。具体的には、外部HTCファイルの読み込みを止めました。代わりに、みんなが使っているdoScrollメソッドを利用することにしました。もともとは、Diego Perini氏Link が見つけた手法です。右に倣えは好きではないけど、この場合、デメリットが見あたらない。

if(client.MSIE){ // IE向けDOMContentLoaded
 (function(){
   try {
     document.documentElement.doScroll("left");
   } catch(e){
     setTimeout(arguments.callee, 1); return;
   }
    F(); // 発火!
 })();
}

 後は、IE8やらSafari3で使えるdocument.querySelectorAllを利用できるなら、そうするようにしました。Firefox3.1でも使えるようになるでしょうし。Nativeな実装なので、ずっと速いです。oParts.query()関数の中で指定しています。

 次。エディタ用のスクリプトeditor.jsです。テキストエリアの高さ(縦幅)を文章の長さにフィットさせる関数をブラッシュアップして、結構正確に高さを合わせるようにしました。

function resizeTextArea(e){
 var MSIE = /*@cc_on!@*/false;
 var cssValue = function(p){ // 実際の諸々のサイズやらを取得する関数
  if(window.opera) e.style.lineHeight = "130%"; // Operaでは、1.3みたいな指定を読んでくれない
  return MSIE ? e.currentStyle[p.replace(/-¥D/, function(m){ return m.charAt(1).toUpperCase()})]
              : getComputedStyle(e, '').getPropertyValue(p);
 }
 var ruler = d.createElement("SPAN"); // テキストエリアのシャドウを作成
 ruler.textData = function(data){ if(MSIE) ruler.innerText = data; else ruler.textContent = data; };
 /* 以下でテキストエリアのサイズに関する情報を取得 */
 ruler.style.cssText += "position: absolute; left: 0; visibility: hidden; white-space: pre;"
                     +  "padding: " + cssValue('padding') + ";"
                     +  "font-size:"+ cssValue('font-size') + ";"
                     +  "line-height:" + cssValue('line-height') + ";"
                     +  "font-family:" + cssValue('font-family') + ";";
 document.body.appendChild(ruler);
 var rows = 1, lines = e.value.split(/¥n/), lineHeight = 17, curWidth = e.clientWidth;
 for (var i = 0, len = lines.length; i < len; i++){
  ruler.textData(lines[i]);
  if(ruler.offsetWidth > curWidth) rows += parseInt(ruler.offsetWidth / curWidth);
 }
 ruler.textData("A¥nZ"); // テキストエリア1行分の高さを知りたい
 lineHeight = ruler.offsetHeight/2; /* これでゲット*/
 document.body.removeChild(ruler);
 e.style.height = lineHeight * (rows + len + 1) + "px"; // rows+lenが見た目のほぼ正確な行数。遊びのために1行足す
}

挙動に関して、どういうのが使い勝手が良いかは、各人の好みによりますが、文字入力に応じてテキストエリアのサイズを自動的に変えたい場合は、editor.jsの778行目にあるコメントアウトを外して

ed.on('keyup', function(){
 resizeTextArea(ed);
});

として下さい。一応、このデモサイトLink を挙げておきます。

例によって、最新版との差分を添付しておきます。単なる上書きで良いです。最新版のjs/oParts.jsにしたら、もはやjs/ie.htcは不要ですので削除して下さい。

添付ファイル: DIFF080801.zipattachedIcon 

 

— posted by martin at 01:58 am   commentComment [10]  pingTrackBack [0]

この記事に対するコメント・トラックバック [10件]

scrollUp1. BENIT — 2008/08/02@21:41:06

更新お疲れ様です。が、添付ファイルがnot foundのようです。。

Owner Comment martin Website  2008/08/02@23:02:49

ぬ、ご指摘ありがとうございます。投稿したらソーシャルブックマーク絡みでエラーが出て、ごにょごにょしてたからでしょうね。直しました。deliciousとかAPIが変わったみたいなので、その辺り、今夜いじる予定です。

3. せん — 2008/08/03@11:52:03

開発お疲れ様です。他のブログとはひと味違うppblogに興味と期待一杯です:)。現在、いろいろ試しているところです。
さて、1.7.5(8/1版)を、Xseverに新規インストールしたのですが、記事投稿(及び編集)画面でコメントやトラックバック許可のチェックボックスをはずしても、投稿するとどちらも許可された状態になってしまいます。
何かこちらの設置方法でチェックすべき点があれば(パーミッションなど?)ご教示頂ければ幸いです。

Owner Comment martin Website  2008/08/03@13:47:57

貴重なご指摘ありがとうございます。オンタイム投稿機能を付けたことによる不具合ですね。。これは、utils_admin.phpの12行目の後ろの方にある、$comment=1, $ping=1を$comment=0, $ping=0に変えればOKかと思います。

5. ぷらむ — 2008/08/05@18:54:32

静的モードではOKですが、動的モードですと、記事のところにあるカテゴリー名をクリックすると、「エントリーはないようです」と表示され、該当の記事が表示されません。ファイルは最新ヴァージョンで、その前のヴァージョンでは、そこは表示されていたと思います。ご確認をお願いします。

scrollUpOwner Comment martin Website  2008/08/05@19:01:54

 ご指摘ありがとうございます。utils.phpの1312行目あたりの

if(empty($apres)) $apres = '';

を、

if(empty($apres)) $apres = MODE_STATIC ? '/' : '';

に変更したらOKだと思います。

7. ぷらむ — 2008/08/05@20:03:34

ありがとございます。それで直りました。
一つ気になったのは、コメント欄の下にメール・アドレスを入れたつもりですが、そメールが届きませんでした。
確認したいので、申し訳ありませんが、これにレスをお願いします。

Owner Comment martin Website  2008/08/05@20:12:59

 ご報告ありがとうございます。先ほどのコメント、お知らせメールは有効ではなかったです。これは有効です。おそらくこれは届くのではと。

9. ぷらむ — 2008/08/05@20:29:44

今度は届きました。これは、まったく気にならないですが、「メインカテゴリーとサブカテゴリーの記事を個別の記事としてカウントするか」があります。これを「する」とした場合ですが、画像ギャラリーでは「しない」タイプでサムネイルが表示されます。ちょっと言葉の統一性が取れてない気がしますが、別に問題はありません。

Owner Comment martin Website  2008/08/06@00:49:22

 これは、そうですね。統一している方がベターなので、修正しました。gallery.inc.phpの28行目辺りにある、

$target = preg_replace('{^(.+?)¥|.+}','$1', trans_cat($aim, FALSE));

の下に1行加えて、以下のようにすればOKです。

$target = preg_replace('{^(.+?)¥|.+}','$1', trans_cat($aim, FALSE));
$target = SEE_CAT_HIERARCHY ? '|'.$target.'|' : $target;

ご指摘ありがとうございました:)

この記事に対する TrackBack URL:

設定によりTB元のページに、こちらの記事への言及(この記事へのリンク)がなければ、TB受付不可となりますのであらかじめご了承下さい。

コメントをどうぞ。 名前(ペンネーム)と画像認証のひらがな4文字は必須で、ウェブサイトURLはオプションです。

ウェブサイト (U):

タグは使えません。http://・・・ は自動的にリンク表示となります

:) :D 8-) ;-) :P :E :o :( (TT) ):T (--) (++!) ?;w) (-o-) (**!) ;v) f(--; :B l_P~

     
T: Y: ALL: Online:
Created in 0.0041 sec.
prev
2024.4
next
  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30