[NetCommons2]ポップアップ画像を画面中央に表示する

multidatabaseやphotoalbumモジュールのポップアップ画像は、通常、対象画像の中心から右下に表示されますが、画像が見切れてしまったり多少不便なので、を画面中央に表示するようにしてみました。

手順1
webapp\modules\common\files\js\common.js:1846行目を下記のように修正します。

変更前

var center_position = commonCls.getCenterPosition(new_img_el, img_el);


 
変更後(以前のソースではIEでエラーとなるため修正しました。 2012/04/19)

                // 横スクロール幅
                var horizontal_scroll = document.body.scrollLeft || document.documentElement.scrollLeft;
                // 縦スクロール幅
                var vartical_scroll = document.body.scrollTop || document.documentElement.scrollTop;

                var center_position = new Array(2);
                var imgWidth;
                var imgHeight;

                if( typeof img_el.naturalWidth !== 'undefined'){    // for Firefox, Safari, Chrome
                        imgWidth = img_el.naturalWidth;
                        imgHeight = img_el.naturalHeight;
                } else if ( typeof img_el.runtimeStyle !== 'undefined' ) {    // for IE
                        var run = img_el.runtimeStyle;
                        var mem = { w: run.width, h: run.height};
                        run.width  = "auto";
                        run.height = "auto";
                        imgWidth = img_el.width;
                        imgHeight = img_el.height;
                        run.width  = mem.w;
                        run.height = mem.h;
                } else {
                        imgWidth = img_el.width;
                        imgHeight = img_el.height;
                }
                center_position[0] = horizontal_scroll + (document.documentElement.clientWidth - imgWidth) / 2;
                center_position[1] = vartical_scroll + (document.documentElement.clientHeight - imgHeight) / 2;

 

手順2
管理画面のモジュール管理で一括アップロードを行います。

 

以上でポップアップ画像が画面中央に表示されるようになります。

動作確認は下記ブラウザで行いました。
Chrome 16
FireFox 8
Internet Explorer 9

Netcommonsのバージョンは2.3.3.0です。

 

修正でスペルミスなどでエラーになった場合に一切のポップアップ画面が開かなくなるので試してみる際はご注意ください。
もし、ポップアップ画面が開かなくなった場合は、DBを直接編集しないと復旧できなさそうです。編集する場所は
『<table prefix>_javascript_filesテーブルのdir_nameカラムの値が「common」 であるレコード』のdataカラムの値です。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*