Feb
15
2009
0

3つ以上のサイドバーを作る

10:03 am

テーマによってサイドバーの数は決まっていて、たいていは1つか2つで、管理画面のウイジェットの表示でも二つの場合は、サイドバー1、サイドバー2という具合に表示されます。
今回のカスタマイズは、これをサイドバー3、サイドバー4という具合に増やしてしまうカスタマイズです。
/theme 内のfunction.php の3行目内の数値がサイドバーの数になってますので、これを増やすだけです。今回は4にしています。

<?php
if ( function_exists('register_sidebars') )
	register_sidebars(4, array(
        'before_widget' => '<!--sidebox start --><div id="%1$s" class="dbx-box %2$s">',
        'after_widget' => '</div></div><!--sidebox end -->',
        'before_title' => '<h3 class="dbx-handle">',
        'after_title' => '</h3><div class="dbx-content">',
    ));

たとえば、3番目のサイドバーはトップページでのみ使うようにカスタマイズするとか、4番目のサイドバーは、ブログパーツなどの保管用に使うとか、そんな使い方ができると思います。

Feb
10
2009
0

dbxとshadowbox のコンフリクト対策

22:36 pm

i3Themeでは、サイドバーにドッキングボックス(dbx)を使っていますが、shadowboxプラグインを有効化するとコンフリクトして働かなくなってしまうという問題があります。
このsidebar docking boxes(dbx)とshadowboxのコンフリクト対策として、とりあえず以下を考えてみました。
色々試してみると、shadowboxのwindow.onloadが実行されたとたん、dbxが落ちることがわかったので、単純にshadowboxを使う必要がない場面では、shadowboxをonloadしないというようにしただけなので、根本的にはコンフリクト対策になっていませんが・・・・。
具体的には、Homeとgalleryページでは、shadowboxをonloadし、その他のページではshadowboxをonloadしないというスクリプトをshadowbox_js.phpに書き込んだだけです。
これで、たとえば、aboutページを開くとサイドバーを開いたり閉じたり、移動したりできるようになります。
shadowbox_js.phpの途中から以下のように修正します。

	// The full Shadowbox configuration
	$shadowbox_init = '<script type="text/javascript">' . "\n";
	$shadowbox_init .= '	var shadowbox_conf = {' . "\n";
	$shadowbox_init .= $shadowbox_init_ops . "\n";
	$shadowbox_init .= '	};' . "\n";
   /**
    *remove conflict sidebar docking boxes and shadowbox
    */
   if (is_home()) {
    $shadowbox_init .= 'window.onload = function(){' . "\n";
    $shadowbox_init .= 'Shadowbox.init(shadowbox_conf);' . "\n";
    $shadowbox_init .= '	};' . "\n";
    $shadowbox_init .= '</script>'. "\n";
    echo $shadowbox_start . $shadowbox_init . $shadowbox_end;
   } else if (is_page('gallery')) {
    $shadowbox_init .= 'window.onload = function(){' . "\n";
    $shadowbox_init .= 'Shadowbox.init(shadowbox_conf);' . "\n";
    $shadowbox_init .= '	};' . "\n";
    $shadowbox_init .= '</script>'. "\n";
    echo $shadowbox_start . $shadowbox_init . $shadowbox_end;
   } else {
    $shadowbox_init .= '</script>'. "\n";
    echo $shadowbox_start . $shadowbox_init . $shadowbox_end;
   }
}
Written by hbirds in: WPカスタマイズ | Tags: , ,
Feb
07
2009
0

dbx doesn’t work!

11:46 am

i3 theme は、Sidebar docking boxes (dbx) by Brothercake – http://www.brothercake.com/
を使って、サイトにアクセスした人がサイドバーの各ウィジェットを閉じたり、移動したりできるようなシステムにしていますが、自分のサイトではなぜかできないようになっていました。
ひょっとしたら、他のJSと競合してるのかなと思い、プラグインを全部外してみたらちゃんと表示されます。
やはり、犯人はプラグインか、というわけで色々トライみたら原因は、shadowbox plugin との競合でした。
このプラグインを外すと正常に動くようになります。しかし、これを外すとサイトの写真の拡大がしょぼくなってしまいます。
何か対策を考えないと・・・・。

まずは、shadowbox.js と dbx.js の前後関係を変更して、dbx.js を shadowbox.js の後ろに持っていったが、結果は×。
次に、同様な効果がある別なプラグイン lightbox2 プラグインをインストールしてみたが、結果は×。
どうもコアな部分のjsで競合しているのかな。

jsの中身をいじくれる力はないので、お手上げ状態。二者択一しかないですね。

Written by hbirds in: WPカスタマイズ | Tags: ,
Feb
05
2009
0

IEで設定テーマの表示が崩れる問題

15:40 pm

現在、IE環境下でカスタマイズしたテーマが著しく乱れて表示されています。
たぶん、IE7以下での問題かと思われます。

i3Themeでは、IE7以前のバージョンでは、ie-gif.cssというスタイルシートを使う設定になっており、このcssをカスタマイズしていないため、先にカスタマイズしたstyle.cssと不整合が生じていると考えられます。
また、YOU MUST NOT CHANGE OR OVERRIDE THESE と書かれている、dbx.cssも注意を無視して修正してしまっているので、そこが引っかかって表示がおかしくなっているのかも知れません。
いずれにしても、FireFoxではきちんと表示されているので、IE固有の問題と思われます。
自宅に帰ってチェックして修正にトライします。
うまく行けば、明日には直っているはずですが、どうなるか。
IE7以下の環境にも対応するのは、面倒ですが使っている人が多いからしょうがないですね。

Written by hbirds in: WPカスタマイズ | Tags: ,

www.hbirds.net