0

ナビゲーションバーとサイドバーの間のホームページにのみスプラッシュボックスを表示しようとしています。

これが私がやろうとしていることのJSFiddleです..

http://jsfiddle.net/6twvzgfu/

ご覧のとおり、スプラッシュボックスはサイドバーとコンテンツの上にあります...

さて、ここで問題です。

Q2A でこれを再現しようとすると、サイドバーは常にスプラッシュボックスの上にあります。

これが私の現在のコードです..

    function main()
    {
        if ($this->request=='') {
        $this->output('<div class="splashbox">'); 
         $this->output('</div>');     

        } else
            qa_html_theme_base::main();
    }


    function sidepanel() 
    {   
        $this->output('<div class="qa-sidepanel">'); 
        $this->search();
        $this->nav('cat', 1);
        $this->feed(); 
        $this->output('</div>'); 
    }

そうすれば、スプラッシュボックスはホームページにのみ表示されます( '' で宣言されているように)...そしてそれはうまく機能します。ただし、最初にサイドバー (サイドパネル) をレンダリングしています。理由はわかりません。サイドパネル関数をスプラッシュボックス関数の下に配置すると、2 番目にレンダリングされると考えましたが、機能しませんでした。助言がありますか?ありがとう!

4

1 に答える 1

0

それはとても簡単でした...私はコードを見ただけでそれを理解しました..

関数「MAIN」を作成していたことに気付きました...つまり、Q2A のコンテンツ部分をスプラッシュボックスに置き換えることを意味します。それは私が望んでいたことではありません...スプラッシュボックスをサイト全体に挿入したかったのです。

そのためには、関数 MAIN ではなく、関数 BODY_CONTENT を作成する必要がありました。

そう...

最終的にこんな感じになりました…

        function body_content()
    {
        if ($this->request=='') {   
        $this->body_prefix();
    $this->notices();
    $this->output('<div class="qa-body-wrapper">', '');
    $this->widgets('full', 'top');
    $this->header();
    $this->output('<div class="splashbox">'); 
        $this->output('</div>');
    $this->widgets('full', 'high');
    $this->sidepanel();
    $this->main();
    $this->widgets('full', 'low');
    $this->footer();
    $this->widgets('full', 'bottom');
    $this->output('</div> <!-- END body-wrapper -->');
    $this->body_suffix(); 

        } else
            qa_html_theme_base::body_wrapper();
    }
于 2015-06-22T14:25:33.783 に答える